«Stabilire se un numero è pari o dispari - brescianet.com · COSTRUZIONE DI UN ALGORITMO...
Transcript of «Stabilire se un numero è pari o dispari - brescianet.com · COSTRUZIONE DI UN ALGORITMO...
COSTRUZIONE DI UN ALGORITMO
PARI O DISPARI ?
Questo è il dilemma!
1 -ACQUISISCO
PARI!
Il problema potrebbe essere schematizzato semplicemente così:
2
COSTRUZIONE DI UN ALGORITMO
Acquisisco il dato da analizzare
(un numero) e lo tengo a mente.
Valuto, in base alla mia esperienza, se il
numero è pari o dispari. Nel flowchart il
rombo indica una decisione (SE).
Espongo il risultato (soluzione) della
mia analisi
Analizzando con maggior dettaglio i singoli step:
INIZIO
Acquisisco N
E’ pari ?
Espongo la soluzione
FINE
SI NO
Soluzione=«Pari» Soluzione=«Dispari»
1) INPUT
3) OUTPUT
2) ALGORITMO
3
COSTRUZIONE DI UN ALGORITMO
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
(A) Dammi
un numero:
1 – INPUT: ACQUISIZIONE DEI DATI
12
(B) (C)
Acquisisco N 4
COSTRUZIONE DI UN ALGORITMO
«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.
E’ pari ?
SI NO
DATO
2 – ALGORITMO: METODO PER OTTENERE LA SOLUZIONE
Il rombo indica una decisione effettuata
sulla base della condizione scritta al suo
interno.
SI NO
DATO
Soluzione=«Dispari»Soluzione=«Pari»
� E’ divisibile per 2 ?
� E’ multiplo di 2 ?
� Il resto della divisione
per 2 è zero ?
5
COSTRUZIONE DI UN ALGORITMO
La fase di esposizione
dei risultati corrisponde
con la loro
enunciazione.
Signori: il numero
è pari!
3 – OUTPUT: ESPOSIZIONE DEI RISULTATI
Espongo la soluzione
6
COSTRUZIONE DI UN ALGORITMO
1 - INPUT
SI
N
NO
3 - OUTPUT
Il flusso delle attività svolto per risolvere il problema iniziale viene
schematizzato in questo flowchart :
Soluzione
2 - ALGORITMO:
N è divisibile per 2 ?
N è multiplo di 2 ?
N Diviso per 2 da resto zero ?
Soluzione=«dispari»
Soluzione=«pari»
7
COSTRUZIONE DI UN ALGORITMO
DISPOSITIVI
DI INPUT
DISPOSITIVI
DI OUTPUT
PROBLEMA
DA RISOLVERE
Generalizzando un algoritmo (costruito sfruttando le nostre conoscenze {esperienza})
risolve un problema rispetto a dei dati in ingresso e produce dei risultati in uscita.
ESPERIENZA + ANALISI
����
ALGORITMO
8
COSTRUZIONE DI UN PROGRAMMA
DISPOSITIVI
DI INPUT
DISPOSITIVI
DI OUTPUT
PROBLEMA
DA RISOLVERE
L’attività umana, volta a risolvere un problema, trasposta nel calcolatore
potrebbe essere così schematizzata:
ISTRUZIONI + ALGORITMO
����
PROGRAMMA DA ESEGUIRE
9
COSTRUZIONE DI UN PROGRAMMA (XLS)
PARI O DISPARI ?
Questo è il programma!
Vediamo come trasformare l’algoritmo in un programma:INIZIO
Acquisisco N
E’ pari ?
Espongo la soluzione
FINE
SI NO
Soluzione=«Pari» Soluzione=«Dispari»
PARI O DISPARI ?
Questo è
l’algoritmo!
10
COSTRUZIONE DI UN PROGRAMMA
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 …
� 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, …
3 - OUTPUT
� Scrivo, Dico, …
TRADUCO
1 - INPUT
� Uso una cella (esempio B3)
2 - ALGORITMO:
� =SE(
� Non traducibile
� Non traducibile
� RESTO(B3;2) = 0
� ;
� Mostro "Pari"
� ;
� Mostro "Dispari"
� )
3 - OUTPUT
� Decido di mettere in B6 la formula 11
1 – INPUT: ACQUISIZIONE DEI DATI
COSTRUZIONE DI UN PROGRAMMA
La fase di acquisizione dei dati inizia con l’esplicita richiesta …
… seguita dalla digitazione del dato desiderato. Dobbiamo anche
tradurre l’azione di «ricordare» il dato appena letto:
B3 = ����
���� dispari
11
COSTRUZIONE DI UN PROGRAMMA
Dobbiamo trasformare
la condizione «E’ pari ?»
in una sequenza di
istruzioni elementari
che possiamo
«umanamente»
eseguire.
2 – PROGRAMMA: TRADUCO L’ALGORITMO USANDO UN LINGUAGGIO DI PROGRAMMAZIONE
RESTO(B3;2) = 0
E’ pari ?
E’ divisibile per 2 ?
E’ multiplo di 2 ?
Il resto della divisione
per 2 è zero ?
Devo vedere se il linguaggio di
programmazione utilizzato
dispone di istruzioni analoghe
che consentano al computer di
eseguire la stessa valutazione
svolta dalla persona
NON ESISTE
NON ESISTE
ESISTE13
COSTRUZIONE DI UN PROGRAMMA
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.
2 – PROGRAMMA: TRADUCO L’ALGORITMO USANDO UN LINGUAGGIO DI PROGRAMMAZIONE
SE(RESTO(B3;2)= 0 ;…
;…)
ESISTE
CONDIZIONEVERA
FALSA
… …
Dobbiamo anche tradurre l’azione di «ricordare» il risultato del nostro
ragionamentoMetto la formula in B6
14
COSTRUZIONE DI UN PROGRAMMA
L’esposizione dei risultati
corrisponde alla
visualizzazione a video
della soluzione.
3 – OUTPUT: ESPOSIZIONE DEI RISULTATI
15
COSTRUZIONE DI UN PROGRAMMA
Acquisisco i dati
Elaboro e valuto …
Espongo il risultato
INIZIO
Acquisisco N
E’ pari ?
Espongo la soluzione
FINE
SI NO
Soluzione=«Pari» Soluzione=«Dispari»
Predispongo l’aspetto grafico della pagina di Excel/Calc
=SE(RESTO(B3;2)=0;»Pari»;»Dispari»)
Decido che la cella B3 sia la cella di input
Scrivo la formula nella Cella B6
1) INPUT
3) OUTPUT
2) ALGORITMO
Possiamo ora comporre il programma nel linguaggio scelto:
16