Unit D 3 Costruiamo algoritmi con la programmazione

  • Slides: 21
Download presentation
Unità D 3 Costruiamo algoritmi con la programmazione strutturata

Unità D 3 Costruiamo algoritmi con la programmazione strutturata

Lezione LIM Costruiamo algoritmi con la programmazione strutturata

Lezione LIM Costruiamo algoritmi con la programmazione strutturata

Le istruzioni di un algoritmo: classificazione per tipo Le istruzioni presenti in un algoritmo

Le istruzioni di un algoritmo: classificazione per tipo Le istruzioni presenti in un algoritmo possono essere classificate in base al loro tipo o comportamento. In generale possiamo suddividerle in istruzioni di inizio e fine, istruzioni operative e istruzioni di controllo. Costruiamo algoritmi con la programmazione strutturata

Le istruzioni di inizio e fine e le istruzioni operative Un algoritmo deve prevedere

Le istruzioni di inizio e fine e le istruzioni operative Un algoritmo deve prevedere un solo inizio e una sola fine che indicano, rispettivamente, quale istruzione dell’algoritmo debba essere eseguita inizialmente e quale determini la fine dell’esecuzione. Costruiamo algoritmi con la programmazione strutturata

Le istruzioni di inizio e fine e le istruzioni operative Le istruzioni operative sono

Le istruzioni di inizio e fine e le istruzioni operative Le istruzioni operative sono quelle che corrispondono ad azioni direttamente eseguibili dall’esecutore e servono per acquisire i dati iniziali, effettuare le elaborazioni e comunicare i risultati finali. Si classificano in istruzioni di assegnazione, di input e di output. Costruiamo algoritmi con la programmazione strutturata

Le istruzioni di inizio e fine e le istruzioni operative Per attribuire un valore

Le istruzioni di inizio e fine e le istruzioni operative Per attribuire un valore a una variabile facciamo uso dell’istruzione di assegnazione (o assegnamento), caratterizzata dall’operatore binario identificato dal simbolo ←. L’istruzione di assegnazione ha due termini: uno a sinistra e uno a destra del simbolo ←. Dopo aver dichiarato una variabile è utile, assegnarle un valore iniziale utile; tale operazione prende il nome di inizializzazione. Costruiamo algoritmi con la programmazione strutturata

Le istruzioni di inizio e fine e le istruzioni operative Per dichiarare una costante:

Le istruzioni di inizio e fine e le istruzioni operative Per dichiarare una costante: usare la parola chiave COSTANTI seguita dal nome della costante, dal simbolo ← e dal valore da assegnare: Per dichiarare una variabile occorre utilizzare la parola chiave VARIABILI seguita dall’identificatore della variabile, dal segno di due punti e dal tipo di appartenenza. In una stessa istruzione di dichiarazione è possibile dichiarare più variabili dello stesso tipo (separate da virgola): Costruiamo algoritmi con la programmazione strutturata

Le istruzioni di inizio e fine e le istruzioni operative L’istruzione di input è

Le istruzioni di inizio e fine e le istruzioni operative L’istruzione di input è un particolare tipo di istruzione di assegnazione: consente di assegnare a una variabile un valore fornito dall’esterno, modificando di conseguenza l’ambiente di valutazione della variabile. Costruiamo algoritmi con la programmazione strutturata

Le istruzioni di inizio e fine e le istruzioni operative L’istruzione di output consente

Le istruzioni di inizio e fine e le istruzioni operative L’istruzione di output consente di comunicare un valore o un messaggio all’esterno; non modifica in alcun modo l’ambiente di valutazione delle variabili. Costruiamo algoritmi con la programmazione strutturata

Le strutture di controllo (tipiche della programmazione strutturata) consentono di scegliere percorsi differenti durante

Le strutture di controllo (tipiche della programmazione strutturata) consentono di scegliere percorsi differenti durante l’esecuzione in funzione del verificarsi o meno di determinate condizioni. Si suddividono in strutture di sequenza, di selezione e di iterazione. Secondo il Teorema di Böhm-Jacopini, qualunque algoritmo può essere realizzato utilizzando i soli costrutti sintattici fondamentali: sequenza, selezione e iterazione. Costruiamo algoritmi con la programmazione strutturata

La sequenza è la più semplice fra le tre strutture di controllo fondamentali. Si

La sequenza è la più semplice fra le tre strutture di controllo fondamentali. Si utilizza quando le azioni devono essere eseguite ordinatamente una dopo l’altra senza alcuna possibilità di scelta. Le istruzioni vengono scritte una dopo l’altra, e verranno poi eseguite una dopo l’altra nell’ordine con cui sono scritte. Costruiamo algoritmi con la programmazione strutturata

La selezione Il costrutto di selezione binaria permette di effettuare una scelta fra due

La selezione Il costrutto di selezione binaria permette di effettuare una scelta fra due possibili alternative. Per effettuare la scelta, dobbiamo valutare una condizione. Costruiamo algoritmi con la programmazione strutturata

La selezione Il costrutto di selezione può presentarsi anche con un solo ramo, cioè

