Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione...

74
Fondamenti di Informatica Introduzione alla Programmazione in MATLAB: Parte 3 (Strutture Iterative) Prof. Arcangelo Castiglione A.A. 2016/17

Transcript of Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione...

Page 1: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

FondamentidiInformaticaIntroduzioneal laProgrammazioneinMATLAB:Parte3(StruttureIterative)

Prof. ArcangeloCastigl ioneA.A. 2016/17

Page 2: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

IntroduzioneallaprogrammazioneinMATLAB:Parte3

OUTLINE• Ricapitolazione• StruttureIterative• CostruttoFOR• CostruttoWHILE• Istruzionibreakecontinue

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 3: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

BreveRicapitolazione– 1/5• Nella scorsa lezione abbiamo visto che MATLAB forniscetre strutture di controllo fondamentali

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 4: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

BreveRicapitolazione– 2/5• Nella scorsa lezione abbiamo visto che MATLAB forniscetre strutture di controllo fondamentali

• Sequenza

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 5: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

BreveRicapitolazione– 3/5• Nella scorsa lezione abbiamo visto che MATLAB forniscetre strutture di controllo fondamentali

• Sequenza

istruzione1

istruzione2

istruzione3

istruzioneN

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 6: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

BreveRicapitolazione– 4/5• Nella scorsa lezione abbiamo visto che MATLAB forniscetre strutture di controllo fondamentali

• Sequenza• Selezione

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 7: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

BreveRicapitolazione– 5/5• Nella scorsa lezione abbiamo visto che MATLAB forniscetre strutture di controllo fondamentali

• Sequenza• Selezione

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 8: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

StruttureIterative– 1/6• Nella scorsa lezione abbiamo visto che MATLAB forniscetre strutture di controllo fondamentali

• Sequenza• Selezione• Iterazione

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 9: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

StruttureIterative– 2/6• Perchéabbiamobisognodell’Iterazione?

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 10: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

StruttureIterative– 3/6• Perripetereazioni!Ades.,perstampareavideoqualcosauncertonumerodivolte,cercarequalcosaall’internodiuntesto,etc

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 11: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

StruttureIterative– 4/6• Possibilemodoperfarlo…

>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');…>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');>> disp('I am a clown, but I am not funny.');…

Peruncertonumerodivolte

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 12: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

StruttureIterative– 5/6

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 13: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

StruttureIterative– 6/6• Seunasezionedicodice puòesserepotenzialmenteripetuta,essadeveessereinseritainunastrutturaiterativa(ociclo)

• Unciclo(oloop)èunastrutturadicontrollochepermettediripeterel’esecuzionediistruzioniperuncertonumerodivolte• Ogniripetizionedelcicloèdettaiterazioneo(passo)

•MATLABforniscediduetipologiedistrutturaiterativa• Ciclofor• Utilizzatoquandoilnumerodiiterazioni ènotoapriori

• Ciclowhile• Utilizzatoquandoilnumerodiiterazioni non ènotoapriori• Ilcicloterminaquandoèsoddisfattaunaparticolarecondizione

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 14: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 1/10• Ciclo for (Sintassi MATLAB)

• L’espressione m:s:n assegna il valore iniziale m alla variabile di ciclo,che viene incrementata del valore s (detto step o incremento)

• Le istruzioni (blocco_istruzioni) vengono eseguite una sola volta perogni iterazione, utilizzando il valore corrente della variabile di ciclo

• L’elaborazione continua finché la variabile di ciclo supera il valore finaleper n• Di solito, la variabile di ciclo è uno scalare, ma può essere anche unvettore o una matrice

for variabile = m:s:nblocco_istruzioni

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 15: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 1/10for k = 1 : 1 : 10

x = k^2endM-FileScriptpercalcolarel’elevazionealquadratodegliinterida1a10(potenza.m)

>> potenzax =

1x =

4x =

9x =

16x =

25x =

36x =

49x =

64x =

81x =

100

Esecuzione

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 16: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 1/10

for k = 1 : 1 : 10x = k^2

endM-FileScriptpercalcolarel’elevazionealquadratodegliinterida1a10(potenza.m)

L’istruzione x = k^2 vieneeseguitaunasolavoltaperogniiterazione,utilizzandoilvalorecorrentedella

variabilediciclo k

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 17: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

VERA

variabile

