+ All Categories
Home > Documents > Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare...

Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare...

Date post: 16-Feb-2019
Category:
Upload: ledang
View: 219 times
Download: 0 times
Share this document with a friend
56
Programmazione I Fondamenti di programmazione ( Lezione I ) Problemi, Algoritmi, Diagrammi di flusso Fabrizio Messina [email protected] www.dmi.unict.it/~messina
Transcript
Page 1: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

Programmazione I

Fondamenti di programmazione

( Lezione I )

Problemi, Algoritmi, Diagrammi di flusso

Fabrizio Messina [email protected]

www.dmi.unict.it/~messina

Page 2: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 2

Algoritmo

➢ Dato un problema, un algoritmo è una procedura, cioè una sequenza di passi, che può essere eseguita automaticamente da una macchina in modo da risolvere il problema dato.

• Un problema risolvibile mediante un algoritmo si dice computabile.

Page 3: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F.Messina Programmazione I 3

Esempio di algoritmo

Il pollo alle mandorle:- Abbiamo gli ingredienti (pollo, olio, mandorle, cipolla,

sale, pepe, etc.) con le giuste quantità;

- Seguiamo la ricetta;

- Serviamo il piatto a tavola.

Page 4: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 4

Un altro esempio di algoritmo

La costruzione di un kit di montaggio:- Procuriamo il kit e gli strumenti;

- Apriamo la scatola;

- Leggiamo le istruzioni;

- Mettiamo insieme i pezzi.

Page 5: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 5

Risoluzione di un problema

EsecutoreInput

Algoritmo

Output

➢ Generalmente, la risoluzione di un dato problema consiste nel prendere alcuni dati iniziali (input) relativi al problema e nel fornire un risultato (output) che risolve quest’ultimo.

Page 6: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 6

Ma …

➢ Non è così facile come sembra !

• Per scrivere la giusta “sequenza di passi”

bisogna essere un bravo cuoco o un bravo

costruttore !

Page 7: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 7

Infatti …

Problema Algoritmo

Processo di

esecuzione

RisolutoreEsecut

oreUomo

Macchina… la risoluzione automatica prevede comunque una notevole componente umana !!!

Page 8: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 8

Definizione di algoritmo

➢ Un algoritmo è una sequenza ordinata e finita di passi (azioni o istruzioni) che producono un ben determinato risultato in un tempo finito.

Page 9: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 9

Caratteristiche di un algoritmo

1. Azioni eseguibili e non ambigue.• Non ambigue, inoltre non sono ammessi “un pò” e “a piacere”,

che non sono termini adatti ad una macchina.2. Determinismo.

• Fatto un passo, il successivo è uno ed uno solo, ben determinato. Alternative sono possibili, ma la scelta deve essere univoca.

3. Numero finito di passi.4. Terminazione.

• L’esecuzione deve finire e deve produrre il risultato in tempo finito.

• Osservazione : la 3 non implica la 4.

Page 10: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 10

Esempio di “non terminazione”

1. Si consideri un numero N;

2. Scrivere N;

3. Scrivere il numero successivo;

4. Ripetere il passo precedente.

Page 11: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 11

Ancora un esempio

➢ Ricerca di un nominativo in un elenco.

• Non ordinato.

– Es.: Una lista di firme.

• Ordinato.

– Es.: Elenco telefonico.

Page 12: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 12

Codifica dell’algoritmo

➢ Affinché una macchina riesca a comprendere ed eseguire i passi specificati da un algoritmo, quest’ultimo deve essere prima codificato in un opportuno programma scritto in un linguaggio di alto livello.

Algoritmo ProgrammaTraduzione

Page 13: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 13

L’esecuzione automaticaUomo

Algoritmo

Linguaggio macchina

Programma

MacchinaOutputInput

Pseudo-codice

Linguaggio di alto livello

Traduttore

Esecuzione

Page 14: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 14

Scomposizione in sottoproblemi

Ricetta del pollo alle mandorle:1. Preparare il soffritto ed aggiungervi il pollo;2. Unire le mandorle pelate al soffritto;3. Mescolare fino a quando il pollo sarà ben dorato;4. Aggiungere del pepe;5. Rosolare con vino bianco fino a quando il pollo è cotto;6. Aggiungere olio q.b.; 7. Se preferisci salato, allora aggiungi sale;

Page 15: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 15

Scomposizione in sottoproblemi

➢ La ricetta precedente è un esempio di cosa significa scomporre un problema in sottoproblemi.

➢ Ogni sottoproblema può essere scomposto in problemi via via più elementari.

➢ Top-down vs. Bottom-Up

