PROBLEMA:
«Stabilire se un numero è pari o dispari ?»
1
COSTRUZIONE DI UN ALGORITMO
Il problema potrebbe essere schematizzato semplicemente così:
PARI O DISPARI ?
Questo è il dilemma!
1 -ACQUISISCO
PARI!
2
COSTRUZIONE DI UN ALGORITMO
Analizzando con maggior dettaglio i singoli step:
INIZIO
1) INPUT
Acquisisco il dato da analizzare
(un numero) e lo tengo a mente.
Acquisisco N
2) ALGORITMO
Valuto, in base alla mia esperienza, se il
numero è pari o dispari. Nel flowchart il
rombo indica una decisione (SE).
E’ pari ?
NO
SI
Soluzione=«Dispari»
Soluzione=«Pari»
3) OUTPUT
Espongo il risultato (soluzione) della
mia analisi
Espongo la soluzione
FINE
3
COSTRUZIONE DI UN ALGORITMO
1 – INPUT: ACQUISIZIONE DEI DATI
(A) Dammi
un numero:
(C)
(B)
12
La fase di acquisizione dei dati può corrispondere ad una esplicita
richiesta (A) seguita dalla corrispondente risposta (B). Ricevuto il dato
lo tengo a mente (C) per la successiva fase di analisi
Acquisisco N 4
COSTRUZIONE DI UN ALGORITMO
2 – ALGORITMO: METODO PER OTTENERE LA SOLUZIONE
«E’ PARI ?» è un concetto generale. Devo trasformarlo in una
sequenza di istruzioni elementari che posso eseguire. Tale
sequenza deve definire una corretta «procedura» per risolvere il
problema. Questa «procedura» corrisponde all’ALGORITMO.
Il risultato, ottenuto eseguendo l’algoritmo, deve essere
«ricordato» per poi essere utilizzato nella fase successiva.
DATO
Il rombo indica una decisione effettuata
sulla base della condizione scritta al suo
interno.
E’ pari ?
SI
NO
DATO
SI
Soluzione=«Pari»
E’ divisibile per 2 ?
E’ multiplo di 2 ?
Il resto della divisione
per 2 è zero ?
NO
Soluzione=«Dispari»
5
COSTRUZIONE DI UN ALGORITMO
3 – OUTPUT: ESPOSIZIONE DEI RISULTATI
La fase di esposizione
dei risultati corrisponde
con la loro
enunciazione.
Signori: il numero
è pari!
Espongo la soluzione
6
COSTRUZIONE DI UN ALGORITMO
Il flusso delle attività svolto per risolvere il problema iniziale viene
schematizzato in questo flowchart :
1 - INPUT
N
2 - ALGORITMO:
N è divisibile per 2 ?
N è multiplo di 2 ?
N Diviso per 2 da resto zero ?
NO
Soluzione=«dispari»
SI
Soluzione=«pari»
Soluzione
3 - OUTPUT
7
COSTRUZIONE DI UN ALGORITMO
Generalizzando un algoritmo (costruito sfruttando le nostre conoscenze {esperienza})
risolve un problema rispetto a dei dati in ingresso e produce dei risultati in uscita.
PROBLEMA
DA RISOLVERE
ESPERIENZA + ANALISI
ALGORITMO
DISPOSITIVI
DI INPUT
DISPOSITIVI
DI OUTPUT
8
COSTRUZIONE DI UN PROGRAMMA
L’attività umana, volta a risolvere un problema, trasposta nel calcolatore
potrebbe essere così schematizzata:
PROBLEMA
DA RISOLVERE
ISTRUZIONI + ALGORITMO
PROGRAMMA DA ESEGUIRE
DISPOSITIVI
DI INPUT
DISPOSITIVI
DI OUTPUT
9
COSTRUZIONE DI UN PROGRAMMA (XLS)
Vediamo come trasformare l’algoritmo in un programma:
INIZIO
Acquisisco N
E’ pari ?
NO
SI
Soluzione=«Pari»
PARI O DISPARI ?
Questo è
l’algoritmo!
Soluzione=«Dispari»
Espongo la soluzione
FINE
PARI O DISPARI ?
Questo è il programma!
10
COSTRUZIONE DI UN PROGRAMMA
Prima di tutto occorre avere a disposizione un set di comandi che il
computer sia in grado di comprendere ed eseguire: ad esempio le
macro di Excel/opencalc.
L’algoritmo utilizza «istruzioni umane» elementari (comprensibili ed
eseguibili da una persona) per risolvere un determinato problema.
Per creare un programma, comprensibile ed eseguibile sul
calcolatore, occorre tradurre le «istruzioni umane» in comandi
riconosciuti dal computer.
1 - INPUT
Leggo, Ascolto, …
1 - INPUT
Uso una cella (esempio B3)
2 - ALGORITMO:
SE N …
o E’ divisibile per 2 ?
o E’ multiplo di 2 ?
o Diviso per 2 da resto zero ?
Allora
Memorizzo come soluzione …
Altrimenti
Memorizzo come soluzione …
2 - ALGORITMO:
=SE(
Non traducibile
Non traducibile
RESTO(B3;2) = 0
;
Mostro "Pari"
;
Mostro "Dispari"
)
3 - OUTPUT
Scrivo, Dico, …
TRADUCO
3 - OUTPUT
11
Decido di mettere in B6 la formula
COSTRUZIONE DI UN PROGRAMMA
1 – INPUT: ACQUISIZIONE DEI DATI
La fase di acquisizione dei dati inizia con l’esplicita richiesta …
dispari
… seguita dalla digitazione del dato desiderato. Dobbiamo anche
tradurre l’azione di «ricordare» il dato appena letto:
B3 =
11
COSTRUZIONE DI UN PROGRAMMA
2 – PROGRAMMA: TRADUCO L’ALGORITMO USANDO UN LINGUAGGIO DI PROGRAMMAZIONE
E’ pari ?
Dobbiamo trasformare
la condizione «E’ pari ?»
in una sequenza di
istruzioni elementari
che possiamo
«umanamente»
eseguire.
Devo vedere se il linguaggio di
programmazione utilizzato
dispone di istruzioni analoghe
che consentano al computer di
eseguire la stessa valutazione
svolta dalla persona
E’ divisibile per 2 ?
NON ESISTE
E’ multiplo di 2 ?
NON ESISTE
Il resto della divisione
per 2 è zero ?
ESISTE
RESTO(B3;2) = 0
13
COSTRUZIONE DI UN PROGRAMMA
2 – PROGRAMMA: TRADUCO L’ALGORITMO USANDO UN LINGUAGGIO DI PROGRAMMAZIONE
Dobbiamo ora tradurre l’«istruzione umana» che
consente di prendere una decisione partendo da una
condizione con una istruzione equivalente del
linguaggio di programmazione scelto.
ESISTE
CONDIZIONE
VERA
SE(RESTO(B3;2)= 0 ;
…
;
…)
FALSA
…
…
Dobbiamo anche tradurre l’azione di «ricordare» il risultato del nostro
ragionamento
Metto la formula in B6
14
COSTRUZIONE DI UN PROGRAMMA
3 – OUTPUT: ESPOSIZIONE DEI RISULTATI
L’esposizione dei risultati
corrisponde alla
visualizzazione a video
della soluzione.
15
COSTRUZIONE DI UN PROGRAMMA
Possiamo ora comporre il programma nel linguaggio scelto:
Predispongo l’aspetto grafico della
pagina di Excel/Calc
INIZIO
1) INPUT
Acquisisco N
Acquisisco i dati
Decido che la cella B3 sia la cella di
input
2) ALGORITMO
E’ pari ?
Elaboro e valuto …
=SE(RESTO(B3;2)=0;»Pari»;»Dispari»)
NO
SI
Soluzione=«Dispari»
Soluzione=«Pari»
3) OUTPUT
Espongo la soluzione
FINE
Espongo il risultato
Scrivo la formula nella Cella B6
16