«Stabilire se un numero è pari o dispari - brescianet.com · COSTRUZIONE DI UN ALGORITMO...

16
PROBLEMA: «Stabilire se un numero è pari o dispari ?» 1

Transcript of «Stabilire se un numero è pari o dispari - brescianet.com · COSTRUZIONE DI UN ALGORITMO...

PROBLEMA:

«Stabilire se un numero è pari o dispari ?»

1

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