blocco_istruzioni

Calcolailvaloredellavariabile

Terminailciclo

FALSA

Start

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 18: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 1/10• Ciclo for (Sintassi MATLAB)

• Si noti che ogni for deve essere associato ad una clausola end• end indica la fine delle istruzioni da eseguire all’interno del ciclo

for variabile = m:s:nblocco_istruzioni

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 19: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 1/10• Ciclo for (Sintassi MATLAB)

• Fra la clausola for ed il nome della variabile di ciclo deve essereinserito uno spazio

for variabile = m:s:nblocco_istruzioni

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 20: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 1/10• Ciclo for (Sintassi MATLAB)

• È buona norma indentare (rientrare) verso destra le istruzioni delciclo for e la corrispondente clausola end, per mettere in evidenzaquali istruzioni appartengono al ciclo

for variabile = m:s:nblocco_istruzioni

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 21: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 2/10• Ciclo for (Sintassi alternativa MATLAB)

for variabile = valori_arrayblocco_istruzioni

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 22: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 2/10• Ciclo for (Usare array e matrici come indice di ciclo)

• Il ciclo for risulta essere molto utile anche per lamanipolazione di array e matrici

for variabile = valori_arrayblocco_istruzioni

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 23: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 3/10• Esempio 1

for i = [1:1:10]disp(i)

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 24: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 3/10• Esempio 1

• [1:1:10] equivale al vettore [1 2 3 4 5 6 7 8 9 10]

for i = [1:1:10]disp(i)

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 25: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 3/10• Esempio 1

• Output

for i = [1:1:10]disp(i)

end

1

2

3

4

5

6

7

8

9

10

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 26: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 4/10• Esempio 2

for i = 2:2:10disp(i)

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 27: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 4/10• Esempio 2

• Output• Numeri pari da 2 a 10

for i = 2:2:10disp(i)

end

2

4

6

8

10

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 28: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 5/10• Esempio 3• Funzione che prende in input un array x e restituisce in output la sommadegli elementi che esso contiene

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 29: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 5/10• Esempio 3• Funzione che prende in input un array x e restituisce in output la sommadegli elementi che esso contiene

function [somma] = somma_array(x)s = 0for i = 1:length(x)

s = s + x(i);endsomma = s;

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 30: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 5/10• Esempio 3• Funzione che prende in input un array x e restituisce in output la sommadegli elementi che esso contiene

function [somma] = somma_array(x)s = 0for i = 1:length(x) à restituisce ladimensione dix

s = s + x(i);endsomma = s;

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 31: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 5/10• Esempio 3

• Esempi d’uso

function [somma] = somma_array(x)s = 0for i = 1:length(x)

s = s + x(i);endsomma = s;

end

>> mio_array = [200 -1 5 24 8];>> somma_mio_array = somma_array(mio_array)somma_mio_array =

236

>> somma = somma_array(1:10)somma =

55

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 32: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 6/10• Esempio 4• Funzione che prende in input un array x e restituisce in output la sommadegli elementi con indice pari e la somma degli elementi con indice dispari

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 33: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 6/10• Esempio 4• Funzione che prende in input un array x e restituisce in output la sommadegli elementi con indice pari e la somma degli elementi con indice dispari

function [somma_pari, somma_disp] = somma_pari_dispari(x)somma_pari = 0; somma_disp = 0;

for i = 1:1:length(x)if (mod(i, 2) == 0) % indice pari

somma_pari = somma_pari + x(i);else % indice dispari

somma_disp = somma_disp + x(i);end

endend

N.B.: I commenti (riportati in verde) saranno ignorati da MATLAB. Essisono di aiuto solo a chi scrive/legge il codice sorgente della funzione

IntroduzioneallaProgrammazioneinMATLAB:Parte3

help mod

Page 34: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 6/10• Esempio 4• Funzione che prende in input un array x e restituisce in output la sommadegli elementi con indice pari e la somma degli elementi con indice dispari

function [somma_pari, somma_disp] = somma_pari_dispari(x)somma_pari = 0; somma_disp = 0;

for i = 1:1:length(x)if (mod(i, 2) == 0) % indice pari

somma_pari = somma_pari + x(i);else % indice dispari

somma_disp = somma_disp + x(i);end

endend

N.B.: I commenti (riportati in verde) saranno ignorati da MATLAB. Essisono di aiuto solo a chi scrive/legge il codice sorgente della funzione