La selezione Il costrutto di selezione può presentarsi anche con un solo ramo, cioè senza l’alternativa ALTRIMENTI. Questo caso è chiamato di selezione unaria. Per distinguere correttamente le informazioni e identificare la loro dipendenza le istruzioni correlate vengono incolonnate in modo omogeneo. Questa tecnica è conosciuta come indentazione. Costruiamo algoritmi con la programmazione strutturata

La selezione Per risolvere i problemi in cui si opera una scelta tra più

La selezione Per risolvere i problemi in cui si opera una scelta tra più di due alternative, in dipendenza del valore assunto da un certo parametro, è molto utile utilizzare il costrutto di selezione multipla. <Selettore> è il nome di una variabile il cui contenuto costituisce l’elemento che discrimina la scelta e <Valore 1> è un possibile valore della variabile. Costruiamo algoritmi con la programmazione strutturata

L’algebra booleana e il suo ruolo nella programmazione strutturata All’interno di un costrutto di

L’algebra booleana e il suo ruolo nella programmazione strutturata All’interno di un costrutto di selezione l’esecutore deve stabilire con esattezza se una condizione risulta vera o falsa e spesso si ritrova davanti a una condizione articolata con operatori logici il cui valore finale è determinato dalle regole dell’algebra di Boole. Costruiamo algoritmi con la programmazione strutturata

L’algebra booleana e il suo ruolo nella programmazione strutturata Una proposizione è un costrutto

L’algebra booleana e il suo ruolo nella programmazione strutturata Una proposizione è un costrutto linguistico autonomo di senso compiuto, composto per lo meno da un soggetto e da un predicato. Un enunciato è una particolare proposizione che può assumere solo due stati possibili (Vero/Falso, V/F). La verità o falsità di un enunciato sono i valori di verità dell’enunciato. Gli enunciati per i quali si può immediatamente affermare se sono veri o falsi prendono il nome di enunciati semplici (o atomici). Costruiamo algoritmi con la programmazione strutturata

L’algebra booleana e il suo ruolo nella programmazione strutturata Una combinazione di enunciati legati

L’algebra booleana e il suo ruolo nella programmazione strutturata Una combinazione di enunciati legati da particolari operatori, detti connettivi logici, prende il nome di enunciato composto (o molecolare). Valutare gli enunciati composti significa associare a ognuno il valore Vero o Falso, partendo dall’analisi degli enunciati semplici che li compongono e applicando semplici regole. Per ciascuno dei connettivi logici AND (congiunzione) OR (disgiunzione) NOT (negazione) costruiremo le tabelle dette tavole di verità, in cui sono illustrate tutte le possibili combinazioni di 2 enunciati semplici in funzione delle quali l’enunciato composto assume un certo valore. Costruiamo algoritmi con la programmazione strutturata

L’algebra booleana e il suo ruolo nella programmazione strutturata Il connettivo logico AND è

L’algebra booleana e il suo ruolo nella programmazione strutturata Il connettivo logico AND è detto prodotto logico, poiché il risultato si può ottenere dal prodotto algebrico delle due variabili che rappresentano gli enunciati in ingresso. p AND q è vero quando sia p che q sono veri. Il connettivo logico OR è detto somma logica, poiché il risultato si può ottenere dalla somma algebrica delle due variabili che rappresentano gli enunciati in ingresso. Perché p OR q sia vero basta che p sia vero, oppure che q sia vero. Costruiamo algoritmi con la programmazione strutturata

L’algebra booleana e il suo ruolo nella programmazione strutturata Il connettivo logico NOT è

L’algebra booleana e il suo ruolo nella programmazione strutturata Il connettivo logico NOT è anche detto negazione logica, poiché inverte, cioè “complementa” il valore della variabile in ingresso. Fornisce in uscita il valore “opposto” al valore della variabile in ingresso, che per tale motivo viene detto valore complementato o valore negato. Il connettivo XOR è detto disgiunzione esclusiva ed esclude che la proposizione risultante possa essere vera se entrambe le proposizioni componenti hanno lo stesso valore di verità. Costruiamo algoritmi con la programmazione strutturata

L’algebra booleana e il suo ruolo nella programmazione strutturata Nell’ambito della logica booleana è

L’algebra booleana e il suo ruolo nella programmazione strutturata Nell’ambito della logica booleana è possibile usare gli operatori relazionali (=, ≠, <, >, ≤, ≥). Costruiamo algoritmi con la programmazione strutturata

L’algebra booleana e il suo ruolo nella programmazione strutturata Si possono combinare più operatori

L’algebra booleana e il suo ruolo nella programmazione strutturata Si possono combinare più operatori logici per ottenere espressioni logiche più complesse. Come nell’algebra tradizionale, anche nell’algebra di Boole sono definite precise regole di precedenza tra gli operatori. Pertanto, è necessario ricordare che: • NOT ha precedenza più alta di AND e OR; ad esempio: NOT a AND NOT b OR NOT c equivale a (NOT a) AND (NOT b) OR (NOT c); • AND ha precedenza più alta di OR, ad esempio: a AND b OR c equivale a (a AND b) OR c. Costruiamo algoritmi con la programmazione strutturata