Programmazione a blocchi
-
Upload
fabio-biscaro -
Category
Education
-
view
3.174 -
download
6
description
Transcript of Programmazione a blocchi
Programmazione a blocchi
Con Algobuild – Fabio Biscaro
I 5 blocchi base
I
Inizio programma
F
Fine programma
A = 5 + 1
Esecuzione
IN A
Input
OUT A
Output
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
Stampa di un numero inserito
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:
Stampa di un numero inserito
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 numeri3. Stampo la divisione
Casi limite Divisione per zero
Test 10/5 = 210/0 scrive impossibile
Caso d’uso:
Algoritmo divisione
Blocco condizionale – Selezione -If
Blocco Se o Selezione
A > 5
Condizione falsaCondizione vera
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»• …
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 numero2. Calcolo il resto della divisione per
due3. Se il resto è zero scrivo «pari»,
altrimenti scrivo «dispari»Casi limite Nessuno
Test 12 è pari, 11 è dispari
Caso d’uso:
Condizioni
Condizione Sintassi
Uguale ==
Diverso !=
Maggiore >
Minore <
Maggiore uguale >=
Minore uguale <=
Verificare se a è maggiore uguale a 12 si scrive a>=12
Numero pari o dispari?
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 è zero3. Calcolo la divisione dei due numeri4. Stampo la divisione
Casi limite Divisione per zero
Test Verificare 20/5 = 4Verificare che 20/0 non dia errore
Caso d’uso:
Algoritmo divisione considerando i casi limite
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
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 miei2. Chiedo i soldi amico3. 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
Combinare condizioni
A B A o BV V VV F VF V VF F F
A B A e BV V VV F FF V FF F F
A NOT AV FF V
Operatore unario NOT - !
Operatori binari
Serve un operatore!
O - || E - &&
Esempio Algobuild
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 divisione2. Scrivere 5 volte «Ciao Mondo!»3. Fare un conto alla rovescia partendo da un numero inserito
dall’utente4. Scrivere la tabellina del 3 fino a 10
Riepilogo: esempio di flusso
Cosa succede quando qualcosa si deve ripetere più volte?
Serve qualcosa di nuovo!
I cicli
1. Do While
2. While
3. For
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 numeri2. Se il divisore è = 0 chiedo ancora il numero3. Effettuo la divisione
Casi limite nessuno
Test 10 /5 e 10/0 (deve richiedere il secondo numero)
Inserimento finché il numero è diverso da zero
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 = 02. Scrivo «ciao mondo»3. Aumento il contatore di 14. Ripeto l’istruzione finché il contatore è < 10
Casi limite Nessuno
Test Deve scrivere 10 volte ciao mondo
Scrivere 10 volte «Ciao Mondo!»
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 N2. Scrivo N3. Decremento N di uno4. Se N > 0 torno al punto 2, altrimenti fine
Casi limite N deve essere maggiore di 0Se inserisco 0 stampo 0
Test Deve scrivere il conto alla rovescia dal numero inserito
Conto alla rovescia
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 32. Scrivo la variabile3. Aumento la variabile di 34. Se N <= 30 torno al punto 2, altrimenti fine
Casi limite Nessuno
Test Deve scrivere la tabellina del 3
Tabellina del 3 (con il for)
Trova il massimo tra 5 numeriDomanda 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 02. Imposto il massimo a 03. Inserisco un numero4. Verifico se il numero è maggiore del
massimo e nel caso aggiorno il massimo5. Incremento il contatore6. Se il contatore è < di 5 torno al punto 37. Stampo il massimo
Casi limite Inserisco dei numeri negativi
Test Dato 10, 3, 6, 34 e 17 deve restituire 34
Trova il massimo tra 5 numeri
Riferimenti
Esercizi – Informatica InsiemeAlgobuild – www.algobuild.comManuale - Manuale di AlgobuildSintassi del linguaggio - SintassiCanale Youtube di AlgobuildAltri video su Algobuild - VideoFabio Biscaro – www.oggiimparoio.it
Grazie per l’attenzione!