IntroduzioneallaProgrammazioneinMATLAB:Parte3

N.B.ivarilivellidiindentazione

Page 35: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

• Esempio 4• Funzione che prende in input un array x e restituisce in output la sommadegli elementi con indice pari e la somma degli elementi con indice dispari

CicloFOR– 6/10

function [somma_pari, somma_disp] = somma_pari_dispari(x)somma_pari = 0; somma_disp = 0;

for i = 1:1:length(x)if (mod(i, 2) == 0) % indice pari

somma_pari = somma_pari + x(i);else % indice dispari

somma_disp = somma_disp + x(i);end

endend

N.B.: I commenti (riportati in verde) saranno ignorati da MATLAB. Essisono di aiuto solo a chi scrive/legge il codice sorgente della funzione

IntroduzioneallaProgrammazioneinMATLAB:Parte3

N.B.ivarilivellidiindentazione

• N.B.

• Èpossibileannidareicicliforeleistruzionicondizionali

• Sinotichefor edif devonoesseresempreaccompagnatidallarelativaclausolaend

Page 36: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 6/10• Esempio 4• Funzione che prende in input un array x e restituisce in output la sommadegli elementi con indice pari e la somma degli elementi con indice dispari

function [somma_pari, somma_disp] = somma_pari_dispari(x)

somma_pari = 0; somma_disp = 0;

for i = 1:1:length(x)if (mod(i, 2) == 0) % indice pari

somma_pari = somma_pari + x(i);else % indice dispari

somma_disp = somma_disp + x(i);end

endend