Page 16: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

Top down TOP DOWN: 1. Si formula inizialmente una visione generale del

sistema, senza scendere nel dettaglio delle sue parti.

2. Ogni parte del sistema è successivamente rifinita per decomposizione aggiungendo dettagli.

3. Successive decomposizioni permetteranno di specificare ulteriori dettagli, finché la specifica completa è sufficientemente dettagliata da validare il modello.

F. Messina Programmazione I

Page 17: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

Bottom Up

BOTTOM UP: 1. Parti individuali del sistema sono

specificate in dettaglio. 2. Le parti vengono connesse tra loro in

modo da formare componenti più grandi. 3. Successive connessioni/composizioni

permetteranno di realizzare un sistema completo.

F. Messina Programmazione I

Page 18: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 18

Descrizione di un algoritmo

➢ Si descrive un algoritmo cercando di sintetizzare il più possibile la sua sequenza di passi.

➢ La descrizione avviene mediante : • pseudo-codice, oppure• diagramma di flusso.

Page 19: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 19

Diagrammi di flusso

➢ I diagrammi di flusso permettono di descrivere in modo grafico le azioni che costituiscono un algoritmo e il loro flusso di esecuzione.• Ogni azione elementare è rappresentata da un

blocco. – Esistono 4 tipi di blocchi.

Page 20: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 20

Diagrammi di flusso (1)

Inizio

Fine

➢ Istruzioni di inizio e fine.

Page 21: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 21

Diagrammi di flusso (2)

➢ Operazioni di lettura (input) o scrittura (output).

Leggi il dato

Scrivi il dato

Page 22: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 22

Diagrammi di flusso (3)

➢ Istruzioni imperative (azioni oppure operazioni).

Calcola : 20+34

Page 23: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 23

Connettori

➢ I singoli diagrammi devono essere uniti tramite i connettori.

➢ L’esecuzione delle istruzioni deve essere fatta sequenzialmente, ovvero seguendo i connettori.• Quando si scrive l’algoritmo bisogna fare molta

attenzione alla direzione del flusso di esecuzione.

Page 24: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 24

Istruzione di assegnamento➢ Una variabile numerica è un’entità caratterizzata :

• da un nome, e• da un valore (o contenuto)

– che può cambiare nel tempo …

➢ Un’espressione è una combinazione di operatori aritmetici, costanti e variabili che può essere calcolata generando un singolo valore numerico.

• Es.: X, X + 1, X + (Y * 3).

➢ Istruzione di assegnamento : “ ← ”• Variabile ← Espressione;

– Es.: Z ← 3; Z ← X + 3; X ← X + 1;

Page 25: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 25

Esempio

➢ Descrivere, mediante diagramma di flusso, un algoritmo che calcoli la somma di due numeri letti in input.

Page 26: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 26

Diagramma di flusso : Somma

Inizio

Leggi X

Leggi Y

Z ← X+Y

Stampa Z

Fine

Page 27: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 27

Esempio

➢ Descrivere, mediante diagramma di flusso, un algoritmo che scambi i valori di due variabili lette in input.

Page 28: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 28

Diagramma di flusso: Scambio

Inizio

Leggi X

Aux ← X

Leggi Y

X ← Y

Y ← Aux

Scrivi X

Scrivi Y

Fine

Page 29: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 29

Variazioni nel flusso di esecuzione

➢ Ci sono dei momenti in cui il flusso di esecuzione può scegliere tra diverse direzioni;

➢ In genere, questi salti sono subordinati al verificarsi di una condizione (che può risultare vera o falsa);

➢ Si parla di istruzioni condizionali.

Page 30: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 30

Diagrammi di flusso (4)

Falso

Vero

Condizione

➢ Istruzioni condizionali.

Falso

Vero

Più sale ?

Es.:

Page 31: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 31

Esempio

➢ Descrivere, mediante diagramma di flusso, un algoritmo che determini il massimo tra due numeri letti in input.

Page 32: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 32

Diagramma di flusso : MaxInizio

Leggi X

Leggi YFine

Falso

Vero

X > Y

Stampa X

Stampa Y

Page 33: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 33

Esempio

➢ Descrivere, mediante diagramma di flusso, un algoritmo che determini se un numero letto in input è pari o dispari.

Page 34: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 34

Diagramma di flusso : Pari o…Inizio

Leggi N

Dividi N per 2Fine

Falso

Vero

Resto = 0

Scrivi : “N è pari”

Scrivi : “N è dispari”

Page 35: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 35

Esercizio

➢ Scrivere la ricetta del pollo alle mandorle utilizzando i diagrammi di flusso.• Nota: dove è richiesta una ripetizione – ad

