La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Prof. Di Capua Giuseppe. Problemi La parola problema ha un vasto campo di significati. Nella scuola quello più comune è legato alla matematica o almeno.

Presentazioni simili


Presentazione sul tema: "Prof. Di Capua Giuseppe. Problemi La parola problema ha un vasto campo di significati. Nella scuola quello più comune è legato alla matematica o almeno."— Transcript della presentazione:

1 Prof. Di Capua Giuseppe

2 Problemi 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

3 Problemi 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

4 Problemi 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

5 Problemi 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 domande poste, vuoi dire «risolvere un problema». Uscire da una situazione problematica vuol dire compiere delle azioni che permettono di dare risposte alle domande poste, vuoi dire «risolvere un problema». Ud 1: Dal problema all’algoritmo

6 Risolutore ed Esecutore chi si propone di risolvere un problema 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.

7 Risolutore ed Esecutore chi si propone di eseguire la soluzione del problema Esecutore 1/7 Ud 1: Dal problema all’algoritmo

8 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

9 L’Esecutore si occupa di: 2/7 a) eseguire nell'ordine le operazioni descritte nel processo risolutivo evidenziando i risultati o finali; Ud 1: Dal problema all’algoritmo

10 Risolutore ed Esecutore 3/7 Ud 1: Dal problema all’algoritmo PROBLEMA VERIFICA DEI RISULTATI INTERPRETAZIONE MODELLO PROCEDIMENTO RISOLUTIVO ESECUZIONE

11 Risolutore 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

12 Risolutore 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 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'esecutore

13 Risolutore ed Esecutore 6/7 Ud 1: Dal problema all’algoritmo Procedimento risolutivo del problema Esecutore Dati finali o risultati Dati iniziali Verifica dei risultati Risolutore

14 Risolutore 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.

15 Algoritmo 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. Se tale successione di istruzioni rispetta determinate caratteristiche viene detta Algoritmo

16 Algoritmo 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

17 Algoritmi 2/6 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 elettrodomestico Le regole per eseguire la divisione tra due numeri Esempi di algoritmo possono essere: Le istruzioni per l’utilizzo di un elettrodomestico Le regole per eseguire la divisione tra due numeri

18 Algoritmi 3/6 Ud 1: Dal problema all’algoritmo 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

19 Algoritmi 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. Definizione

20 Algoritmi Dati che servono Risultati Ud 1: Dal problema all’algoritmo Contattare telefonicamente una serie di persone a cui deve lasciare un messaggio Il messaggio da comunicare 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 5/6 Deve

21 Algoritmi 6/6 Contattare telefonicamente una serie di persone a cui deve lasciare un messaggio Algoritmo o leggi il numero telefonico o componi il numero o 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 telefonico o componi il numero o 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

22 VARIABILI E COSTANTI 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à. 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.

23 VARIABILI E COSTANTI h b A= b  h Gli attributi che assumono sempre lo stesso valore vengono definiti COSTANTI 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

24 DATI I dati sono i valori assunti da variabili e costanti. I dati possono essere di diverso tipo: UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI

25 ISTRUZIONI Le istruzioni sono le azioni che costituiscono l’algoritmo. sequenziale Al fine di raggiungere il risultato voluto, le istruzioni di un algoritmo devono essere eseguite secondo un ordine ben preciso, che di norma è quello sequenziale, 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. sequenziale Al fine di raggiungere il risultato voluto, le istruzioni di un algoritmo devono essere eseguite secondo un ordine ben preciso, che di norma è quello sequenziale, 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.

26 ISTRUZIONI UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI Istruzioni di assegnazione Consente 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 assegnazione Consente 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 =10Variabile A assegno il numero 10 A = B Variabile A assegno il contenuto della Variabile B A = B + D Variabile A assegno una espressione Esempio: A =10Variabile A assegno il numero 10 A = B Variabile A assegno il contenuto della Variabile B A = B + D Variabile A assegno una espressione

27 ISTRUZIONI UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI Esempio: A = 10Variabile assegno un dato Costante Esempio: A = 10Variabile assegno un dato Costante A 10

28 ISTRUZIONI UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI Esempio: A = BVariabile A assegno Variabile B Esempio: A = BVariabile A assegno Variabile B B 7 A B 7

29 ISTRUZIONI 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

30 ISTRUZIONI UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI 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

31 ISTRUZIONI UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI 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

32 LA RAPPRESENTAZIONE DEGLI 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  Grafiche  Testuali 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  Grafiche  Testuali UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI Diagrammi a Blocchi Grafiche Testuali Pseudocodifica

33 I 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 UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI Esempio

34 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 inizio leggi(b,h) area = b*h scrivi(area) fine inizio leggi(b,h) area = b*h scrivi(area) fine Esempio

35 ISTRUZIONI DI CONTROLLO UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI Le strutture di controllo che possono essere presenti in un algoritmo sono: 1)Sequenza 2)Assegnazione 3)Selezione 4)Iterazione Le strutture di controllo che possono essere presenti in un algoritmo sono: 1)Sequenza 2)Assegnazione 3)Selezione 4)Iterazione

