Basi di programmazione a blocchi con Algobuild, un programma che permette di creare schemi a blocchi. Questa presentazione è la base dei video allegati.
2. I 5 blocchi base
Inizio programma
I
Input
Fine programma
IN A
F
Esecuzione
Output
OUT A A=5+1
3. Algobuild: l’esecutore
Algobuild permette di scrivere un algoritmo con un linguaggio a
blocchi e in più è un esecutore.
Come tutti gli esecutori ha queste caratteristiche:
• Sa eseguire un algoritmo
• Può prendere degli input dall’utente
• Può eseguire delle istruzioni di calcolo
• Può restituire dei valori all’utente
• Ha della memoria in cui mantenere i valori che servono
durante l’esecuzione: variabili
4. Stampa di un numero inserito
Caso d’uso:
Domanda Risposta
Chi lo usa Un utente
Obiettivo Stampare lo stesso numero che
l’utente ha inserito preceduto dal testo
«Il numero che hai inserito è»
Input Un numero
Output Il numero inserito
Procedimento • Chiedo all’utente un numero
• Stampo il numero
Casi limite Nessuno
Test Inserisco 5 e stampa 5
6. Divisione
Caso d’uso:
Domanda Risposta
Chi lo usa Un utente
Obiettivo Calcolare la divisione tra due numeri
Input I due numeri
Output La divisione
Procedimento 1. Chiedo all’utente di inserire i due
numeri
2. Calcolo la divisione dei due numeri
3. Stampo la divisione
Casi limite Divisione per zero
Test 10/5 = 2
10/0 scrive impossibile
8. Blocco condizionale – Selezione -If
Si usa ogni volta in cui in base ad una condizione devono
accadere cose diverse:
• Se un numero è maggiore di 5 fai qualcosa
• Se inserisci un numero positivo scrivo «positivo»,
altrimenti scrivo «negativo»
• …
Blocco Se o Selezione
A>5
Condizione vera Condizione falsa
9. Numero pari o dispari?
Caso d’uso:
Domanda Risposta
Chi lo usa Un utente
Obiettivo Determinare se un numero è pari o
dispari
Input Il numero
Output «pari» o «dispari»
Procedimento 1. Chiedo all’utente un numero
2. Calcolo il resto della divisione per
due
3. Se il resto è zero scrivo «pari»,
altrimenti scrivo «dispari»
Casi limite Nessuno
Test 12 è pari, 11 è dispari
10. Condizioni
Condizione Sintassi
Uguale ==
Diverso !=
Maggiore >
Minore <
Maggiore uguale >=
Minore uguale <=
Verificare se a è maggiore uguale a 12 si scrive a>=12
12. Algoritmo divisione
considerando i casi limite
Caso d’uso:
Domanda Risposta
Chi lo usa Un utente
Obiettivo Calcolare la divisione tra due numeri
Input I due numeri
Output La divisione
Procedimento 1. Chiedo all’utente di inserire i due
numeri
2. Verifico se il dividendo è zero
3. Calcolo la divisione dei due numeri
4. Stampo la divisione
Casi limite Divisione per zero
Test Verificare 20/5 = 4
Verificare che 20/0 non dia errore
14. Combinare condizioni
• Bisogno: Vedo una gelateria e ho voglia di gelato!
• Mi servono 2€ o qualcuno che me li presta
• Mi servono 10 minuti di tempo
15. Problema: Posso mangiare un gelato?
Domanda Risposta
Chi lo usa Io
Obiettivo Mangiare il gelato
Input Mio tempo, i soldi dell’amico, i miei soldi
Output Posso mangiarlo? Sì o no
Procedimento 1. chiedo i soldi miei
2. Chiedo i soldi amico
3. Chiedo il tempo
Casi limite nessuno
Test Se ho 5€, amico 5€, tempo 10 minuti -> sì
Se ho 2€, amico 0€, tempo 3 min -> no
16. Combinare condizioni
Operatore unario NOT - !
Serve un A NOT A
operatore! V F
F V
Operatori binari O - || E - &&
A B AoB A B AeB
V V V V V V
V F V V F F
F V V F V F
F F F F F F
18. Cosa succede quando qualcosa si deve
ripetere più volte?
Esempi:
1. Continuare a ripetere l’inserimento di un numero finché non
è diverso da zero, come nel caso del divisore della divisione
2. Scrivere 5 volte «Ciao Mondo!»
3. Fare un conto alla rovescia partendo da un numero inserito
dall’utente
4. Scrivere la tabellina del 3 fino a 10
19. Riepilogo: esempio di flusso
Cosa succede quando qualcosa si deve ripetere
più volte?
21. Inserimento finché il numero è
diverso da zero
Domanda Risposta
Chi lo usa Utente
Obiettivo Fare una divisione tra due numeri
Input I due numeri
Output La divisione
Procedimento 1. Chiedo i numeri
2. Se il divisore è = 0 chiedo ancora il numero
3. Effettuo la divisione
Casi limite nessuno
Test 10 /5 e 10/0 (deve richiedere il secondo
numero)
23. Scrivere 10 volte «Ciao Mondo!»
Domanda Risposta
Chi lo usa Utente
Obiettivo Scrivere 10 volte «ciao mondo»
Input Nessuno
Output 10 volte «ciao mondo!»
Procedimento 1. Creo un contatore = 0
2. Scrivo «ciao mondo»
3. Aumento il contatore di 1
4. Ripeto l’istruzione finché il contatore è < 10
Casi limite Nessuno
Test Deve scrivere 10 volte ciao mondo
25. Conto alla rovescia
Domanda Risposta
Chi lo usa Utente
Obiettivo Conto alla rovescia da N a 0
Input Il numero N
Output I numeri da N a 0
Procedimento 1. Chiedo l’inserimento di N
2. Scrivo N
3. Decremento N di uno
4. Se N > 0 torno al punto 2, altrimenti fine
Casi limite N deve essere maggiore di 0
Se inserisco 0 stampo 0
Test Deve scrivere il conto alla rovescia dal numero
inserito
27. Tabellina del 3 (con il for)
Domanda Risposta
Chi lo usa Utente
Obiettivo Scrivere la tabellina del 3 con il for
Input Nessuno
Output La tabellina del 3
Procedimento 1. Imposto una variabile uguale a 3
2. Scrivo la variabile
3. Aumento la variabile di 3
4. Se N <= 30 torno al punto 2, altrimenti fine
Casi limite Nessuno
Test Deve scrivere la tabellina del 3
29. Trova il massimo tra 5 numeri
Domanda Risposta
Chi lo usa Utente
Obiettivo Trovare il massimo tra 5 numeri positivi inseriti
Input 5 numeri
Output Il massimo dei numeri inseriti
Procedimento 1. Imposto un contatore a 0
2. Imposto il massimo a 0
3. Inserisco un numero
4. Verifico se il numero è maggiore del
massimo e nel caso aggiorno il massimo
5. Incremento il contatore
6. Se il contatore è < di 5 torno al punto 3
7. Stampo il massimo
Casi limite Inserisco dei numeri negativi
Test Dato 10, 3, 6, 34 e 17 deve restituire 34
31. Riferimenti
Esercizi – Informatica Insieme
Algobuild – www.algobuild.com
Manuale - Manuale di Algobuild
Sintassi del linguaggio - Sintassi
Canale Youtube di Algobuild
Altri video su Algobuild - Video
Fabio Biscaro – www.oggiimparoio.it
Grazie per l’attenzione!