Programmazione a blocchi

31
Programmazione a blocchi Con Algobuild – Fabio Biscaro

description

Basi di programmazione a blocchi con Algobuild, un programma che permette di creare schemi a blocchi. Questa presentazione è la base dei video allegati.

Transcript of Programmazione a blocchi

Page 1: Programmazione a blocchi

Programmazione a blocchi

Con Algobuild – Fabio Biscaro

Page 2: Programmazione a blocchi

I 5 blocchi base

I

Inizio programma

F

Fine programma

A = 5 + 1

Esecuzione

IN A

Input

OUT A

Output

Page 3: Programmazione a blocchi

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

Page 4: Programmazione a blocchi

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:

Page 5: Programmazione a blocchi

Stampa di un numero inserito

Page 6: Programmazione a blocchi

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:

Page 7: Programmazione a blocchi

Algoritmo divisione

Page 8: Programmazione a blocchi

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»• …

Page 9: Programmazione a blocchi

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:

Page 10: Programmazione a blocchi

Condizioni

Condizione Sintassi

Uguale ==

Diverso !=

Maggiore >

Minore <

Maggiore uguale >=

Minore uguale <=

Verificare se a è maggiore uguale a 12 si scrive a>=12

Page 11: Programmazione a blocchi

Numero pari o dispari?

Page 12: Programmazione a blocchi

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:

Page 13: Programmazione a blocchi

Algoritmo divisione considerando i casi limite

Page 14: Programmazione a blocchi

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

Page 15: Programmazione a blocchi

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

Page 16: Programmazione a blocchi

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 - &&

Page 17: Programmazione a blocchi

Esempio Algobuild

Page 18: Programmazione a blocchi

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

Page 19: Programmazione a blocchi

Riepilogo: esempio di flusso

Cosa succede quando qualcosa si deve ripetere più volte?

Page 20: Programmazione a blocchi

Serve qualcosa di nuovo!

I cicli

1. Do While

2. While

3. For

Page 21: Programmazione a blocchi

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)

Page 22: Programmazione a blocchi

Inserimento finché il numero è diverso da zero

Page 23: Programmazione a blocchi

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

Page 24: Programmazione a blocchi

Scrivere 10 volte «Ciao Mondo!»

Page 25: Programmazione a blocchi

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

Page 26: Programmazione a blocchi

Conto alla rovescia

Page 27: Programmazione a blocchi

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

Page 28: Programmazione a blocchi

Tabellina del 3 (con il for)

Page 29: Programmazione a blocchi

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

Page 30: Programmazione a blocchi

Trova il massimo tra 5 numeri