N.B.: I commenti (riportati in verde9 sarannoignorati da MATLAB. Essi sono di aiuto solo a chiscrive/legge il codice sorgente della funztion

Esempid’uso>> [sommap, sommad] = somma_pari_dispari([1 2 3 4 5])sommap =

6sommad =

9

>> [sommap, sommad] = somma_pari_dispari([1 3 5 7])sommap =

10sommad =

6

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 37: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 7/10• Esempio 5• Funzione che prende in input un array x e restituisce in output l’elementocon valore massimo

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 38: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 7/10• Esempio 5• Funzione che prende in input un array x e restituisce in output l’elementocon valore massimo

function [massimo] = massimo(x)massimo = x(1);for i = 2:length(x)

if x(i) > massimomassimo = x(i);

endend

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 39: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 7/10• Esempio 5• Funzione che prende in input un array x e restituisce in output l’elementocon valore massimo

function [massimo] = massimo(x)massimo = x(1);for i = 2:length(x)

if x(i) > massimomassimo = x(i);

endend

end

Esempid’uso>> max = massimo([10 20 40 500 35])max =

500>> max = massimo([-8 -1 -25 -10 -45])max =

-1>> max = massimo([1.5 2.25 1/1000 2/3 8/29])max =

2.2500

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 40: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 8/10• Esempio 6• Funzione che prende in input due array a e b (entrambi della stessa lunghezza)e restituisce in output un array c, in cui ogni elemento c(i) contiene il valoredell’elemento massimo tra a(i) e b(i)

• Esempio Input/output funzione• INPUT• a = [ 29 14 44 58 ]• b = [ 11 49 2 54 ]

• OUTPUT• c = [ 29 49 44 58 ]

• Suggerimento: possiamo utilizzare la funzione massimo, che abbiamodefinito in precedenza

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 41: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 8/10• Esempio 6• Funzione che prende in input due array a e b (entrambi della stessalunghezza) e restituisce in output un array c, in cui ogni elemento c(i)contiene il valore dell’elemento massimo tra a(i) e b(i)

function [c] = massimi_valori(a, b)for i = 1:length(a)

c(i) = massimo([a(i) b(i)]);end

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 42: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 8/10• Esempio 6• Funzione che prende in input due array a e b (entrambi della stessalunghezza) e restituisce in output un array c, in cui ogni elemento c(i)contiene il valore dell’elemento massimo tra a(i) e b(i)

function [c] = massimi_valori(a, b)for i = 1:length(a)

c(i) = massimo([a(i) b(i)]);end

end

Esempid’uso>> c = massimi_valori([2 3], [1, 8])c =

2 8

>> c = massimi_valori([ 29 14 44 58 ], [ 11 49 2 54])c =

29 49 44 58

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 43: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 9/10• Esempio 7• Funzione che prende in input una matrice A e restituisce in output lasomma degli elementi di A

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 44: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 9/10• Esempio 7• Funzione che prende in input una matrice A e restituisce in output lasomma degli elementi di A

• Soluzione 1function [somma] = somma_matrice(A)

[m n] = size(A);somma = 0;

for r = 1:m %indicizza le righe della matrice

for c = 1:n %indicizza le colonne della matrice

somma = somma + A(r, c);end

endend

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 45: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

• Esempio 7• Funzione che prende in input una matrice A e restituisce in output lasomma degli elementi di A

• Soluzione 1

CicloFOR– 9/10

function [somma] = somma_matrice(A)[m n] = size(A);somma = 0;

for r = 1:m %indicizza le righe della matrice

for c = 1:n %indicizza le colonne della matrice

somma = somma + A(r, c);end

endend

IntroduzioneallaProgrammazioneinMATLAB:Parte3

34 9 6 3

2 21 4 6

57 3 63 0

1 4 8 6

43 35 2 7

m

n

Page 46: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 9/10• Esempio 7• Funzione che prende in input una matrice A e restituisce in output lasomma degli elementi di A

• Soluzione 2 (Mediante la funzione somma_array definita precedentemente)function [somma] = somma_matrice_soluzione2(A)

[m n] = size(A);somma = 0;

for r = 1:mriga_A = A(r, :); % estraggo r-esima riga di Asomma = somma + somma_array(riga_A);

endend

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 47: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 10/10• Esempio 8• Funzione che prende in input una matrice vs (voti studenti) e un arraycfu (CFU esami), rappresentati come segue

• La funzione restituisce in output un array contenente la media ponderatadi ogni studente

Studenti/Voti esame Esame1 Esame2 Esame3 Esame4 Esame5

Studente Matricola1 28 25 30 23 19

Studente Matricola2 24 27 28 21 24

Studente Matricola3 25 25 19 18 22

Studente Matricola4 21 30 30 22 30

Esame 1 Esame2 Esame3 Esame4 Esame5

CFU 6 3 2 9 4cfu

vs

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 48: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloFOR– 10/10◦ Esempio 8◦ Funzione che prende in input una matrice vs (voti studenti) e un array ce(CFU esami), rappresentati come segue:

• La funzione restituisce in output un array contenente la media ponderatadi ogni studente

Studenti/Voti esame Esame1 Esame2 Esame3 Esame4 Esame5

Studente Matricola1 28 25 30 23 19

Studente Matricola2 24 27 28 21 24

Studente Matricola3 25 25 19 18 22

Studente Matricola4 21 30 30 22 30

Esame 1 Esame2 Esame3 Esame4 Esame5

CFU 6 3 2 9 4ce

vs

MediaPonderata:

(voto_esame_1*cfu1)+(voto_esame_2*cfu2)+…+(voto_esame_N*cfuN)(cfu1+cfu2+…+cfuN)

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 49: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

• Esempio 8 – Soluzione Step-By-Step (1)• Riduzione del problema: Riduciamo il problema principale ad uno piùsemplice (divide et impera)• Consideriamo solo una riga della matrice vs

Studenti/Voti esame Esame1 Esame2 Esame3 Esame4 Esame5

Studente Matricola1 28 25 30 23 19

Studente Matricola2 24 27 28 21 24

Studente Matricola3 25 25 19 18 22

Studente Matricola4 21 30 30 22 30

Esame 1 Esame2 Esame3 Esame4 Esame5

CFU 6 3 2 9 4

cfu

vs

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 50: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

• Esempio 8 – Soluzione Step-By-Step (1)• Riduzione del problema: Riduciamo il problema principale ad uno piùsemplice (divide et impera)• Consideriamo solo una riga della matrice vs

• La semplificazione consiste nel fatto che ora dobbiamo calcolare la mediaponderata di un solo studente• Scriviamo quindi una funzione che effettui questa operazione. Talefunzione deve prendere in input due array: riga_vs (una riga di vs) ecfu

Studenti/Voti esame Esame1 Esame2 Esame3 Esame4 Esame5

Studente Matricola1 28 25 30 23 19

Studente Matricola2 24 27 28 21 24

Studente Matricola3 25 25 19 18 22

Studente Matricola4 21 30 30 22 30

Esame 1 Esame2 Esame3 Esame4 Esame5

CFU 6 3 2 9 4

vs

cfu

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 51: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

• Esempio 8 – Soluzione Step-By-Step (1)• Riduzione del problema: Riduciamo il problema principale ad uno piùsemplice (divide et impera)• Consideriamo solo una riga della matrice vs

• La semplificazione consiste nel fatto che ora dobbiamo calcolare la mediaponderata di un solo studente• Scriviamo quindi una funzione che effettui questa operazione. Talefunzione deve prendere in input due array: riga_vs (una riga di vs) ecfu

• Affrontiamo quindi il sotto-problema del calcolo della media Ponderatadi un singolo studente

Studenti/Voti esame Esame1 Esame2 Esame3 Esame4 Esame5

Studente Matricola1 28 25 30 23 19

Studente Matricola2 24 27 28 21 24

Studente Matricola3 25 25 19 18 22

Studente Matricola4 21 30 30 22 30

Esame 1 Esame2 Esame3 Esame4 Esame5

CFU 6 3 2 9 4

vs

cfu

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 52: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

• Esempio 8 – Soluzione Step-By-Step (2)• Sotto-problema: Calcolo Media Ponderata (singolo studente)

28 25 30 23 19

6 3 2 9 4

CicloFOR– 10/10

riga_vs

cfu

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 53: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

• Esempio 8 – Soluzione Step-By-Step (2)• Sotto-problema: Calcolo Media Ponderata (singolo studente)• Idea: Sfruttiamo la moltiplicazione elemento per elemento (.*)

28 25 30 23 19

6 3 2 9 4

riga_vs .*

168 75 60 207 76riga_vs.*cfu

CicloFOR– 10/10

cfu

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 54: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

• Esempio 8 – Soluzione Step-By-Step (2)• Sotto-problema: Calcolo Media Ponderata (singolo studente)• Idea: Sfruttiamo la moltiplicazione elemento per elemento (.*)

28 25 30 23 19

6 3 2 9 4

.*

168 75 60 207 76

• Per calcolare la media ponderata necessitiamo ora solo di due somme• La somma degli elementi dell’array riga_vs.*cfu

• La otteniamo conà sum(riga_vs.*cfu)• La somma dei CFU possiamo ottenerla tramiteà sum(cfu)

CicloFOR– 10/10

riga_vs

riga_vs.*cfu

cfu

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 55: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

• Esempio 8 – Soluzione Step-By-Step (2)• Sotto-problema: Calcolo Media Ponderata (singolo studente)• Idea: Sfruttiamo la moltiplicazione elemento per elemento (.*)

28 25 30 23 19

6 3 2 9 4

.*

168 75 60 207 76

• Otteniamo lamedia ponderata calcolando• sum(riga_vs.*cfu) / sum(cfu)

CicloFOR– 10/10

riga_vs

riga_vs.*cfu

cfu

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 56: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

• Esempio 8 – Soluzione Step-By-Step (3)• Funzione MATLAB per calcolare la media ponderata di un singolo studente

function [media_pond_stud] = media_ponderata_studente(riga_vs, cfu) media_pond_stud = sum(riga_vs.*cfu) / sum(cfu);

end

CicloFOR– 10/10

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 57: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

• Esempio 8 – Soluzione Step-By-Step (4)• Funzione MATLAB per calcolare la media ponderata di tutti gli studenti• Sfrutta la funzione media_ponderata_studente (slide precedente)

Studenti/Voti esame Esame1 Esame2 Esame3 Esame4 Esame5

Studente Matricola1 28 25 30 23 19

Studente Matricola2 24 27 28 21 24

Studente Matricola3 25 25 19 18 22

Studente Matricola4 21 30 30 22 30

Esame 1 Esame2 Esame3 Esame4 Esame5

CFU 6 3 2 9 4

cfu

vs

function [mp] = media_ponderata(vs, cfu)[nrighe_vs, ncolonne_vs] = size(vs);

for i = 1:nrighe_vsriga_vs = vs(i, :); % estraggo l'i-esima riga di vs

mp(i) = media_ponderata_studente(riga_vs, cfu);endmp = mp'; % viene fatta la trasposta per ottenere un vettore colonna

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 58: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

• Esempio 8 – Soluzione Step-By-Step (4)• Funzione MATLAB per calcolare la media ponderata di tutti gli studenti(Esempio d’uso)

Studenti/Voti esame Esame1 Esame2 Esame3 Esame4 Esame5

Studente Matricola1 28 25 30 23 19

Studente Matricola2 24 27 28 21 24

Studente Matricola3 25 25 19 18 22

Studente Matricola4 21 30 30 22 30

Esame 1 Esame2 Esame3 Esame4 Esame5

CFU 6 3 2 9 4

vs

>> vs = [28 25 30 23 19; 24 27 28 21 24; 25 25 19 18 22; 21 30 30 22 30];>> cfu = [6 3 2 9 4];>> mp = media_ponderata(vs, cfu)

mp =

24.416723.583321.375024.7500

24.416723.583321.375024.7500

cfu

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 59: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloWHILE– 1/5• Ciclo while (Sintassi MATLAB)

• Finché la condizione del while è verificata (risulta essere vera), leistruzioni contenute nel corpo del ciclo (blocco_istruzioni) verrannoeseguite• D’altro canto, non appena la condizione non sarà più verificata (risulterà falsa), ilciclo terminerà

• Il ciclo while è estremamente utile quando non è noto a priori il numero diiterazioni che dovranno essere eseguite• Ad es., quando si vuole continuare un processo finché non è soddisfatta unaparticolare condizione

while condizioneblocco_istruzioni

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 60: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

Output

CicloWHILE– 2/5• Esempio 1

x = 20;while x < 50

disp(x);x = x + 3;

end

20232629323538414447

IntroduzioneallaProgrammazioneinMATLAB:Parte3

M-FileScript

Page 61: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

Output

CicloWHILE– 2/5• Esempio 1

x = 20;while x < 50

disp(x);x = x + 3;

end

20232629323538414447

IntroduzioneallaProgrammazioneinMATLAB:Parte3

• Affinchéilciclowhile possaoperarecorrettamente,devonoverificarsiduecondizioni• Lavariabilediciclo(inquestocasox)deveavereunvaloreprimachevengaeseguitoilwhile

M-FileScript

Page 62: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

Output

CicloWHILE– 2/5• Esempio 1

x = 20;while x < 50

disp(x);x = x + 3;

end

20232629323538414447

IntroduzioneallaProgrammazioneinMATLAB:Parte3

• Affinchéilciclowhile possaoperarecorrettamente,devonoverificarsiduecondizioni• Lavariabilediciclo(inquestocasox)deveavereunvaloreprimachevengaeseguitoilwhile

• Lavariabilediciclodeveesseremodificatainqualchemododalleistruzionidelciclostesso

M-FileScript

Page 63: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

Output

CicloWHILE– 2/5• Esempio 1

x = 20;while x < 50

disp(x);x = x + 3;

end

20232629323538414447

IntroduzioneallaProgrammazioneinMATLAB:Parte3

• Leistruzionisonoeseguiteunavoltaperogniiterazionedelciclo,utilizzandoilvalorecorrentedellavariabilediciclo(inquestocasox)

M-FileScript

Page 64: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloWHILE– 3/5• Ciclo while (Sintassi MATLAB)

• Ogni clausola while deve essere associata alla relativa clausola end

while condizioneblocco_istruzioni

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 65: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloWHILE– 3/5• Ciclo while (Sintassi MATLAB)

• Le istruzioni del ciclo (blocco_istruzioni) dovrebbero essererientrate verso destra per agevolare la lettura dei programmi

while condizioneblocco_istruzioni

end

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 66: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloWHILE– 4/5• Esempio 2• Esegue il ciclo finché non viene immesso un valore negativo

• Esempio d’uso

somma = 0;x = input('Inserisci x (> 0): ');while x > 0

somma = somma + x;x = input('Inserisci x (> 0): ');

enddisp(['somma: ', num2str(somma)]);

Inserisci x (> 0): 10Inserisci x (> 0): 9Inserisci x (> 0): 8Inserisci x (> 0): -1somma: 27

IntroduzioneallaProgrammazioneinMATLAB:Parte3

M-FileScript

Page 67: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloWHILE– 5/5• Prestareestremaattenzioneallacondizione diterminazionedelciclo• Potrebbeaccaderecheilciclononabbiamaitermine(equestacosapotrebbeesserevoluta…)

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 68: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

CicloDO/WHILE(CicloaCondizioneFinale- ComeSimularlo)• MATLAB non fornisce in maniera diretta il ciclo do/while• È comunque possibile simulare il comportamento del do/whileutilizzando il ciclo while nel modo seguente

continua_ciclo = true;while continua_ciclo

blocco_istruzioni;if ~condizione

continua_ciclo = false;end

end

continua_ciclo = true;i = 1;

while continua_ciclodisp(i);

if ~(i < 10)continua_ciclo = false;

end

i = i + 1;end

Esem

pio

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 69: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

breakecontinue– 1/4• Le clausole break e continue possono essere usate all’interno diun ciclo per terminare o modificare l’esecuzione del ciclo stesso• La clausola break (to breakà rompere) termina il ciclo, anche se non si èraggiunta la fine dello stesso)• Il flusso di esecuzione del programma “salta” alla prossima istruzionefuori dal ciclo

