programmazione a blocchi -...
TRANSCRIPT
![Page 1: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/1.jpg)
Programmazione a
blocchi
Algobuild – Prof. Sergio Roselli
![Page 2: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/2.jpg)
Blocchi base
I
Inizio programma
F
Fine programma
A = 5 + 1
Esecuzione
IN A
Input
OUT A
Output
![Page 3: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/3.jpg)
L’interprete Algobuild
Algobuild permette di trascrivere un algoritmo in un linguaggio a
blocchi interpretabile.
Le sue caratteristiche sono :
• Eseguire un algoritmo
• Leggere gli Input dell’utente
• Eseguire le istruzioni
• Restituire i valori delle elaborazioni
![Page 4: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/4.jpg)
Stampa di un numero
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
Caso d’uso:
![Page 5: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/5.jpg)
Stampa di un numero inserito
![Page 6: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/6.jpg)
Divisione
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
Caso d’uso:
![Page 7: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/7.jpg)
Algoritmo di divisione
![Page 8: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/8.jpg)
Blocco di Selezione -If
Blocco Se o Selezione
A > -1
Condizione falsaCondizione vera
Si usa ogni qual volta si pone una condizione da verificare :
• Se il numero in A è maggiore di -1 fai qualcosa
• Se il numero è >-1 scrivo «positivo», altrimenti scrivo
«negativo»
• …
![Page 9: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/9.jpg)
Numero pari o dispari?
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
Caso d’uso:
![Page 10: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/10.jpg)
Condizioni
Condizione Sintassi
Uguale ==
Diverso !=
Maggiore >
Minore <
Maggiore uguale >=
Minore uguale <=
![Page 11: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/11.jpg)
Numero pari o dispari?
![Page 12: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/12.jpg)
Algoritmo divisione
considerando i casi limite
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
Caso d’uso:
![Page 13: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/13.jpg)
Algoritmo divisione
![Page 14: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/14.jpg)
Le condizioni
A B A o B
V V V
V F V
F V V
F F F
A B A e B
V V V
V F F
F V F
F F F
A NOT A
V F
F V
Operatore unario NOT - !
Operatori binari
Uso di un
operatore
logico
O - || E - &&
![Page 15: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/15.jpg)
Esempio operatore logico
![Page 16: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/16.jpg)
Ripetizione di un evento – Come si
agisce ?
Esempi:
1. Continuare a ripetere l’inserimento di un numero finché una
condizione non si verifica
2. Scrivere 10 volte una frase
3. Fare un conto alla rovescia da un numero inserito dall’utente
4. Scrivere la tabellina del 3 fino a 10
![Page 17: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/17.jpg)
Esempio
![Page 18: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/18.jpg)
I costrutti
1. Do While
2. While ..Loop
3. For …next
![Page 19: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/19.jpg)
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
![Page 20: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/20.jpg)
Scrivere 10 volte «Ciao Mondo!»
![Page 21: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/21.jpg)
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
![Page 22: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/22.jpg)
Conto alla rovescia
![Page 23: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/23.jpg)
Tabellina del 3 (con ciclo 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
![Page 24: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/24.jpg)
Tabellina del 3 (con il for)
![Page 25: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/25.jpg)
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
![Page 26: Programmazione a blocchi - Altervistasroselli.altervista.org/Argomenti/Tin/Algobuild/Algobuild.pdf · L’interprete Algobuild Algobuildpermette di trascrivere un algoritmo in un](https://reader035.vdocuments.pub/reader035/viewer/2022081600/6049078e16443147bc379917/html5/thumbnails/26.jpg)
Trova il massimo tra 5 numeri