Date post: | 02-May-2015 |
Category: |
Documents |
Upload: | pompeo-bettini |
View: | 216 times |
Download: | 0 times |
Prof. Di Capua Giuseppe
ProblemiProblemi
La parola problema ha un vasto campo di significati. Nella scuola quello più comune è legato alla matematica o almeno al campo scientifico,
In realtà…
La parola problema ha un vasto campo di significati. Nella scuola quello più comune è legato alla matematica o almeno al campo scientifico,
In realtà…
Ud 1: Dal problema all’algoritmo
…Ogni giorno, diverse volte al giorno, siamo chiamati a risolvere dei problemi. Per esempio:1. decidere se riconciliarci con un amico con cui abbiamo litigato;2. calcolare l'area di un rettangolo, note la base e l'altezza;3. scegliere tra diverse proposte quella economicamente più vantaggiosa per una gita scolastica;4. stabilire quale squadra vincerà quest'anno il campionato nazionale di calcio...
…Ogni giorno, diverse volte al giorno, siamo chiamati a risolvere dei problemi. Per esempio:1. decidere se riconciliarci con un amico con cui abbiamo litigato;2. calcolare l'area di un rettangolo, note la base e l'altezza;3. scegliere tra diverse proposte quella economicamente più vantaggiosa per una gita scolastica;4. stabilire quale squadra vincerà quest'anno il campionato nazionale di calcio...
1/8
Il maestro disse: «Non voglio avere nulla a che vedere con chi non si chiede:come fare, come fare?» da Confucio, "I colloqui", XV, 15
Il maestro disse: «Non voglio avere nulla a che vedere con chi non si chiede:come fare, come fare?» da Confucio, "I colloqui", XV, 15
ProblemiProblemi
2/8
Ci troviamo di fronte a una situazione problematica tutte le volte che per una questione non abbiamo una soluzione automatica e, per procedere oltre, abbiamo bisogno di raggiungere nuove informazioni, magari derivandole da quelle già disponibili per mezzo di opportune operazioni.
In altre parole, un problema nasce tutte le volte che una persona decide di raggiungere un obiettivo, ma non ha ancora identificato un mezzo per raggiungere questo traguardo.
Ci troviamo di fronte a una situazione problematica tutte le volte che per una questione non abbiamo una soluzione automatica e, per procedere oltre, abbiamo bisogno di raggiungere nuove informazioni, magari derivandole da quelle già disponibili per mezzo di opportune operazioni.
In altre parole, un problema nasce tutte le volte che una persona decide di raggiungere un obiettivo, ma non ha ancora identificato un mezzo per raggiungere questo traguardo.
Ud 1: Dal problema all’algoritmo
ProblemiProblemi Fin dai primi anni di scuola abbiamo appreso la nozione di problema sotto forma di quesito a cui si deve dare una risposta, detta
soluzione del problema.
Naturalmente quando il quesito ci viene posto da parte di qualcuno, questi suppone che non conosciamo la soluzione. Infatti perché il problema sia tale è necessario fare uno sforzo mentale nella ricerca della soluzione del problema.
Fin dai primi anni di scuola abbiamo appreso la nozione di problema sotto forma di quesito a cui si deve dare una risposta, detta
soluzione del problema.
Naturalmente quando il quesito ci viene posto da parte di qualcuno, questi suppone che non conosciamo la soluzione. Infatti perché il problema sia tale è necessario fare uno sforzo mentale nella ricerca della soluzione del problema.
3/8
Ud 1: Dal problema all’algoritmo
ProblemiProblemi
4/8
A questo punto scatta un processo di ricerca per risolvere il quesito posto, cioè il problema.Possiamo quindi affermare che i problemi hanno origine dalla realtà che, letta nella sua complessità, presenta molto spesso in chi la osserva situazioni che possiamo definire problematiche che creano curiosità e perché.
A questo punto scatta un processo di ricerca per risolvere il quesito posto, cioè il problema.Possiamo quindi affermare che i problemi hanno origine dalla realtà che, letta nella sua complessità, presenta molto spesso in chi la osserva situazioni che possiamo definire problematiche che creano curiosità e perché.
Uscire da una situazione problematica vuol dire compiere delle azioni che permettono di dare risposte alle domandeposte, vuoi dire «risolvere un problema».
Uscire da una situazione problematica vuol dire compiere delle azioni che permettono di dare risposte alle domandeposte, vuoi dire «risolvere un problema».
Ud 1: Dal problema all’algoritmo
Risolutore ed EsecutoreRisolutore ed Esecutore
chi si propone di risolvere un problema chi si propone di risolvere un problema
Risolutore Risolutore
1/7
Ud 1: Dal problema all’algoritmo
Avvalendosi di un patrimonio di conoscenze precedentemente acquisite, deve seguire un cammino che si compone di più passi e che viene detto analisi del problema.
Avvalendosi di un patrimonio di conoscenze precedentemente acquisite, deve seguire un cammino che si compone di più passi e che viene detto analisi del problema.
Risolutore ed EsecutoreRisolutore ed Esecutore
chi si propone di eseguire la soluzione del problema chi si propone di eseguire la soluzione del problema
EsecutoreEsecutore
1/7
Ud 1: Dal problema all’algoritmo
Il Risolutore si occupa di:Il Risolutore si occupa di:
2/7
a) interpretare l'enunciato del problema e definire gli obiettivi che devono essere realizzati;b) individuare le informazioni necessarie per risolvere il problema (dati iniziali) costruendo, se possibile, un opportuno modello della situazione problematica;c) descrivere il procedimento risolutivo individuando le operazioni da compiere sui dati e col legar logicamente per ottenere i risultati o dati finali;d) verificare se i risultati ottenuti rispondono alle finalità del problema reale e, quindi, se i sono o non sono attendibili
a) interpretare l'enunciato del problema e definire gli obiettivi che devono essere realizzati;b) individuare le informazioni necessarie per risolvere il problema (dati iniziali) costruendo, se possibile, un opportuno modello della situazione problematica;c) descrivere il procedimento risolutivo individuando le operazioni da compiere sui dati e col legar logicamente per ottenere i risultati o dati finali;d) verificare se i risultati ottenuti rispondono alle finalità del problema reale e, quindi, se i sono o non sono attendibili
Ud 1: Dal problema all’algoritmo
L’Esecutore si occupa di:L’Esecutore si occupa di:
2/7
a) eseguire nell'ordine le operazioni descritte nel processo risolutivo evidenziando i risultati o finali; a) eseguire nell'ordine le operazioni descritte nel processo risolutivo evidenziando i risultati o finali;
Ud 1: Dal problema all’algoritmo
Risolutore ed EsecutoreRisolutore ed Esecutore
3/7
Ud 1: Dal problema all’algoritmo
PROBLEMAVERIFICA
DEI RISULTATI
INTERPRETAZIONE MODELLOPROCEDIMENTO
RISOLUTIVO
ESECUZIONE
Risolutore ed EsecutoreRisolutore ed Esecutore
4/7
IL risolutore e l'esecutore della risoluzione di un problema sono la stessa persona, ma a volte no.
Può presentarsi il caso che il risolutore affidi l'esecuzione del processo risolutivo ad un'altra persona ad un esecutore automatico come, per esempio, ad un elaboratore elettronico. In questo caso, il risolutore descrive il procedimento risolutivo di un problema deve riferirsi all'esecutore.
La descrizione del procedimento risolutivo è condizionata dalle caratteristiche dell'esecutore.
IL risolutore e l'esecutore della risoluzione di un problema sono la stessa persona, ma a volte no.
Può presentarsi il caso che il risolutore affidi l'esecuzione del processo risolutivo ad un'altra persona ad un esecutore automatico come, per esempio, ad un elaboratore elettronico. In questo caso, il risolutore descrive il procedimento risolutivo di un problema deve riferirsi all'esecutore.
La descrizione del procedimento risolutivo è condizionata dalle caratteristiche dell'esecutore.
Ud 1: Dal problema all’algoritmo
Risolutore ed EsecutoreRisolutore ed Esecutore
5/7
•sapere quale linguaggio comprende l'esecutore;•sapere quali sono le azioni operative e logiche che l'esecutore sa eseguire;•sapere in modo ordinato, conciso e univoco le azioni che •l'esecutore deve eseguire.
•sapere quale linguaggio comprende l'esecutore;•sapere quali sono le azioni operative e logiche che l'esecutore sa eseguire;•sapere in modo ordinato, conciso e univoco le azioni che •l'esecutore deve eseguire.
Ud 1: Dal problema all’algoritmo
Il risolutore deve:Il risolutore deve:Il risolutore deve:Il risolutore deve:
Il ruolo dell'esecutore invece si estrinseca nei seguenti passi:•ricevere i dati iniziali;•interpretare ed eseguire le azioni descritte nel processo risolutivo del problema; •fornire i risultati.
Il ruolo dell'esecutore invece si estrinseca nei seguenti passi:•ricevere i dati iniziali;•interpretare ed eseguire le azioni descritte nel processo risolutivo del problema; •fornire i risultati.
Il ruolo dell'esecutoreIl ruolo dell'esecutoreIl ruolo dell'esecutoreIl ruolo dell'esecutore
Risolutore ed EsecutoreRisolutore ed Esecutore
6/7
Ud 1: Dal problema all’algoritmo
Procedimento risolutivo
del problema
Esecutore Dati finalio risultati
Dati iniziali
Verifica dei risultati
Risolutore
Risolutore ed EsecutoreRisolutore ed Esecutore
7/7
Ud 1: Dal problema all’algoritmo
Nella soluzione dei problemi è facilmente riconoscibile la necessità di esaminare tre aspetti fondamentali:
1)L'insieme dei dati di cui si dispone e l'insieme dei
risultati che si vogliono ottenere.
2)L'insieme delle istruzioni che consentono di
ottenere la soluzione del problema.
3)Le capacità dell'esecutore a cui le istruzioni sono
dirette.
Nella soluzione dei problemi è facilmente riconoscibile la necessità di esaminare tre aspetti fondamentali:
1)L'insieme dei dati di cui si dispone e l'insieme dei
risultati che si vogliono ottenere.
2)L'insieme delle istruzioni che consentono di
ottenere la soluzione del problema.
3)Le capacità dell'esecutore a cui le istruzioni sono
dirette.
AlgoritmoAlgoritmo
1/6
Ud 1: Dal problema all’algoritmo
Possiamo concludere che risolvere un problema significa ricercare ed esprimere una successione finita di istruzioni interpretabili ed eseguibili da un esecutore, che conducano da determinate informazioni iniziali ad altre informazioni finali.
Possiamo concludere che risolvere un problema significa ricercare ed esprimere una successione finita di istruzioni interpretabili ed eseguibili da un esecutore, che conducano da determinate informazioni iniziali ad altre informazioni finali.
Se tale successione di istruzioni rispetta determinate caratteristiche viene detta Algoritmo
Se tale successione di istruzioni rispetta determinate caratteristiche viene detta Algoritmo
AlgoritmoAlgoritmo
1/6
Ud 1: Dal problema all’algoritmo
Nasce dal nome di un matematico arabo del IX secolo : Abu Ja’far Mohammed ibn Musa al -Kowarizm
Nasce dal nome di un matematico arabo del IX secolo : Abu Ja’far Mohammed ibn Musa al -Kowarizm
AlgoritmiAlgoritmi
2/6
Una Definizione Una Definizione
è una descrizione di un insieme finito di passi, che devono essere eseguite per portare a termine un dato compito e per raggiungere un risultato definito.
è una descrizione di un insieme finito di passi, che devono essere eseguite per portare a termine un dato compito e per raggiungere un risultato definito.
Ud 1: Dal problema all’algoritmo
Esempi di algoritmo possono essere:Le istruzioni per l’utilizzo di un elettrodomesticoLe regole per eseguire la divisione tra due numeri
Esempi di algoritmo possono essere:Le istruzioni per l’utilizzo di un elettrodomesticoLe regole per eseguire la divisione tra due numeri
AlgoritmiAlgoritmi
3/6
Ud 1: Dal problema all’algoritmo
ProprietàProprietà
Non Ambiguo:Le istruzioni devono essere precise e non ambigue
Non Ambiguo:Le istruzioni devono essere precise e non ambigue
Deterministico:Appliccato n volte sugli stessi dati produce gli stessi risultati
Deterministico:Appliccato n volte sugli stessi dati produce gli stessi risultati
Generale:Risolve tutti i problemi di una stessa classe
Generale:Risolve tutti i problemi di una stessa classe
Finito:Le istruzioni devono essere un numero finito ed eseguite in un tempo finito
Finito:Le istruzioni devono essere un numero finito ed eseguite in un tempo finito
AlgoritmiAlgoritmi
4/6
Ud 1: Dal problema all’algoritmo
Un algoritmo è
una descrizione completa, univoca e
esaustiva
di un insieme finito di operazioni
elementari,
interpretabili e riproducibili
dall’esecutore,
che permette di raggiungere lo scopo
del processo in un tempo ragionevole.
Un algoritmo è
una descrizione completa, univoca e
esaustiva
di un insieme finito di operazioni
elementari,
interpretabili e riproducibili
dall’esecutore,
che permette di raggiungere lo scopo
del processo in un tempo ragionevole.
DefinizioneDefinizione
AlgoritmiAlgoritmi
Dati che servono
Risultati
Ud 1: Dal problema all’algoritmo
Contattare telefonicamente una serie di persone a cui deve lasciare un messaggio
Contattare telefonicamente una serie di persone a cui deve lasciare un messaggio
Il messaggio da comunicare Il messaggio da comunicare
L’elenco delle persone con l’indicazione per ciascuna dell’esito della telefonata
L’elenco delle persone con l’indicazione per ciascuna dell’esito della telefonata
L’elenco delle persone con il nome e il numero di telefono L’elenco delle persone con il nome e il numero di telefono
5/6
Deve
AlgoritmiAlgoritmi
6/6
Contattare telefonicamente una serie di persone a cui deve lasciare un messaggio
Contattare telefonicamente una serie di persone a cui deve lasciare un messaggio
Algoritmo
o leggi il numero telefonicoo componi il numeroo a seconda della situazione che si presenta scrivi sull’elenco: ‘occupato’, ‘ numero errato’ o ‘OK’o ripeti le operazioni precedenti finché le persone sono finite.
Algoritmo
o leggi il numero telefonicoo componi il numeroo a seconda della situazione che si presenta scrivi sull’elenco: ‘occupato’, ‘ numero errato’ o ‘OK’o ripeti le operazioni precedenti finché le persone sono finite.
Ud 1: Dal problema all’algoritmo
Deve
VARIABILI E COSTANTI VARIABILI E COSTANTI Per rappresentare un algoritmo occorre innanzitutto individuare le entità che lo caratterizzano.
Per rappresentare un algoritmo occorre innanzitutto individuare le entità che lo caratterizzano.Es. 1: ATTIVITA’ FATTURAZIONE
Entità
Il cliente cui è rivolta la fatturazione
Il prodotto che viene venduto
La fattura
Ogni entità può essere presente con diversi esemplari, contraddistinti dai diversi valori assunti dagli ATTRIBUTI DELL’ENTITA’, gli elementi che rappresentano e specificano l’entità.
Ogni entità può essere presente con diversi esemplari, contraddistinti dai diversi valori assunti dagli ATTRIBUTI DELL’ENTITA’, gli elementi che rappresentano e specificano l’entità.
Entità cliente Attributi: Il nome, l’indirizzo, la città dove risiede, il numero di partita IVA
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Se gli attributi possono assumere valori diversi per diversi esemplari dell’entità, essi sono detti VARIABILI.
Se gli attributi possono assumere valori diversi per diversi esemplari dell’entità, essi sono detti VARIABILI.
VARIABILI E COSTANTIVARIABILI E COSTANTI
h
bA= b h
Gli attributi che assumono sempre lo stesso valore vengono definiti COSTANTI
Gli attributi che assumono sempre lo stesso valore vengono definiti COSTANTI
I nomi che diamo alle variabili o alle costanti, vengono detti IDENTIFICATORI
I nomi che diamo alle variabili o alle costanti, vengono detti IDENTIFICATORI
A = r² r
Entità prodotto(automobile)
Attributi: La marca, il modello, il colore, il numero di ruote (in un automobile è sempre 4!)
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
DATIDATII dati sono i valori assunti da variabili e costanti. I dati
possono essere di diverso tipo:I dati sono i valori assunti da variabili e costanti. I dati
possono essere di diverso tipo:
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
ISTRUZIONIISTRUZIONI
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Le istruzioni sono le azioni che costituiscono l’algoritmo.
Al fine di raggiungere il risultato voluto, le istruzioni di un algoritmo devono essere eseguite secondo un ordine ben preciso, che di norma è quello sequenzialesequenziale, ma che può talvolta variare in funzione dei dati e a seconda del particolare algoritmo.
A tal fine, nella rappresentazione di un algoritmo, le istruzioni vengono raggruppate all’interno di costrutti detti Strutture di Controllo.
Le istruzioni sono le azioni che costituiscono l’algoritmo.
Al fine di raggiungere il risultato voluto, le istruzioni di un algoritmo devono essere eseguite secondo un ordine ben preciso, che di norma è quello sequenzialesequenziale, ma che può talvolta variare in funzione dei dati e a seconda del particolare algoritmo.
A tal fine, nella rappresentazione di un algoritmo, le istruzioni vengono raggruppate all’interno di costrutti detti Strutture di Controllo.
ISTRUZIONIISTRUZIONI
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Istruzioni di assegnazioneConsente di assegnare un valore o una espressione ad una variabile. L’assegnazione è distruttiva ovvero si perde il valore contenuto in precedenza nella variabile.La indicheremo con
Nome variabile = Espressione
Istruzioni di assegnazioneConsente di assegnare un valore o una espressione ad una variabile. L’assegnazione è distruttiva ovvero si perde il valore contenuto in precedenza nella variabile.La indicheremo con
Nome variabile = Espressione
Esempio:A =10 Variabile A assegno il numero 10 A = B Variabile A assegno il contenuto della
Variabile BA = B + D Variabile A assegno una espressione
Esempio:A =10 Variabile A assegno il numero 10 A = B Variabile A assegno il contenuto della
Variabile BA = B + D Variabile A assegno una espressione
ISTRUZIONIISTRUZIONI
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Esempio:A = 10 Variabile assegno un dato Costante
Esempio:A = 10 Variabile assegno un dato Costante
A 10
ISTRUZIONIISTRUZIONI
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Esempio:A = B Variabile A assegno Variabile B
Esempio:A = B Variabile A assegno Variabile B
B 7 A B
7
ISTRUZIONIISTRUZIONI
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Esempio:A = B + D Variabile A assegno Espressione
Esempio:A = B + D Variabile A assegno Espressione
B 7 D 4
A B + D
11
ISTRUZIONIISTRUZIONI
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
INPUT: Assegna un valore letto dall’esterno ad una variabile
INPUT: Assegna un valore letto dall’esterno ad una variabile
lato 8
Esempio: Algoritmo dell’area di un quadrato
leggi(lato)
Se l’input è il numero 8 allora nella variabile lato ci sarà il numero 8
Esempio: Algoritmo dell’area di un quadrato
leggi(lato)
Se l’input è il numero 8 allora nella variabile lato ci sarà il numero 8
ISTRUZIONIISTRUZIONI
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
OUTPUT: Visualizzano il valore di una variabile OUTPUT: Visualizzano il valore di una variabile
Area
64
Esempio: Algoritmo dell’area di un quadrato
scrivi(Area)
Se l’input è il numero 8 (lato) allora nella variabile Area ci sarà il numero 64
Esempio: Algoritmo dell’area di un quadrato
scrivi(Area)
Se l’input è il numero 8 (lato) allora nella variabile Area ci sarà il numero 64
LA RAPPRESENTAZIONE DEGLI LA RAPPRESENTAZIONE DEGLI ALGORITMI ALGORITMI
Rappresentare un algoritmo significa esprimerlo in maniera precisa e non ambigua.A tal fine sono state sviluppate diverse tecniche di rappresentazione, che possiamo essenzialmente suddividere tra
GraficheTestuali
Rappresentare un algoritmo significa esprimerlo in maniera precisa e non ambigua.A tal fine sono state sviluppate diverse tecniche di rappresentazione, che possiamo essenzialmente suddividere tra
GraficheTestuali
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Diagrammi a BlocchiDiagrammi a BlocchiGraficheGrafiche
TestualiTestuali PseudocodificaPseudocodifica
I DIAGRAMMI A BLOCCHII DIAGRAMMI A BLOCCHI
Sono particolari diagrammi in cui si indicano, per mezzo di blocchi di forma diversa, le varie operazioni previste dall’algoritmo e, per mezzo di frecce, l’ordine secondo il quale tali operazioni vanno eseguite
Sono particolari diagrammi in cui si indicano, per mezzo di blocchi di forma diversa, le varie operazioni previste dall’algoritmo e, per mezzo di frecce, l’ordine secondo il quale tali operazioni vanno eseguite
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
EsempioEsempio
LA PSEUDOCODIFICA LA PSEUDOCODIFICA
E’ un linguaggio più rigoroso del linguaggio naturale, che usa espressioni verbali opportunamente strutturate per schematizzare le azioni descritte dall’algoritmo.
La pseudocodifica è una convenzione tra risolutore ed esecutore. Noi useremo un sottoinsieme della lingua inglese:
E’ un linguaggio più rigoroso del linguaggio naturale, che usa espressioni verbali opportunamente strutturate per schematizzare le azioni descritte dall’algoritmo.
La pseudocodifica è una convenzione tra risolutore ed esecutore. Noi useremo un sottoinsieme della lingua inglese:
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
inizioleggi(b,h)area = b*hscrivi(area)
fine
inizioleggi(b,h)area = b*hscrivi(area)
fine
EsempioEsempio
ISTRUZIONI DI CONTROLLOISTRUZIONI DI CONTROLLO
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Le strutture di controllo che possono essere presenti in un algoritmo sono:
1) Sequenza2) Assegnazione3) Selezione4) Iterazione
Le strutture di controllo che possono essere presenti in un algoritmo sono:
1) Sequenza2) Assegnazione3) Selezione4) Iterazione
SEQUENZASEQUENZA
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Si parla di Struttura di Sequenza quando le operazioni descritte dall'algoritmo vanno eseguite una dopo l'altra, secondo l'ordine con cui sono elencate.
Un semplice esempio di sequenza è fornito dall’algoritmo per usare il videoregistratore quando si vuole vedere un film:
1) Accendere il televisore2) Accendere il videoregistratore3) Inserire la videocassetta4) Sintonizzare il televisore sul canale del videoregistratore5) Premere il pulsante play del videoregistratore
Si parla di Struttura di Sequenza quando le operazioni descritte dall'algoritmo vanno eseguite una dopo l'altra, secondo l'ordine con cui sono elencate.
Un semplice esempio di sequenza è fornito dall’algoritmo per usare il videoregistratore quando si vuole vedere un film:
1) Accendere il televisore2) Accendere il videoregistratore3) Inserire la videocassetta4) Sintonizzare il televisore sul canale del videoregistratore5) Premere il pulsante play del videoregistratore
SEQUENZASEQUENZA
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Pseudocodifica
inizioIstruzione 1Istruzione 2Istruzione 3…Istruzione n
…fine
Pseudocodifica
inizioIstruzione 1Istruzione 2Istruzione 3…Istruzione n
…fine
DiagrammablocchiDiagrammablocchi
inizio
fine
Istruzioni SempliciIstruzioni Semplici
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Nella rappresentazione di un algoritmo ci possono essere istruzioni semplici o altre strutture di controllo (selezione/Iterazione).
Le istruzioni semplici possono essere di:1) Input2) Output3) Assegnazione
Nella rappresentazione di un algoritmo ci possono essere istruzioni semplici o altre strutture di controllo (selezione/Iterazione).
Le istruzioni semplici possono essere di:1) Input2) Output3) Assegnazione
INPUTINPUT
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
L'istruzione di input (o di lettura) permette di assegnare a una variabile un valore fornito dall'esterno, per esempio tramite la sua digitazione sulla tastiera del computer.
In questa istruzione deve essere sempre specificato il nome della variabile interessata.
Il suo effetto è quello di convertire prima la sequenza di caratteri digitati sulla tastiera in un valore di tipo uguale a quello della variabile e poi di memorizzare tale valore nella locazione di memoria individuata dall'identificatore per tale variabile.
L'istruzione di input (o di lettura) permette di assegnare a una variabile un valore fornito dall'esterno, per esempio tramite la sua digitazione sulla tastiera del computer.
In questa istruzione deve essere sempre specificato il nome della variabile interessata.
Il suo effetto è quello di convertire prima la sequenza di caratteri digitati sulla tastiera in un valore di tipo uguale a quello della variabile e poi di memorizzare tale valore nella locazione di memoria individuata dall'identificatore per tale variabile.
INPUTINPUT
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
In pseudocodifica l'istruzione di input da tastiera ha la seguente forma
leggi (variabile)
In pseudocodifica l'istruzione di input da tastiera ha la seguente forma
leggi (variabile)
I diagrammi a blocchi esprimono l’input da tastiera con un parallelogramma:I diagrammi a blocchi esprimono l’input da tastiera con un parallelogramma:
variabileI
OUTPUTOUTPUT
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
L'istruzione di output (o di scrittura) permette di inviare a una periferica di uscita (per es.: video, stampante) un messaggio o il valore di una variabile.
L’effetto dell'istruzione di output consiste nel calcolare il valore della espressione che nell'istruzione rappresenta ciò che si vuole scrivere, nel visualizzare sulla periferica di output il valore così calcolato.
L'istruzione di output (o di scrittura) permette di inviare a una periferica di uscita (per es.: video, stampante) un messaggio o il valore di una variabile.
L’effetto dell'istruzione di output consiste nel calcolare il valore della espressione che nell'istruzione rappresenta ciò che si vuole scrivere, nel visualizzare sulla periferica di output il valore così calcolato.
OUTPUTOUTPUT
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
In pseudocodifica l'istruzione di output ha la seguente forma
scrivi (variabile)
In pseudocodifica l'istruzione di output ha la seguente forma
scrivi (variabile) I diagrammi di flusso esprimono l’output con un parallelogramma:I diagrammi di flusso esprimono l’output con un parallelogramma:
variabileO
ASSEGNAZIONEASSEGNAZIONE
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
L'istruzione di assegnazione permette di attribuire un valore a una variabile. Ciò può avvenire attraverso
1. il valore immediato che si vuole assegnare2. un'altra variabile3. un'espressione
Le espressioni sono istruzioni composte di costanti, variabili e operatori, e rappresentano i valori aritmetici o booleani risultanti dal loro calcolo.
L’effetto dell'istruzione di assegnazione consiste nel calcolare il valore della costante, della variabile o dell'espressione che devono essere assegnati, associare all'identificatore della variabile tale valore.
Il valore che la variabile aveva prima dell'esecuzione dell'istruzione di assegnazione viene perso (DISTRUTTIVA).
L'istruzione di assegnazione permette di attribuire un valore a una variabile. Ciò può avvenire attraverso
1. il valore immediato che si vuole assegnare2. un'altra variabile3. un'espressione
Le espressioni sono istruzioni composte di costanti, variabili e operatori, e rappresentano i valori aritmetici o booleani risultanti dal loro calcolo.
L’effetto dell'istruzione di assegnazione consiste nel calcolare il valore della costante, della variabile o dell'espressione che devono essere assegnati, associare all'identificatore della variabile tale valore.
Il valore che la variabile aveva prima dell'esecuzione dell'istruzione di assegnazione viene perso (DISTRUTTIVA).
ASSEGNAZIONEASSEGNAZIONE
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
In pseudocodifica l'istruzione di assegnazione del valore di una espressione a una variabile ha la seguente forma
Variabile = espressione
Es.: y = 3* x + 11
In pseudocodifica l'istruzione di assegnazione del valore di una espressione a una variabile ha la seguente forma
Variabile = espressione
Es.: y = 3* x + 11
I diagrammi di flusso esprimono l'istruzione di assegnazione con un rettangolo:I diagrammi di flusso esprimono l'istruzione di assegnazione con un rettangolo:
y = 3* x + 11
SELEZIONESELEZIONE
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Spesso, nella soluzione di un problema ci si trova di fronte alla necessità di prevedere più modi di proseguire, in base al verificarsi o meno di certe condizioni.In questi casi si utilizza la Struttura di Selezione.
Spesso, nella soluzione di un problema ci si trova di fronte alla necessità di prevedere più modi di proseguire, in base al verificarsi o meno di certe condizioni.In questi casi si utilizza la Struttura di Selezione.
Esempio: Accendere il televisore Accendere il videoregistratore Se non è inserita alcuna videocassetta Allora
Inserire la videocassetta Sintonizzare il televisore sul canale del videoregistratore Premere il pulsante play del videoregistratore
Esempio: Accendere il televisore Accendere il videoregistratore Se non è inserita alcuna videocassetta Allora
Inserire la videocassetta Sintonizzare il televisore sul canale del videoregistratore Premere il pulsante play del videoregistratore
La struttura di selezione può essere classificata a seconda del numero di alternative che produce (semplice, binaria o multipla) e in base al modo in cui viene composta con altre strutture di selezione (nidificata o in cascata).
La struttura di selezione può essere classificata a seconda del numero di alternative che produce (semplice, binaria o multipla) e in base al modo in cui viene composta con altre strutture di selezione (nidificata o in cascata).
SELEZIONE SEMPLICESELEZIONE SEMPLICE
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
La Selezione Semplice si ha quando sono presenti istruzioni per uno solo dei due possibili valori della condizione booleana.
La Selezione Semplice si ha quando sono presenti istruzioni per uno solo dei due possibili valori della condizione booleana.
Esempio: … … Se non è inserita alcuna videocassetta Allora
Inserire la videocassetta … …
Esempio: … … Se non è inserita alcuna videocassetta Allora
Inserire la videocassetta … …
Pseudocodifica
Se condizione Allora istruzione1
Finese
Pseudocodifica
Se condizione Allora istruzione1
Finese
Diagramma a blocchiDiagramma a blocchi
condizionevero
SELEZIONE BINARIASELEZIONE BINARIA
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
La Selezione Binaria si ha se sono presenti istruzioni corrispondenti a entrambi i possibili percorsi, e quindi istruzioni corrispondenti al valore vero e istruzioni corrispondenti al valore falso di una condizione booleana.
La Selezione Binaria si ha se sono presenti istruzioni corrispondenti a entrambi i possibili percorsi, e quindi istruzioni corrispondenti al valore vero e istruzioni corrispondenti al valore falso di una condizione booleana. Esempio:Se non è inserita alcuna videocassetta Allora
Inserire la videocassetta Altrimenti
Controllare il titolo della videocassetta
Esempio:Se non è inserita alcuna videocassetta Allora
Inserire la videocassetta Altrimenti
Controllare il titolo della videocassetta
Pseudocodifica
Se condizione Allora istruzione1
Altrimentiistruzione2
finese
Pseudocodifica
Se condizione Allora istruzione1
Altrimentiistruzione2
finese
Diagramma a blocchi flussoDiagramma a blocchi flusso
condizioneVeroFalso
SELEZIONE MULTIPLASELEZIONE MULTIPLA
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
La Selezione Multipla permette la diramazione del flusso operativo in base ai possibili valori di una espressione non booleana. Di conseguenza, la struttura di Selezione Multipla permette la produzione di più di due alternative nella prosecuzione del flusso operativo.
La Selezione Multipla permette la diramazione del flusso operativo in base ai possibili valori di una espressione non booleana. Di conseguenza, la struttura di Selezione Multipla permette la produzione di più di due alternative nella prosecuzione del flusso operativo. Esempio: Controllare il titolo della videocassetta
Se è “Matrix”: Premere il tasto PlaySe è “Via col Vento”: Premere il tasto Eject Se è “Senza Titolo”: Premere il tasto Record
Esempio: Controllare il titolo della videocassetta
Se è “Matrix”: Premere il tasto PlaySe è “Via col Vento”: Premere il tasto Eject Se è “Senza Titolo”: Premere il tasto Record
Pseudocodifica
NEL CASO CHE espressione SIA
valore 1: sequenza 1;valore 2: sequenza 2;…valore n: sequenza n;
ALTRIMENTI sequenza;FINECASO;
Pseudocodifica
NEL CASO CHE espressione SIA
valore 1: sequenza 1;valore 2: sequenza 2;…valore n: sequenza n;
ALTRIMENTI sequenza;FINECASO;
Diagramma a blocchiDiagramma a blocchi
espressione
1 2 … n altro
SELEZIONE NIDIFICATASELEZIONE NIDIFICATA
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Si parla di selezione nidificata quando all'interno del blocco che deve essere eseguito nel caso di condizione vera troviamo altre strutture di selezione.
Si parla di selezione nidificata quando all'interno del blocco che deve essere eseguito nel caso di condizione vera troviamo altre strutture di selezione.
Esempio: Controllare il titolo della videocassetta
Se il titolo è “Matrix” Allora Se il nastro è all’inizio Allora
Premere il tasto Play Altrimenti
Premere il tasto Rewind Altrimenti Premere il tasto Eject
Esempio: Controllare il titolo della videocassetta
Se il titolo è “Matrix” Allora Se il nastro è all’inizio Allora
Premere il tasto Play Altrimenti
Premere il tasto Rewind Altrimenti Premere il tasto Eject
Pseudocodifica
Se condizione1 Allora
Se condizione2 Allora
istruzione1Altrimenti
istruzione2finese
Altrimentiistruzione3
finese
Pseudocodifica
Se condizione1 Allora
Se condizione2 Allora
istruzione1Altrimenti
istruzione2finese
Altrimentiistruzione3
finese
SELEZIONE NIDIFICATASELEZIONE NIDIFICATA
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Si parla di selezione nidificata quando all'interno del blocco che deve essere eseguito nel caso di condizione vera troviamo altre strutture di selezione.
Si parla di selezione nidificata quando all'interno del blocco che deve essere eseguito nel caso di condizione vera troviamo altre strutture di selezione.
Matrix
Inizionastro
Eject
PlayRewind
vero
falso
verofalso
Esempio: Controllare il titolo della videocassetta Se il titolo è “Matrix” Allora Se il nastro è all’inizio Allora Premere il tasto Play
Altrimenti Premere il tasto Rewind Altrimenti Premere il tasto Eject
Esempio: Controllare il titolo della videocassetta Se il titolo è “Matrix” Allora Se il nastro è all’inizio Allora Premere il tasto Play
Altrimenti Premere il tasto Rewind Altrimenti Premere il tasto Eject
ITERAZIONEITERAZIONE
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Quando, al fine della soluzione di un problema è necessario eseguire più volte un'istruzione o un blocco di istruzioni si utilizza la Struttura di Iterazione.Essa, detta anche Ciclo, comanda l'esecuzione ripetuta di un'istruzione o di un blocco di istruzioni in base al verificarsi di una data condizione.
Quando, al fine della soluzione di un problema è necessario eseguire più volte un'istruzione o un blocco di istruzioni si utilizza la Struttura di Iterazione.Essa, detta anche Ciclo, comanda l'esecuzione ripetuta di un'istruzione o di un blocco di istruzioni in base al verificarsi di una data condizione.
Esempio: Accendere il televisore Sintonizzare il televisore sul primo canale Fintantoché il canale sintonizzato sta trasmettendo il telegiornale, eseguire:
Sintonizzare il televisore sul canale successivo Guardare la trasmissione
Esempio: Accendere il televisore Sintonizzare il televisore sul primo canale Fintantoché il canale sintonizzato sta trasmettendo il telegiornale, eseguire:
Sintonizzare il televisore sul canale successivo Guardare la trasmissione
Esistono diversi tipi di Cicli, a seconda di quando e come viene effettuato il controllo sulla condizione:
1. ciclo a condizione iniziale2. ciclo a condizione finale3. ciclo enumerativo
Esistono diversi tipi di Cicli, a seconda di quando e come viene effettuato il controllo sulla condizione:
1. ciclo a condizione iniziale2. ciclo a condizione finale3. ciclo enumerativo
CICLO CON CONTROLLO IN CODACICLO CON CONTROLLO IN CODA
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Nel Ciclo con Controllo in Coda, prima vengono eseguite le istruzioni corrispondenti al corpo dell'iterazione, poi viene eseguito il controllo per stabilire se ripetere ulteriormente tali istruzioni.In questo caso, la condizione si dice di uscita, in quanto, se essa non è verificata, allora il ciclo viene ripetuto, altrimenti l'esecuzione prosegue con la prima istruzione successiva alla struttura di iterazione.In un ciclo con Controllo in coda il corpo dell'iterazione viene eseguito almeno una volta, indipendentemente dal verificarsi o meno della condizione di iterazione.
Nel Ciclo con Controllo in Coda, prima vengono eseguite le istruzioni corrispondenti al corpo dell'iterazione, poi viene eseguito il controllo per stabilire se ripetere ulteriormente tali istruzioni.In questo caso, la condizione si dice di uscita, in quanto, se essa non è verificata, allora il ciclo viene ripetuto, altrimenti l'esecuzione prosegue con la prima istruzione successiva alla struttura di iterazione.In un ciclo con Controllo in coda il corpo dell'iterazione viene eseguito almeno una volta, indipendentemente dal verificarsi o meno della condizione di iterazione.Esempio:
Eseguire le seguenti istruzioni:Prendere una videocassetta dallo scaffaleLeggere il titolo della videocassetta
fino a trovare che il titolo è “Matrix”Inserire la videocassetta nel videoregistratorePremere il tasto Play
Esempio:
Eseguire le seguenti istruzioni:Prendere una videocassetta dallo scaffaleLeggere il titolo della videocassetta
fino a trovare che il titolo è “Matrix”Inserire la videocassetta nel videoregistratorePremere il tasto Play
CICLO CROLLO IN CODACICLO CROLLO IN CODA
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Pseudocodifica
Eseguiistruzione 1;istruzione 2;…istruzione n;
Ripeti finchè cond
Pseudocodifica
Eseguiistruzione 1;istruzione 2;…istruzione n;
Ripeti finchè cond
Diagramma di flussoDiagramma di flusso
condizione falso
vero
CICLO CON CONTROLLO IN CICLO CON CONTROLLO IN TESTATESTA
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Nel Ciclo con Controllo in Testa, per prima cosa si esegui in controllo della condizione. Se la condizione è Vera si eseguono le istruzioni del ciclo e poi si ripete il controllo. Quando la condizione è FALSA l’esecuzione prosegue con la prima istruzione successiva alla struttura di iterazione.In un ciclo con Controllo in testa il corpo dell'iterazione potrebbe anche non essere mai eseguito se la condizione è sempre FALSA.
Nel Ciclo con Controllo in Testa, per prima cosa si esegui in controllo della condizione. Se la condizione è Vera si eseguono le istruzioni del ciclo e poi si ripete il controllo. Quando la condizione è FALSA l’esecuzione prosegue con la prima istruzione successiva alla struttura di iterazione.In un ciclo con Controllo in testa il corpo dell'iterazione potrebbe anche non essere mai eseguito se la condizione è sempre FALSA.
CICLO A CONDIZIONE INIZIALECICLO A CONDIZIONE INIZIALE
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Nelle istruzioni del Ciclo ci deve essere almeno una istruzione che cambia la condizione (da Vera a Falsa) altrimenti diventa un Ciclo INFINITO
Nelle istruzioni del Ciclo ci deve essere almeno una istruzione che cambia la condizione (da Vera a Falsa) altrimenti diventa un Ciclo INFINITO
Pseudocodifica
mentre condizione esegui
istruzione 1;istruzione 2;…istruzione n;
finementre
Pseudocodifica
mentre condizione esegui
istruzione 1;istruzione 2;…istruzione n;
finementre
Diagramma di flussoDiagramma di flusso
condizione
vero
Istruz1
falso
Istruz2
CICLO ENUMERATIVOCICLO ENUMERATIVO
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Il Ciclo Enumerativo impone la ripetizione delle istruzioni un numero predefinito di volte.
Il Ciclo Enumerativo impone la ripetizione delle istruzioni un numero predefinito di volte.
Esempio:Quattro amici sono venuti a farci visita e vogliamo offrire loro da bere dell’aranciata.
L’algoritmo è il seguente:
Prendere un vassoioEseguire 4 volte le seguienti istruzioni: Prendere un bicchiere Posare il bicchiere sul vassoioPrendere la bottiglia di aranciataVersare l’aranciata nei bicchieri
Esempio:Quattro amici sono venuti a farci visita e vogliamo offrire loro da bere dell’aranciata.
L’algoritmo è il seguente:
Prendere un vassoioEseguire 4 volte le seguienti istruzioni: Prendere un bicchiere Posare il bicchiere sul vassoioPrendere la bottiglia di aranciataVersare l’aranciata nei bicchieri
CICLO ENUMERATIVOCICLO ENUMERATIVO
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Il Ciclo Enumerativo prevede l'utilizzo di una variabile di controllo che permette di contare il numero di iterazioni eseguite.
Il Ciclo Enumerativo prevede l'utilizzo di una variabile di controllo che permette di contare il numero di iterazioni eseguite.
Pseudocodifica
FOR variabile := valore1 TO valore2 STEP valore3 DOSequenza di istruzioni
Pseudocodifica
FOR variabile := valore1 TO valore2 STEP valore3 DOSequenza di istruzioni
La variabile di controllo viene inizializzata a un valore di partenza prima di entrare nel corpo del ciclo e, dopo ciascuna iterazione, viene incrementata di un valore detto passo dell'iterazione.Il ciclo termina quando il valore raggiunto dalla variabile di controllo supera quello indicato come valore obiettivo.
Il confronto della variabile di controllo con il valore obiettivo viene eseguito all'inizio del ciclo.
La variabile di controllo viene inizializzata a un valore di partenza prima di entrare nel corpo del ciclo e, dopo ciascuna iterazione, viene incrementata di un valore detto passo dell'iterazione.Il ciclo termina quando il valore raggiunto dalla variabile di controllo supera quello indicato come valore obiettivo.
Il confronto della variabile di controllo con il valore obiettivo viene eseguito all'inizio del ciclo.
CICLO ENUMERATIVOCICLO ENUMERATIVO
UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI
Diagramma a Blocchi
Diagramma a Blocchi
Variabile <= n
vero
falso
Variabile := 1
…
Variabile := Variabile + 1
…