IntroduzioneallaProgrammazioneinMATLAB:Parte3

for i = 1 : 6disp(i) if i > 3

break;end

end

1234

Output

Comemaiilciclostampa4numeriinvecedi3?

Page 70: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

breakecontinue– 1/4• Le clausole break e continue possono essere usate all’interno diun ciclo per terminare o modificare l’esecuzione del ciclo stesso• La clausola break (to breakà rompere) termina il ciclo, anche se non si èraggiunta la fine dello stesso)• Il flusso di esecuzione del programma “salta” alla prossima istruzionefuori dal ciclo

IntroduzioneallaProgrammazioneinMATLAB:Parte3

for i = 1 : 6disp(i) if i > 3

break;end

end

1234

Output

• È possibile utilizzare un’istruzione ifper “saltare fuori” dal ciclo, primache la variabile di ciclo abbiaraggiunto il suo valore finale• Per fare questo è possibile usare

l’istruzione break, che terminaun ciclo senza concludere l’interoprogramma

Page 71: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

breakecontinue– 2/4• Le clausole break e continue possono essere usate all’interno diun ciclo per terminare o modificare l’esecuzione del ciclo stesso• La clausola continue salta un’iterazione del ciclo, ma fa si che il flusso diesecuzione rimanga comunque all’interno del ciclo stesso• Il flusso di esecuzione del programma “salta” alla fine del ciclo(bypassando tutte le istruzioni presenti tra la clausola continue equella end) e comincia con la prossima iterazione del ciclo