esempio fino a quando – utilizzare un’istruzione condizionale del tipo mostrato nella prossima diapositiva.

Page 36: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

Programmazione I 36

Ripetizione o “ciclo”

Rosolare con vino

Falso

Vero

Il pollo è cotto?

…F. Messina

Page 37: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

Programmazione I

Fondamenti di programmazione

( Lezione II )

Notazione Lineare Strutturata

Fabrizio Messina [email protected]

www.dmi.unict.it/~messina

Page 38: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 38

Esempio

➢ Descrivere, mediante diagramma di flusso, un algoritmo che calcoli il fattoriale di un numero intero positivo letto in input.

Page 39: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 39

Esempio : FattorialeInizio

Leggi N

Fatt ← 1

Fatt ← Fatt * M

M ← 1

M ← M +1

M > N

Scrivi Fatt

Fine

VERO FALSO

Page 40: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 40

Considerazioni

➢ I diagrammi a blocchi si rivelano :• poco pratici,• soggetti a errori,• illeggibili se di notevole complessità.

➢ Per ovviare a tali inconvenienti si adotta la Notazione Lineare Strutturata (NLS) o pseudo-codice.

Page 41: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 41

Notazione Lineare Strutturata

➢ Tre costrutti fondamentali :• Sequenza

• Selezione

• Iterazione.

➢ Inoltre, esiste un unico punto d’ingresso ed un unico punto d’uscita.

Page 42: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 42

Sequenza

Istruzione 1

Istruzione 2

Istruzione n

Istruzione 1;

Istruzione 2;

Istruzione n;

Page 43: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 43

Selezione (o condizione)

if (Condizione) then

Blocco 1;

else

Blocco 2;

end if

≡Condizion

e

Blocco 2 Blocco 1La clausola “else” può anche essere assente.

Falso Vero

Page 44: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 44

Iterazione (o ciclo)

while (Condizione) do

Blocco;

end while;≡

Condizion

e

Blocco

Falso Vero

Page 45: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 45

Ricapitolando ...

Page 46: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 46

Risultato fondamentale

➢TEOREMA (Böhm-Jacopini) : • I tre costrutti fondamentali della NLS sono sufficienti a descrivere qualunque algoritmo.

Page 47: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 47

Esempio : Somma

Inizio

Leggi X

Leggi Y

Z ← X+Y

Stampa Z

Fine

Page 48: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 48

Esempio : Somma in NLS

InizioLeggi XLeggi YZ ← X + Y Stampa Z

Fine

Page 49: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 49

Esempio : Max

Inizio

Leggi X

Leggi YFine

Falso

Vero

X > Y

Stampa X

Stampa Y

Page 50: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 50

Esempio : Max in NLSInizio

Leggi XLeggi Yif (X > Y) then

Stampa Xelse Stampa Yend if

Fine

Page 51: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina Programmazione I 51

Esempio : Numeri da 1 a N

InizioLeggi NM ← 0while (M < N) do M ← M + 1

Stampa Mend while

Fine

Page 52: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina 52

Esempio : Somma dei primi N numeri

InizioLeggi N i ← 0S ← 0while (i < N) do i ← i + 1

S ← S + iend whileStampa S

Fine

Page 53: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

F. Messina 53

Esempio : Somma dei numeri pari minori di N

InizioLeggi N i ← 2S ← 0while (i < N) do

S ← S + i i ← i + 2

end whileStampa S

Fine

Page 54: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

54

Algoritmo di Euclide per il m.c.m.

MA MB

3 769 141215 211821

InizioLeggi A, BMA ← AMB ← Bwhile (MA <> MB) do

if (MA > MB) then MB ← MB + B

else MA ← MA + A

end ifend whileStampa “mcm =” MA

Fine

Es.: m.c.m. (3, 7) = 21

Page 55: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

Algoritmo di Euclide per il M.C.D.

MA MB MA%MB

21 14 714 7 07 0 ---

M.C.D.(21,14) = 7

InizioLeggi A, Bif (A < B) then

MB ← AMA ← B

else MA ← AMB ← B

end ifwhile (MB<>0) do

r ← MA%MB MA ← MB

MB ← rend whilestampa MA

Es.: M.C.D. (21, 14) = 7

Page 56: Programmazione I - dmi.unict.itmessina/didat/prog1_17_18/s11_fondamenti.pdf · Notazione Lineare Strutturata (NLS) o pseudo-codice. F. Messina Programmazione I 41 Notazione Lineare

Programmazione I 56

Fine


Recommended