Introduzione agli
Algoritmi
Algoritmo
Un algoritmo è un procedimento che risolve un determinato problema
attraverso un numero finito di passi elementari, chiari e non ambigui.
(Wikipedia)
Algoritmo
In informatica, risolvere un problema vuol dire ricevere dei dati in input, eseguire
una elaborazione e, in un tempo finito, restituire dei dati in output.
Input Output
Elaborazione
Algoritmo
Un algoritmo ha sempre un inizio e una fine.
Un algoritmo ha dei passi in cui si può leggere in INPUT un dato oppure si può scrivere in OUTPUT.
Un algoritmo ha dei passi in cui si eseguono delle elaborazioni.
Vediamo un esempio…
Somma tra due numeri
Inizio
Leggi primo numero
Leggi secondo numero
Somma primo numero e secondo numero Scrivi somma
Fine
Flow chart
In informatica il diagramma di flusso (in inglese flow chart) è una
rappresentazione grafica delle operazioni da eseguire per l'esecuzione di un
algoritmo.
Ogni singolo passo è visualizzato tramite una serie di simboli standard.
(Wikipedia)
Flow chart
START - END
INPUT - OUTPUT
CONDIZIONE - CICLI ELABORAZIONE
Somma due numeri
Leggi primo numero
Somma primo numero e secondo numero
Inizio
Fine
Leggi secondo numero
Scrivi somma
Input
Output
Elaborazione
Ricorda
Ricorda: Un algoritmo risolve un problema
universale.
L’algoritmo per la somma dei due numeri parla di numeri generici.
Scrivere un algoritmo con dei dati specifici è un
errore!
Leggi 3
Somma 3 + 4 Inizio
Fine Leggi 4
Scrivi 7
Condizione
Spesso per risolvere un problema c’è
bisogno di prendere delle decisioni in base a determinate condizioni da verificare.
All’interno del rombo si inserisce una
condizione che può essere VERA o FALSA. Vediamo un esempio nella prossima
diapositiva
A = B Vero
Falso Se
Maggiore tra due numeri
Inizio
Leggi primo numero
Leggi secondo numero
Confronta primo numero e secondo numero Se primo numero maggiore (vero)
Scrivi il primo numero è il maggiore Altrimenti (falso)
Scrivi il secondo numero è il maggiore Fine
Flow chart
Leggi primo numero Inizio
Fine
Leggi secondo numero
Scrivi il primo numero è il
maggiore Se primo numero >
secondo numero
Scrivi il secondo numero è il
maggiore
Input
Output Condizione
Falso Vero
Ciclo
Spesso per risolvere un problema c’è
bisogno di ripetere diverse istruzioni più
volte. All’interno del
rombo si inserisce una condizione o un comando di
ripetizione che VERO continua a ciclare mentre
FALSO indica
Ripeti Vero Falso
Differenza condizione-ciclo
Il ciclo si differenzia graficamente dalla selezione con condizione dalla uscita del VERO. Nel caso del ciclo si inserisce in basso al rombo e non alla sua destra.
Ripeti
Vero Falso
A = B Vero
Falso Se
Selezione
Ciclo
Ciclo per tot volte
Indichiamo nel rombo quante volte un blocco di istruzioni nel flusso di
esecuzione vero deve essere
eseguito.
Per 10 volte
Esecuzione generica
Fine
Vero Falso
Superate 10 volte
Entro 10 volte
Esegui la somma di 10 numeri
Inizio
Eseguo somma uguale a 0
(inizializzo la somma a zero)
Ripeti per 10 volte (vero) Leggi numero
Eseguo Somma uguale somma più numero (incremento la somma con il numero inserito)
Finite 10 volte (falso) Scrivi Somma
Fine
Esegui la somma di 10 numeri
Per 10 volte Vero Falso
Inizio Somma = 0
Leggi numero
Somma = somma + numero Scrivi somma
Ciclo
Input
Ciclo a condizione
Spesso non sappiamo a priori per quante volte dobbiamo
ripetere una certa operazione.
In questo caso si utilizza un ciclo a condizione.
Finchè vero
Vero Falso
Esegui la somma finché non superi 100
Inizio
Eseguo somma uguale a 0
Ripeti finché somma minore di 100 (vero) Leggi numero
Eseguo Somma uguale somma più numero
Somma maggiore di 100 (falso esco dal ciclo) Scrivi Somma
Fine
Esegui la
somma finché non superi 100
Finché somma < 100 Vero
Falso
Inizio Somma = 0
Leggi numero
Somma = somma + numero Scrivi somma
Ciclo Input
Output
In inglese… please!
In molti linguaggi di programmazione i
blocchi di controllo, i rombi dei flowchart, vengono tradotti con tre parole che è bene imparare da subito…
IF (se) per la condizione
FOR (per) per il ciclo a ripetizione per tot volte
WHILE (finché) per il ciclo a condizione
In inglese… please!
Ripeti
Vero Falso
A = B Vero
Falso Se
Se
Per tot volte
Finchè vero Vero Falso
Finché