IntroduzioneallaProgrammazioneinMATLAB:Parte3

for i = 1 : 6if mod(i, 2) == 0

continue;enddisp(i)

end

135 Output

Page 72: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

breakecontinue– 2/4• Le clausole break e continue possono essere usate all’interno diun ciclo per terminare o modificare l’esecuzione del ciclo stesso• La clausola continue salta un’iterazione del ciclo, ma fa si che il flusso diesecuzione rimanga comunque all’interno del ciclo stesso• Il flusso di esecuzione del programma “salta” alla fine del ciclo(bypassando tutte le istruzioni presenti tra la clausola continue equella end) e comincia con la prossima iterazione del ciclo

IntroduzioneallaProgrammazioneinMATLAB:Parte3

for i = 1 : 6if mod(i, 2) == 0

continue;enddisp(i)

end

135 Output

•Questaistruzionepassailcontrollodelprogrammaallasuccessivaiterazionedelciclofor owhile incuifigura,ignorandotutteleistruzionerestantinelcorpodelciclo

• Neicicliannidati,l’istruzionecontinuepassailcontrollodelprogrammaallasuccessivaiterazionedelciclofor owhile incuiècontenuta

Page 73: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

Esercizio• Simulareunasequenza(infinita)dilancidiundadoa6facce• Sevienevisualizzato2volteconsecutiveilnumero6,lasimulazionesiarresta

• Esempiodiesecuzione: 34254225116 6

IntroduzioneallaProgrammazioneinMATLAB:Parte3

Page 74: Introduzione alla Programmazione in MATLAB: …arccas/materiale/lezioni/Lezione_17.pdfIntroduzione alla Programmazione in MATLAB: Parte 3 N.B. i vari livelli di indentazione • Esempio

Riferimenti• Capitolo4• Paragrafi5,6e7

IntroduzioneallaProgrammazioneinMATLAB:Parte3