La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmazione strutturata

Presentazioni simili


Presentazione sul tema: "Programmazione strutturata"— Transcript della presentazione:

1 Programmazione strutturata
Informatica per l’Ingegneria

2 Programmi strutturati
L’obiettivo della programmazione strutturata è di rendere un flusso ordinato il passaggio tra le istruzioni dall’inizio alla fine dei programmi Realizzazione: Condizione ideale: sequenza lineare di operazioni, senza alternative possibili(limite: potenza algoritmi ridotta) Condizione reale: regole coerenti con il pensiero naturale che portano ad effetti equivalenti all’esecuzione sequenziale di operazioni Costrutti consentiti (strutture di controllo del flusso): Sequenza: fai questo Selezione tramite strutture di controllo decisionali: se è verificata una condizione fai questo altrimenti fai quello Ripetizioni cicliche tramite strutture di controllo iterative: finché è verificata una condizione fai questo Costrutti non consentiti: Salto incondizionato (goto): ancora nella sintassi solo per compatibilità verso il basso(era necessario nel linguaggio macchina e assembler) Informatica per l’Ingegneria

3 Programmi strutturati
TEOREMA DI BOHM-JACOPINI: tutti i programmi possono essere scritti con l’utilizzo delle sole strutture di controllo: sequenza, selezione e iterazione (senza l’uso del salto goto) Corrado Böhm e Giuseppe Jacopini hanno dimostrato che la potenza di calcolo dei programmi strutturati (più chiari, più facili da scrivere e da modificare e più probabilisticamente esenti da errori) non è inferiore a quella dei programmi che usano il goto Informatica per l’Ingegneria

4 Informatica per l’Ingegneria
Sequenza : flow-chart Operazioni: - fai questo - fai quello Esempio: a = 5; a = a+b; Informatica per l’Ingegneria

5 Selezione : flow-chart
Operazioni: se è verificata una condizione fai questo se è verificata una condizione fai questo altrimenti fai quello Sintassi Matlab: if espressione istruzione end istruzione1 else istruzione2 Informatica per l’Ingegneria

6 Iterazione : flow-chart
espressione falso vero istruzione Operazioni: finchè è verificata una condizione fai questo  esegui fai questo finchè è verificata una condizione Sintassi Matlab: while espressione               istruzione     End Ciclo a condizione finale non direttamente codificabile in Matlab Informatica per l’Ingegneria

7 Programmi strutturati: flow-chart
Si apre con un cerchio e finisce con un cerchio: tutti i canali partono dal primo cerchio e terminano nell’ultimo (un solo inizio ed una sola fine) Composto da più strutture di controllo del tipo sequenza selezione o iterazione I cerchi sono i connettori tra le strutture di controllo: altri punti di attacco non consentiti Informatica per l’Ingegneria

8 Informatica per l’Ingegneria
Blocco d’istruzioni Più strutture formano un blocco d’istruzioni: insieme d’istruzioni con una sola entrata, da dove inizia sempre l’elaborazione, e una sola uscita, dove termina sempre l’elaborazione del blocco(nessuna uscita laterale con istruzioni di salto) Scatola nera per eseguire un compito: non possono essere utilizzate delle sottoparti I blocchi possono contenersi l’un l’altro ma mai intersecarsi  blocco Informatica per l’Ingegneria

9 Programmazione strutturata: esempi
Calcolo della somma algebrica tra due numeri relativi utilizzando le operazioni di somma e differenza tra numeri senza segno Calcolo della media Calcolo dei valori massimo e minimo Visualizzazione di caratteri letti da tastiera Calcolo di una potenza Visualizzazione di un quadrato Informatica per l’Ingegneria

10 Informatica per l’Ingegneria
Esempio 1 falso inizio a, b concordi s a+b fine |a| < |b| s a-b t a a b bt vero modulo di s e segno di a a , b Problema: Calcolo della somma algebrica tra due numeri relativi utilizzando le operazioni di somma e differenza tra numeri senza segno Algoritmo: - acquisizione dei due numeri a,b - se a,b sono concordi |s|=|a|+|b| - se a,b sono discordi - se |a|<|b| si scambiano i valori di a e b - |s|=|a|-|b| - la somma ha il segno di a e modulo |s| Informatica per l’Ingegneria

11 Informatica per l’Ingegneria
Esempio 2 inizio s  0 i  1 i < =10 s  s + n i  i + 1 m  s/10 fine vero falso m n Problema: Acquisizione di 10 numeri interi e calcolo della media Algoritmo: Azzerare la somma s Se non si sono acquisiti tutti i numeri: 2.1 Acquisire un numero n 2.2 Sommare n ad s e tornare al passo 2 La media è s/10 Fine Informatica per l’Ingegneria

12 Informatica per l’Ingegneria
Esempio 3 inizio max n min  n i  2 i <= 10 fine n > max min  n n< min max n vero falso i  i +1 min, max n Problema: Acquisizione di 10 numeri interi; determinazione e visualizzazione del numero maggiore e minore Algoritmo: Leggi il primo numero n Poni il massimo e il minimo corrente(variabili max e min) pari a n Finché i numeri inseriti sono meno di 10 3.1 Leggi un nuovo numero n 3.2 Se n<min min=n altrimenti se n>max max=n Visualizza min e max Fine Informatica per l’Ingegneria

13 Informatica per l’Ingegneria
Esempio 4 inizio Problema: Scrivere un programma che consenta, acquisito un numero intero n, di acquisire un carattere c e visualizzarlo n volte sulla stessa riga finché n è maggiore di zero Algoritmo: Leggi il primo numero n Finché n>0 2.1 Leggi c 2.2 Visualizza c n volte 2.3 Visualizza “a capo” 2.3 Leggi nuovo numero n Fine connettore n n > 0 falso Inizio blocco 2.2 vero i  1 i<= n falso c vero c blocco 2.2 i  i+1 a capo Fine blocco 2.2 n fine Informatica per l’Ingegneria

14 Informatica per l’Ingegneria
Esempio 5 inizio x, n pot  1 i  1 i<= n i  i+1 vero falso pot = pot * x pot fine Problema: Calcolo e visualizzazione di una potenza(variabile pot), acquisiti la base x e l’esponente n Algoritmo: Acquisisci x ed n(intero) Poni pot pari ad 1 Esegui per n volte pot pot * x 4. Visualizza pot 5. Fine Informatica per l’Ingegneria

15 Informatica per l’Ingegneria
Esempio 6 inizio n i  1 Problema: acquisito un numero intero n, si visualizzi una figura quadrata di n*n con degli asterischi nella diagonale principale, dei segni meno al di sotto e dei segni più al di sopra della diagonale principale Algoritmo: Leggi n Finché le righe visualizzate sono meno di n (indice i scorre le righe) Finchè le colonne visualizzate sono meno di n(indice j scorre le colonne) se j>i visualizza il carattere meno se j=i visualizza il carattere asterisco se i<j visualizza il carattere più Esci i<= n falso vero j  1 j <= n falso vero falso j < i vero falso j =i vero - + * j  j+1 a capo i  i+1 Informatica per l’Ingegneria fine


Scaricare ppt "Programmazione strutturata"

Presentazioni simili


Annunci Google