36 SEQUENZA 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 televisore 2) Accendere il videoregistratore 3) Inserire la videocassetta 4) Sintonizzare il televisore sul canale del videoregistratore 5) 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 televisore 2) Accendere il videoregistratore 3) Inserire la videocassetta 4) Sintonizzare il televisore sul canale del videoregistratore 5) Premere il pulsante play del videoregistratore

37 SEQUENZA UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI Pseudocodifica inizio Istruzione 1 Istruzione 2 Istruzione 3 … Istruzione n … fine Pseudocodifica inizio Istruzione 1 Istruzione 2 Istruzione 3 … Istruzione n … fine Diagramma blocchi Diagramma blocchi inizio fine

38 Istruzioni 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) Input 2) Output 3) AssegnazioneInputOutputAssegnazione Nella rappresentazione di un algoritmo ci possono essere istruzioni semplici o altre strutture di controllo (selezione/Iterazione). Le istruzioni semplici possono essere di: 1) Input 2) Output 3) AssegnazioneInputOutputAssegnazione

39 INPUT 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.

40 INPUT 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: variabile I

41 OUTPUT 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.

42 OUTPUT 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: variabile O

43 ASSEGNAZIONE 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 assegnare 2. un'altra variabile 3. 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 assegnare 2. un'altra variabile 3. 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).

44 ASSEGNAZIONE 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: y = 3* x + 11

45 SELEZIONE 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).binariamultiplanidificatain 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).binariamultiplanidificatain cascata

46 SELEZIONE 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. 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 blocchi condizione vero

47 SELEZIONE 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. 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 Altrimenti istruzione2 finese Pseudocodifica Se condizione Allora istruzione1 Altrimenti istruzione2 finese Diagramma a blocchi flusso condizione Vero Falso

48 SELEZIONE 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. Esempio: Controllare il titolo della videocassetta Se è “Matrix”: Premere il tasto Play Se è “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 Play Se è “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 blocchi espressione 12… naltro

49 SELEZIONE 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. 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 istruzione1 Altrimenti istruzione2 finese Altrimenti istruzione3 finese Pseudocodifica Se condizione1 Allora Se condizione2 Allora istruzione1 Altrimenti istruzione2 finese Altrimenti istruzione3 finese

50 SELEZIONE 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. Matrix Inizio nastro Eject PlayRewind vero falso vero falso 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

51 ITERAZIONE 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 iniziale 2. ciclo a condizione finale 3. ciclo enumerativociclo a condizione inizialeciclo a condizione finaleciclo enumerativo Esistono diversi tipi di Cicli, a seconda di quando e come viene effettuato il controllo sulla condizione: 1. ciclo a condizione iniziale 2. ciclo a condizione finale 3. ciclo enumerativociclo a condizione inizialeciclo a condizione finaleciclo enumerativo

52 CICLO 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 scaffale Leggere il titolo della videocassetta fino a trovare che il titolo è “Matrix” Inserire la videocassetta nel videoregistratore Premere il tasto Play Esempio: Eseguire le seguenti istruzioni: Prendere una videocassetta dallo scaffale Leggere il titolo della videocassetta fino a trovare che il titolo è “Matrix” Inserire la videocassetta nel videoregistratore Premere il tasto Play

53 CICLO CROLLO IN CODA UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI Pseudocodifica Esegui istruzione 1; istruzione 2; … istruzione n; Ripeti finchè cond Pseudocodifica Esegui istruzione 1; istruzione 2; … istruzione n; Ripeti finchè cond Diagramma di flusso condizione falso vero

54 CICLO CON CONTROLLO IN TESTA 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.

55 CICLO 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 Pseudocodifica mentre condizione esegui istruzione 1; istruzione 2; … istruzione n; finementre Pseudocodifica mentre condizione esegui istruzione 1; istruzione 2; … istruzione n; finementre Diagramma di flusso condizione vero Istruz1 falso Istruz2

56 CICLO ENUMERATIVO UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI 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 vassoio Eseguire 4 volte le seguienti istruzioni: Prendere un bicchiere Posare il bicchiere sul vassoio Prendere la bottiglia di aranciata Versare 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 vassoio Eseguire 4 volte le seguienti istruzioni: Prendere un bicchiere Posare il bicchiere sul vassoio Prendere la bottiglia di aranciata Versare l’aranciata nei bicchieri

57 CICLO 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. Pseudocodifica FOR variabile := valore1 TO valore2 STEP valore3 DO Sequenza di istruzioni Pseudocodifica FOR variabile := valore1 TO valore2 STEP valore3 DO Sequenza 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.

58 CICLO ENUMERATIVO UNITA’ DIDATTICA 3: LA RAPPRESENTAZIONE DEGLI ALGORITMI Diagramma a Blocchi Diagramma a Blocchi Variabile <= n vero falso Variabile := 1 … Variabile := Variabile + 1 …


Scaricare ppt "Prof. Di Capua Giuseppe. Problemi La parola problema ha un vasto campo di significati. Nella scuola quello più comune è legato alla matematica o almeno."

Presentazioni simili


Annunci Google