Fondamenti di Informatica e Programmazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Fondamenti di Informatica e Programmazione"

Transcript

1 Fondamenti di Informatica e Programmazione MATLAB: Fondamenti di Programmazione in MATLAB Strutture Selettive e Iterative Prof. G ianni D Angelo giadangelo@unisa.it A. A. 2018/19

2 Fondamenti di Programmazione in MATLAB: Strutture Selettive e Iterative OUTLINE Operatori Relazionali e Logici Strutture di Controllo di MATLAB Strutture Selettive Costrutto IF Costrutto SWITCH-CASE Strutture Iterative Costrutto FOR Costrutto WHILE Istruzioni Break e continue

3 Operatori Relazionali 1/4 Basati sui principi della Logica Booleana Il loro scopo è quello di fornire risposte di tipo vero/falso a domande riguardanti il confronto di relazioni tra oggetti Più precisamente, gli operatori relazionali confrontano relazioni tra Tipi numerici Array, matrici e scalari Stringhe Intere espressioni Il risultato di una comparazione può essere vero (1) oppure falso (0) In MATLAB gli operatori relazionali possono operare direttamente anche su array e matrici

4 Operatori Relazionali 2/4 In MATLAB Un confronto falso da risultato 0 Un confronto vero da risultato 1 (o un valore diverso da 0) Operatore Descrizione > Maggiore di < Minore di >= Maggiore o uguale di <= Minore o uguale di == Uguale a = Diverso da

5 Operatori Relazionali 2/4 In MATLAB Un confronto falso da risultato 0 Un confronto vero da risultato 1 (o un valore diverso da 0) Operatore Descrizione > Maggiore di < Minore di >= Maggiore o uguale di <= Minore o uguale di NOTA IMPORTANTE: L operatore relazionale «Uguale a» è composto da due simboli uguale: ==, da non confondere con l operatore di assegnazione con un uguale = == Uguale a = Diverso da

6 Operatori Relazionali 2/4 In MATLAB Un confronto falso da risultato 0 Un confronto vero da risultato 1 (o un valore diverso da 0) Operatore Descrizione > Maggiore di < Minore di >= Maggiore o uguale di <= Minore o uguale di == Uguale a NOTA IMPORTANTE: Usare >= Non usare => Usare <= Non usare =< = Diverso da

7 Operatori Relazionali 3/4 Esempio 1 (== applicato a scalari) >> a=5 a = 5 >> b=9 b = 9 >> a==b ans = 0

8 Operatori Relazionali 3/4 Esempio 2 >> x = 5; >> y = 6; Espressione Valore x < y true 1 x <= y true 1 4 > 5 false 0 x == 5 true 1 x ~= y true 1 x + 1 y == 0 true 1

9 Operatori Relazionali 4/4 Esempio 3 (== applicato a matrici) >> M1=[4 3 3; 2 8 1; ] M1 = >> M2=[2 3 4; 3 3 1; ] M2 = >> M1==M2 ans =

10 Operatori Relazionali 4/4 Esempio 4 (> applicato ad array) >> x = 1 : 8 x = >> y = 8 : -1 : 1 y = >> bool_res = x > y bool_res =

11 Operatori Logici Gli operatori logici forniscono un modo per combinare o negare espressioni relazionali Operatori logici di base: AND, OR e NOT Operatore Descrizione Note && AND A && B da risultato 1 se A e B sono entrambi uguali a 1; A && B da risultato 0, altrimenti OR A B da risultato 1 se almeno uno tra A e B è uguale a 1; A B da risultato 0, altrimenti NOT ~A da risultato 0, se A è uguale a 1 ~A da risultato 1, se A è uguale a 0 Come visto nella prima parte del corso, ciascun operatore logico può essere specificato mediante una tavola di verità

12 Ordine di Precedenza dei Tipi di Operatori Livello di precedenza Primo Secondo Terzo Quarto Quinto Tipo di operatore Parentesi tonde; sono valutate a partire dalla coppia di parentesi più interne Operatori aritmetici e operatore NOT (~); sono valutati da sinistra a destra Operatori relazionali; sono valutati da sinistra a destra Operatore logico AND Operatore logico OR

13 Operatori Logici: Esempi 1/2 Espressione booleana che è vera solo se x è maggiore di 10 AND minore di 20 >> x = 5; >> (10 < x) && (x < 20) ans = 0

14 Operatori Logici: Esempi 2/2 È possibile controllare la precedenza usando le parentesi >> x = false; >> y = true; >> x && y true ans = 1 0 OR 1 >> x && (y true) ans = 0 0 OR 1

15 Operatori Logici (Elemento per Elemento) Gli operatori logici possono essere applicati agli array Operatore logico Descrizione & AND elemento per elemento OR elemento per elemento ~ NOT elemento per elemento N.B. Non va confuso l operatore & con l operatore && Non va confuso l operatore con l operatore

16 Operatori Logici Elemento per Elemento (Esempio) >> x = 1 : 8 x = >> y = 8 : -1 : 1 y = >> bool_res = x > y bool_res = >> bool_res_neg = ~(x > y) bool_res_neg = >> (x > y) & (y <= 2) ans = >> (x < 2) (y < 2) ans =

17 Operatori Logici (Indicizzazione di Array) Ottenere la matricola di tutti gli operai che guadagnano più di 5000 euro e lavorano meno di 10 giorni al mese >> salario = [1000, 7000, 6000, 3000, 8000]; >> giorni_lavorativi = [20, 8, 28, 5, 7]; >> matricola_operai = [10001, 10002, 10003, 10004, 10005]; >> salario > 5000 ans = >> giorni_lavorativi < 10 ans = >> (salario > 5000) & (giorni_lavorativi < 10) ans = >> matricola_operai ((salario > 5000) & (giorni_lavorativi < 10)) ans =

18 Operatori Logici (Indicizzazione di Matrici) >> x = [8 2 3; 1 5 0] x = >> x >= 5 ans = >> x(x >= 5) ans = 8 5 Notare la differenza con il comando find >> find(x >= 5) ans = 1 4 Notare che nel risultato finale non ci sono differenze >> x(find(x >= 5)) ans = 8 5

19 Strutture Fondamentali di MATLAB 1/3 Analogamente ad altri linguaggi di programmazione, MATLAB fornisce tre Strutture di Controllo fondamentali Sequenza Selezione Iterazione

20 Strutture Fondamentali di MATLAB 2/3 Sequenza È definita dalla sequenza lessicografica delle istruzioni istruzione1 istruzione2 istruzione3... istruzionen Esecuzione TOP-DOWN (alto verso il basso)

21 Strutture Fondamentali di MATLAB 2/3 Sequenza È definita dalla sequenza lessicografica delle istruzioni istruzione1 istruzione1 istruzione2 istruzione3... istruzionen istruzione2 istruzione3 istruzionen

22 Strutture Fondamentali di MATLAB 3/3 Selezione Le strutture selettive o decisionali Ci consentono di scrivere programmi in grado di prere delle decisioni Sono implementate mediante istruzioni condizionali Possono essere implementate in MATLAB mediante i costrutti IF (e sue varianti) e SWITCH-CASE In generale, le istruzioni condizionali contengono una o più clausole if (se), else (altrimenti) ed elseif (altrimenti se)

23 Costrutto IF 1/4 Selezione Semplice (Sintassi MATLAB) if espressione blocco_istruzioni VERA espressione FALSA blocco_istruzioni

24 Costrutto IF 1/4 Selezione Semplice (Sintassi MATLAB) if espressione blocco_istruzioni Se l espressione è vera (1) allora le istruzioni del blocco (blocco_istruzioni) sono eseguite Se l espressione è falsa (0) allora le istruzioni del blocco (blocco_istruzioni) non sono eseguite

25 Costrutto IF 1/4 Selezione Semplice (Sintassi MATLAB) if espressione blocco_istruzioni N.B. Ogni clausola if deve essere associata ad una clausola Quest ultima clausola indica la fine delle istruzioni (blocco_istruzioni) che devono essere eseguite se l espressione logica è vera L espressione logica può essere anche un espressione composta

26 Costrutto IF 1/4 Selezione Semplice (Sintassi MATLAB) if espressione blocco_istruzioni Uno spazio deve separare la parola chiave if dall espressione logica

27 Costrutto IF 1/4 Selezione Semplice (Sintassi MATLAB) if espressione blocco_istruzioni Istruzione 1; Istruzione 2;... Istruzione n; Le istruzioni possono essere formate da una singola istruzione o da una serie di istruzioni Di solito le istruzioni vengono rientrate verso destra (indentazione), per specificare che esse appartengono alla clausola if ed alla corrispondente clausola

28 Costrutto IF 1/4 Selezione Semplice (Sintassi MATLAB) if espressione blocco_istruzioni Esempio x = input('inserisci x: '); y = input('inserisci y: '); if x == y disp('x e y sono uguali');

29 Costrutto IF 2/4 Quando un processo decisionale comporta più azioni, è possibile utilizzare, insieme alla clausola if, anche le seguenti clausole else Che caratterizza una selezione a due vie elseif Che caratterizza una selezione a cascata

30 Costrutto IF 2/4 Selezione a Due Vie (Sintassi MATLAB) if espressione blocco_istruzioni_1 else blocco_istruzioni_2 VERA espressione FALSA blocco_istruzioni_1 blocco_istruzioni_2

31 Costrutto IF 2/4 Selezione a Due Vie (Sintassi MATLAB) if espressione blocco_istruzioni_1 else blocco_istruzioni_2 Se l espressione è vera (1) allora le istruzioni del blocco 1 (blocco_istruzioni_1) sono eseguite Altrimenti (se l espressione è falsa (0) allora) le istruzioni del blocco 2 (blocco_istruzioni_2) sono eseguite

32 Costrutto IF 2/4 Selezione a Due Vie (Sintassi MATLAB) if espressione blocco_istruzioni_1 else blocco_istruzioni_2 Esempio 1 x = input('inserisci x: '); if x > 0 disp('hai inserito un valore positivo'); else disp('hai inserito un valore negativo');

33 Costrutto IF 2/4 Selezione a Due Vie (Sintassi MATLAB) if espressione blocco_istruzioni_1 else blocco_istruzioni_2 Esempio 2 n = input('inserisci n: '); if n < 100 disp([num2str(n), ' è MINORE di 100']); else disp([num2str(n), ' è MAGGIORE O UGUALE di 100']);

34 Costrutto IF 2/4 Selezione a Due Vie (Sintassi MATLAB) if espressione blocco_istruzioni_1 else blocco_istruzioni_2 Esempio 3 if voto_esame < 18 disp('grrrrrrrr...il prof mi ha preso in antipatia!!!'); else disp('e vai!!! Ho superato l esame! Bye bye prof');

35 Costrutto IF 3/4 Selezione a «Cascata» if espressione1 blocco_istruzioni_1 elseif espressione2 blocco_istruzioni_2... elseif espressionen blocco_istruzioni_n else blocco_istruzione_altrimenti FALSA FALSA espr1 espr2 esprn VERA VERA VERA bloco_istr_1 bloco_istr_2 bloco_istr_n FALSA bloco_istr_altrimenti

36 Costrutto IF 3/4 Selezione a «Cascata» (Sintassi MATLAB) if espressione1 blocco_istruzioni_1 elseif espressione2 blocco_istruzioni_2... elseif espressionen blocco_istruzioni_n else blocco_istruzione_altrimenti

37 Costrutto IF 3/4 Selezione a «cascata»: Esempio if prezzo >= 999 perc_sconto = 35; elseif prezzo >= 599 && prezzo < 999 perc_sconto = 25; elseif prezzo < 599 perc_sconto = 19; elseif prezzo <= 0.99 perc_sconto = 0; disp('nessuno sconto! Spi di più per averlo!!!') else disp('prezzo non corretto!')

38 Costrutto IF 3/4 Selezione a «cascata»: Esempio if prezzo >= 999 perc_sconto = 35; elseif prezzo >= 599 && prezzo < 999 perc_sconto = 25; elseif prezzo < 599 perc_sconto = 19; elseif prezzo <= 0.99 perc_sconto = 0; disp('nessuno sconto! NOTA: Spi Equivale di più a per averlo!!') else 599 prezzo < 999 disp('prezzo non corretto!')

39 Costrutto IF 3/4 Selezione a «cascata»: Esempio if prezzo >= 999 perc_sconto = 35; elseif prezzo >= 599 && prezzo < 999 perc_sconto = 25; elseif prezzo < 599 perc_sconto = 19; N.B. elseif prezzo <= 0.99 perc_sconto = 0; Le clausole else ed elseif disp('nessuno sconto! Spi di più per averlo!!') else necessario disp('prezzo non corretto!') possono essere omesse quando non Tuttavia, se vengono utilizzate entrambe, la clausola else deve essere posta dopo elseif

40 Costrutto IF 3/4 Selezione a «cascata»: Esempio if prezzo >= 999 perc_sconto = 35; elseif prezzo >= 599 && prezzo < 999 perc_sconto = 25; elseif prezzo < 599 perc_sconto = 19; elseif prezzo <= 0.99 perc_sconto = 0; N.B. La clausola elseif non richiede un apposita clausola disp('nessuno sconto! Spi di più per averlo!!') else disp('prezzo non corretto!')

41 Costrutto IF 4/4 Le strutture decisionali possono essere annidate Una struttura può essere inclusa all interno di un altra struttura che, a sua volta, può contenerne un altra e così via Il rientro verso destra di alcune righe del codice mette in evidenza i gruppi delle istruzioni associate a ciascuna clausola if espressione1 blocco_istruzioni_1 if espressione2 blocco_istruzioni_2 Si noti che ogni clausola if è associata ad una clausola

42 Costrutto IF 4/4 Esempio 4 cena = true; fa_i_compiti = true; sistema_stanza = false; N.B. Ciascun else fa riferimento all ultimo if che non è stato chiuso da una clausola if cena && fa_i_compiti if ~sistema_stanza disp('bravo/a ragazzo/a'); else disp('ragazzo/a eccezionale'); else disp('ragazzaccio/a');

43 Costrutto IF 4/4 Approfondimento Strutture Selettive Annidate in MATLAB (Esempio Anno Bisestile)

44 Costrutto SWITCH-CASE 1/3 Il costrutto switch-case consente di selezionare un gruppo di istruzioni da eseguire, in base al valore di una variabile presa in input switch variabile case valore1 blocco_istruzioni_valore_1 case valore2 blocco_istruzioni_valore_2... case valoren blocco_istruzioni_valore_n otherwise blocco_istruzioni_otherwise Tale costrutto risulta essere utile per le enumerazioni ma poco appropriato per gli intervalli

45 Costrutto SWITCH-CASE 1/3 Il costrutto switch-case consente di selezionare un gruppo di istruzioni da eseguire, in base al valore di una variabile presa in input switch variabile case valore1 blocco_istruzioni_valore_1 case valore2 blocco_istruzioni_valore_2. programma.. case valoren blocco_istruzioni_valore_n otherwise blocco_istruzioni_otherwise N.B. Ogni valore di case deve essere scritto su una singola riga del Tale costrutto risulta essere utile per le enumerazioni ma poco appropriato per gli intervalli

46 Costrutto SWITCH-CASE 1/3 Il costrutto switch-case consente di selezionare un gruppo di istruzioni da eseguire, in base al valore di una variabile presa in input switch variabile case valore1 blocco_istruzioni_valore_1 case valore2 blocco_istruzioni_valore_2... case valoren blocco_istruzioni_valore_n otherwise blocco_istruzioni_otherwise La variabile di input viene confrontata con il valore che segue ciascuna clausola case Se esiste una clausola case seguita da un valore identico a quello assunto dalla variabile presa in input, MATLAB esegue il blocco di istruzioni relativo a tale clausola Poi prosegue l elaborazione con le istruzioni che si trovano dopo la relativa clausola Tale costrutto risulta essere utile per le enumerazioni ma poco appropriato per gli intervalli

47 Costrutto SWITCH-CASE 1/3 Il costrutto switch-case consente di selezionare un gruppo di istruzioni da eseguire, in base al valore di una variabile presa in input switch variabile case valore1 blocco_istruzioni_valore_1 case valore2 blocco_istruzioni_valore_2... case valoren blocco_istruzioni_valore_n otherwise blocco_istruzioni_otherwise N.B. vengono eseguite soltanto le istruzioni corrispondenti al primo valore di case equivalente alla variabile di input Tale costrutto risulta essere utile per le enumerazioni ma poco appropriato per gli intervalli

48 Costrutto SWITCH-CASE 2/3 Esempio 1 mese = input('inserisci il tuo mese di nascita (valore numerico): '); switch mese case 1 mesestr = 'Gennaio'; case 2 mesestr = 'Febbraio'; case 3 mesestr = 'Marzo'; case 12 mesestr = 'Dicembre'; otherwise disp('errore: Il valore deve essere compreso tra 1 e 12') disp(['ciao, sei nato il mese di ', mesestr])

49 Costrutto SWITCH-CASE 3/3 Esempio 2 Più espressioni per blocco case cifra = input('inserisci cifra > 0 : '); switch cifra case {2,4,6,8} disp('cifra PARI'); case {1,3,5,7,9} disp('cifra DISPARI'); otherwise disp('errore: La cifra deve essere compresa tra 1 e 9')

50 Strutture Iterative 1/3 Abbiamo visto che MATLAB fornisce tre strutture fondamentali Sequenza Selezione Iterazione

51 Strutture Iterative 2/3 Abbiamo visto che MATLAB fornisce tre strutture fondamentali Sequenza Selezione Iterazione

52 Strutture Iterative 3/3 Perché abbiamo bisogno dell Iterazione? Se una sezione di codice può essere potenzialmente ripetuta, essa deve essere inserita in una struttura iterativa (o ciclo) Un ciclo (o loop) è una struttura di controllo che permette di ripetere l esecuzione di istruzioni per un certo numero di volte Ogni ripetizione del ciclo è detta iterazione o (passo) MATLAB fornisce di due tipologie di struttura iterativa Ciclo for Utilizzato quando il numero di iterazioni è noto a priori Ciclo while Utilizzato quando il numero di iterazioni non è noto a priori Il ciclo termina quando è soddisfatta una particolare condizione

53 Ciclo FOR 1/9 Ciclo for (Sintassi MATLAB) for variabile = m:s:n blocco_istruzioni 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 per ogni iterazione, utilizzando il valore corrente della variabile di ciclo L elaborazione continua finchè la variabile di ciclo supera il valore finale per n Di solito, la variabile di ciclo è uno scalare, ma può essere anche un vettore o una matrice

54 Ciclo FOR 1/9 Ciclo for (Sintassi MATLAB) for variabile = m:s:n blocco_istruzioni Si noti che ogni for deve essere associato ad una clausola indica la fine delle istruzioni da eseguire all interno del ciclo

55 Ciclo FOR 1/9 Ciclo for (Sintassi MATLAB) for variabile = m:s:n blocco_istruzioni Fra la clausola for ed il nome della variabile di ciclo deve essere inserito uno spazio

56 Ciclo FOR 1/9 Ciclo for (Sintassi MATLAB) for variabile = m:s:n blocco_istruzioni È buona norma indentare (rientrare) verso destra le istruzioni del ciclo for e la corrispondente clausola, per mettere in evidenza quali istruzioni appartengono al ciclo

57 Ciclo FOR 1/9 for k = 1 : 1 : 10 x = k^2 M-File Script per calcolare l elevazione al quadrato degli interi da 1 a 10 (potenza.m) >> potenza x = 1 x = 4 x = 9 x = 16 x = 25 x = 36 x = 49 x = 64 x = 81 x = 100 Esecuzione

58 Ciclo FOR 1/9 L istruzione x = k^2 viene eseguita una sola volta per ogni iterazione, utilizzando il valore corrente della variabile di ciclo k for k = 1 : 1 : 10 x = k^2 M-File Script per calcolare l elevazione al quadrato degli interi da 1 a 10 (potenza.m)

59 Ciclo FOR 2/9 Ciclo for (Sintassi alternativa MATLAB) for variabile = valori_array blocco_istruzioni

60 Ciclo FOR 2/9 Ciclo for (Usare array e matrici come indice di ciclo) for variabile = valori_array blocco_istruzioni Il ciclo for risulta essere molto utile anche per la manipolazione di array e matrici

61 Ciclo FOR 3/9 Esempio 1 for i = [1:1:10] disp(i)

62 Ciclo FOR 3/9 Esempio 1 for i = [1:1:10] disp(i) [1:1:10] equivale al vettore [ ]

63 Ciclo FOR 3/9 Esempio 1 for i = [1:1:10] disp(i) Output

64 Ciclo FOR 4/9 Esempio 2 for i = 2:2:10 disp(i)

65 Ciclo FOR 4/9 Esempio 2 for i = 2:2:10 disp(i) Output Numeri pari da 2 a

66 Ciclo FOR 5/9 Esempio 3 Funzione che pre in input un array x e restituisce in output la somma degli elementi che esso contiene function [somma] = somma_array(x) s = 0 for i = 1:length(x) restituisce la dimensione di x s = s + x(i); somma = s;

67 Ciclo FOR 5/9 Esempio 3 function [somma] = somma_array(x) s = 0 for i = 1:length(x) s = s + x(i); somma = s; Esempi d uso >> mio_array = [ ]; >> somma_mio_array = somma_array(mio_array) somma_mio_array = 236 >> somma = somma_array(1:10) somma = 55

68 Ciclo FOR 6/9 Esempio 4 Funzione che pre in input un array x e restituisce in output la somma degli 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); N.B.: I commenti (riportati in verde) saranno ignorati da MATLAB. Essi sono di aiuto solo a chi scrive/legge il codice sorgente della funzione

69 Ciclo FOR 6/9 Esempio 4 Funzione che pre in input un array x e restituisce in output la somma degli 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; N.B. i vari livelli di indentazione 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); N.B.: I commenti (riportati in verde) saranno ignorati da MATLAB. Essi sono di aiuto solo a chi scrive/legge il codice sorgente della funzione

70 Ciclo FOR 6/9 Esempio 4 N.B. È possibile annidare i cicli for e le istruzioni condizionali Funzione che pre in input un array x e restituisce la somma degli elementi con indice pari e la somma degli elementi con indice dispari Si noti che for ed if devono essere sempre accompagnati function [somma_pari, somma_disp] = somma_pari_dispari(x) dalla relativa clausola somma_pari = 0; somma_disp = 0; N.B. i vari livelli di indentazione 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); N.B.: I commenti (riportati in verde) saranno ignorati da MATLAB. Essi sono di aiuto solo a chi scrive/legge il codice sorgente della funzione

71 Ciclo FOR 6/9 Esempio 4 Funzione che pre in input un array x e restituisce in output la somma degli 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); N.B.: I commenti (riportati in verde9 saranno ignorati da MATLAB. Essi sono di aiuto solo a chi sommap = scrive/legge il codice sorgente della funztion Esempi d uso >> [sommap, sommad] = somma_pari_dispari([ ]) sommap = 6 sommad = 9 >> [sommap, sommad] = somma_pari_dispari([ ]) 10 sommad = 6

72 Ciclo FOR 7/9 Esempio 5 Funzione che pre in input un array x e restituisce in output l elemento con valore massimo function [massimo] = massimo(x) massimo = x(1); for i = 2:length(x) if x(i) > massimo massimo = x(i);

73 Ciclo FOR 7/9 Esempio 5 Funzione che pre in input un array x e restituisce in output l elemento con valore massimo function [massimo] = massimo(x) massimo = x(1); for i = 2:length(x) if x(i) > massimo massimo = x(i); Esempi d uso >> max = massimo([ ]) max = 500 >> max = massimo([ ]) max = -1 >> max = massimo([ /1000 2/3 8/29]) max =

74 Ciclo FOR 8/9 Esempio 6 Funzione che pre 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 valore dell elemento massimo tra a(i) e b(i) Esempio Input/output funzione INPUT a = [ ] b = [ ] OUTPUT c = [ ] Suggerimento: possiamo utilizzare la funzione massimo, che abbiamo definito in precedenza

75 Ciclo FOR 8/9 Esempio 6 Funzione che pre 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 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)]);

76 Ciclo FOR 8/9 Esempio 6 Funzione che pre 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 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)]); >> c = massimi_valori([2 3], [1, 8]) c = 2 8 Esempi d uso >> c = massimi_valori([ ], [ ]) c =

77 Ciclo FOR 9/9 Esempio 7 Funzione che pre in input una matrice A e restituisce in output la somma degli elementi di A Soluzione 1 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);

78 Ciclo FOR 9/9 Esempio Funzione che pre in input una matrice A e 2 restituisce 21 in output 4 la 6 somma degli elementi di A m Soluzione function [somma] = somma_matrice(a) [m n] = size(a); somma = 0; n for r = 1:m %indicizza le righe della matrice for c = 1:n %indicizza le colonne della matrice somma = somma + A(r, c);

79 Ciclo FOR 9/9 Esempio 7 Funzione che pre in input una matrice A e restituisce in output la somma 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:m riga_a = A(r, :); % estraggo r-esima riga di A somma = somma + somma_array(riga_a);

80 Ciclo WHILE 1/3 Ciclo while (Sintassi MATLAB) while condizione blocco_istruzioni Finché la condizione del while è verificata (risulta essere vera), le istruzioni contenute nel corpo del ciclo (blocco_istruzioni) verranno eseguite D altro canto, non appena la condizione non sarà più verificata (risulterà falsa), il ciclo terminerà Il ciclo while è estremamente utile quando non è noto a priori il numero di iterazioni che dovranno essere eseguite Ad es., quando si vuole continuare un processo finché non è soddisfatta una particolare condizione

81 Ciclo WHILE 2/3 Ciclo while (Sintassi MATLAB) while condizione blocco_istruzioni Ogni clausola while deve essere associata alla relativa clausola

82 Ciclo WHILE 2/3 Ciclo while (Sintassi MATLAB) while condizione blocco_istruzioni Le istruzioni del ciclo (blocco_istruzioni) dovrebbero essere rientrate verso destra per agevolare la lettura dei programmi

83 Ciclo WHILE 3/3 Esercizio 1 x = 20; while x < 50 disp(x); x = x + 3; M-File Script Output

84 Ciclo WHILE 3/3 Esercizio 1 x = 20; while x < 50 disp(x); x = x + 3; M-File Script Output Affinché il ciclo while possa operare correttamente, 20 devono verificarsi due condizioni La variabile di ciclo (in questo caso x) deve avere un valore prima che venga eseguito il while

85 Ciclo WHILE 3/3 Esercizio 1 x = 20; while x < 50 disp(x); x = x + 3; M-File Script Output Affinché il ciclo while possa operare correttamente, 20 devono verificarsi due condizioni La variabile di ciclo (in questo caso x) deve avere un valore prima che venga eseguito il while La variabile di ciclo deve essere modificata in qualche modo dalle istruzioni del ciclo stesso

86 Ciclo WHILE 3/3 Esercizio 1 x = 20; while x < 50 disp(x); x = x + 3; M-File Script Output Le istruzioni sono eseguite una volta per ogni iterazione 20 del ciclo, utilizzando il valore corrente 23 della variabile di ciclo (in 26 questo caso x)

87 Ciclo WHILE 3/3 Esercizio 2 Esegue il ciclo finché non viene immesso un valore negativo somma = 0; x = input('inserisci x (> 0): '); while x > 0 somma = somma + x; x = input('inserisci x (> 0): '); disp(['somma: ', num2str(somma)]); M-File Script Esempio d uso Inserisci x (> 0): 10 Inserisci x (> 0): 9 Inserisci x (> 0): 8 Inserisci x (> 0): -1 somma: 27

88 Ciclo WHILE 3/3 Esercizio 2 Esegue il ciclo finché non viene immesso un valore negativo somma = 0; x = input('inserisci x (> 0): '); while x > 0 somma = somma + x; x = input('inserisci x (> 0): '); disp(['somma: ', num2str(somma)]); Prestare estrema attenzione alla condizione di terminazione del ciclo Potrebbe accadere che il ciclo non abbia mai termine M-File Script Esempio d uso Inserisci x (> 0): 10 Inserisci x (> 0): 9 Inserisci x (> 0): 8 Inserisci x (> 0): -1 somma: 27

89 Ciclo DO/WHILE MATLAB non offre una sintassi per il ciclo do/while È comunque possibile ottenere un comportamento simile a quello del do/while impiegando un while come segue: continua_ciclo = true; while continua_ciclo blocco_istruzioni; if ~condizione continua_ciclo = false; Esempio continua_ciclo = true; i = 1; while continua_ciclo disp(i); if ~(i < 10) continua_ciclo = false; i = i + 1;

90 break e continue 1/2 Le clausole break e continue possono essere usate all interno di un 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 istruzione fuori dal ciclo for i = 1 : 6 disp(i) if i > 3 break; Output

91 break e continue 1/2 Le clausole break e continue possono essere usate all interno di un 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 istruzione fuori dal ciclo for i = 1 : 6 disp(i) if i > 3 break; È possibile utilizzare un istruzione if per saltare fuori dal ciclo, prima che la variabile di ciclo abbia raggiunto il suo valore finale Per fare questo è possibile usare l istruzione break, che termina Output un ciclo senza concludere l intero programma

92 break e continue 2/2 Le clausole break e continue possono essere usate all interno di un ciclo per terminare o modificare l esecuzione del ciclo stesso La clausola continue salta un iterazione del ciclo, ma fa si che il flusso di esecuzione rimanga comunque all interno del ciclo Il flusso di esecuzione del programma salta alla fine del ciclo (bypassando tutte le istruzioni presenti tra la clausola continue e quella ) e comincia con la prossima iterazione del ciclo for i = 1 : 6 if mod(i, 2) == 0 continue; disp(i) Output

93 break e continue 2/2 Le clausole break e continue possono essere usate all interno di un ciclo per terminare o modificare l esecuzione del ciclo stesso La clausola continue salta un iterazione del ciclo, ma fa si che il flusso di esecuzione rimanga comunque all interno del ciclo Il flusso di esecuzione del programma salta alla fine del ciclo (bypassando tutte le istruzioni presenti tra la clausola continue e quella ) e comincia con la prossima iterazione del ciclo for i = 1 : 6 if mod(i, 2) == 0 continue; disp(i) Questa istruzione passa il controllo del programma alla successiva iterazione del ciclo for o while in cui figura, ignorando tutte le istruzione restanti nel corpo del ciclo Output Nei cicli annidati, l istruzione continue passa il controllo del programma alla successiva iterazione del ciclo for o while in cui è contenuta

94 Esercizio 1 [Per casa] Espressione Valore

95 Esercizio 2 [Per casa] Simulare una sequenza di 20 lanci di un dado a 6 facce Se per 2 lanci consecutivi esce il numero 6 Viene stampato «Hai Vinto!» e la simulazione si arresta Se non sono capitati due lanci consecutivi in cui è uscito il numero 6 Viene stampato «Riprova» e la simulazione si arresta

96 Riferimenti Capitolo 4 Paragrafi 1, 2, 3, 4, 5, 6 e 7

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Introduzione alla Programmazione in MATLAB: Parte 2 (Operatori Logico/Relazionali e Strutture Selettive) Prof. Arcangelo Castiglione A.A. 2016/17 Introduzione alla programmazione

Dettagli

Fondamenti di Informatica

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

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica (Strutture di controllo selettive ed iterative) Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 OUTLINE Operatori Relazionali

Dettagli

Fondamenti di Informatica A. A. 2018/19

Fondamenti di Informatica A. A. 2018/19 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2018/19 AlgoBuild: Strutture Iterative e Selettive OUTLINE Blocco condizionale (Struttura selettiva IF - IF/ELSE) Esempi Cicli a condizione iniziale

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Dettagli

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI IF Ogni linguaggio di programmazione presenta almeno una struttura di controllo decisionale. La sintassi del linguaggio C è la seguente. if ()

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 8 14/11/2013

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 8 14/11/2013 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 8 14/11/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University

Dettagli

Strutture di controllo condizionali in Matlab

Strutture di controllo condizionali in Matlab Strutture di controllo condizionali in Matlab Informatica B Le strutture condizionali A cosa servono le strutture condizionali? %Inserimento dei parametri della parabola: y=ax^2+bx+c a = input( inserire

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture iterative e selettive Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 AlgoBuild: Strutture iterative

Dettagli

Corso di PHP. Prerequisiti. 3 - Le strutture di controllo. Istruzioni semplici Controllo del flusso di programma

Corso di PHP. Prerequisiti. 3 - Le strutture di controllo. Istruzioni semplici Controllo del flusso di programma Corso di PHP 3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Controllo del flusso di programma 2 1 Introduzione In molti casi le sole istruzioni viste finora non sono sufficienti a risolvere

Dettagli

Università degli Studi di Ferrara

Università degli Studi di Ferrara Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018 2019 Programmazione Lezione 19 Controllo di Flusso in MATLAB Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 3: Istruzioni ed operatori booleani. Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo

Dettagli

Programmare con MatLab IV

Programmare con MatLab IV Programmare con MatLab IV IV_Matlab Carla Guerrini 1 Programmazione Matlab MATLAB non è un vero e proprio linguaggio di programmazione, ma permette comunque di realizzare programmi utilizzando le classiche

Dettagli

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Dettagli

Istruzioni di Controllo

Istruzioni di Controllo Istruzioni di Controllo Programmazione strutturata Ricordiamo i concetti chiave: concatenazione o composizione BLOCCO istruzione condizionale SELEZIONE ramifica il flusso di controllo in base al valore

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Introduzione alla programmazione in MATLAB: Parte 3 Possibili Soluzioni per gli Esercizi Prof. Arcangelo Castiglione A.A. 2016/17 Esercizio 1 (Possibile Soluzione) Scrivere un

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Informatica 2 modulo C Massimo Callisto De Donato

Informatica 2 modulo C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Informatica 2 modulo C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

del Linguaggio C Istruzioni di iterazione

del Linguaggio C Istruzioni di iterazione Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il

Dettagli

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.1 Linguaggi procedurali classe

Dettagli

Iterazione A. Ferrari

Iterazione A. Ferrari Iterazione A. Ferrari Iterazioni (cicli) L iterazione è una struttura che consente di ripetere più volte l esecuzione di un insieme di istruzioni. Due tipi di iterazione: iterazioni enumerative: consentono

Dettagli

Strutture di Controllo

Strutture di Controllo Strutture di Controllo Istruzioni condizionali e cicli http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Fino ad ora, il nostro

Dettagli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di

Dettagli

Calcolo Numerico A.A Lab n

Calcolo Numerico A.A Lab n Calcolo Numerico A.A. 2014-2015 Lab n. 3 29-10-2014 Elementi di programmazione Programmare in MATLAB Alcune strutture di programmazione elementari Operatori relazionali: =, ==, = Operatori logici:

Dettagli

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012 Laboratorio Progettazione Web Il linguaggio PHP Lezione 6 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012 Assegnamento L assegnamento ad una variabile è il classico variabile = valore;

Dettagli

Il primo programma C++

Il primo programma C++ Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida

Dettagli

Laboratorio Progettazione Web Il linguaggio PHP le istruzioni. Andrea Marchetti IIT-CNR 2013/2014

Laboratorio Progettazione Web Il linguaggio PHP le istruzioni. Andrea Marchetti IIT-CNR 2013/2014 Laboratorio Progettazione Web Il linguaggio PHP le istruzioni Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014 Assegnamento L assegnamento ad una variabile è il classico variabile = valore;

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti

Dettagli

Istruzioni di controllo

Istruzioni di controllo Istruzioni di controllo Le istruzioni in C Assegnazione Sequenza I/O Test Cicli Controllo = che cosa è la prossima cosa da fare La prossima cosa da fare è quella che segue La prossima cosa da fare dipende

Dettagli

Assegnazione di una variabile

Assegnazione di una variabile Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile

Dettagli

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016 Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.it AA 2015/2016 Ambiente di test PHP online per avere un interprete PHP Php Online PHP Tester

Dettagli

8 Introduzione MATLAB

8 Introduzione MATLAB 8.1 Basi Per pulire il workspace (eliminare tutte le variabili esistenti): 1 clear Per pulire la finestra dei comandi (command window): 1 clc In MATLAB non è necessario dichiarare le variabili ed esse

Dettagli

Istruzioni. Istruzioni semplici Istruzioni di controllo. Fondamenti di Informatica e laboratorio Istruzioni e Controllo del flusso

Istruzioni. Istruzioni semplici Istruzioni di controllo. Fondamenti di Informatica e laboratorio Istruzioni e Controllo del flusso Istruzioni Istruzioni Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante Le strutture di controllo permettono

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 24 settembre 2007 Outline 1 M-file di tipo Script e Function Script Function 2 Elementi di programmazione

Dettagli

Strutture di controllo decisionali

Strutture di controllo decisionali Capitolo 3 Strutture di controllo decisionali ANDREA GINI Dopo aver introdotto il concetto di variabile e di array, è giunto il momento di analizzare a fondo i restanti costrutti del linguaggio Java. Come

Dettagli

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Programmare in Scilab: Matrici Booleane Strutture di Controllo

Programmare in Scilab: Matrici Booleane Strutture di Controllo Programmare in Scilab: Matrici Booleane Strutture di Controllo Corso di Informatica CdL: Chimica Claudia d'amato cl audi a.damat o@di.uni ba.i t Programmazione in Scilab Scilab dispone di un linguaggio

Dettagli

Programmare. Condizioni logiche. Condizioni Logiche Costrutti Decisionali Costrutti di Ciclo

Programmare. Condizioni logiche. Condizioni Logiche Costrutti Decisionali Costrutti di Ciclo Programmare Condizioni Logiche Costrutti Decisionali Costrutti di Ciclo Condizioni logiche Le condizioni logiche sono istruzioni che fanno uso di: operatori relazionali (servono a confrontare il valore

Dettagli

STRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010

STRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 7: Istruzioni ed Operatori Booleani Vittorio Scarano Corso di Laurea in Informatica Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo Operatori relazionali

Dettagli

Dichiarazione di variabili

Dichiarazione di variabili Dichiarazione di variabili ESEMPIO: somma di due numeri

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

8 Introduzione MATLAB

8 Introduzione MATLAB 8.1 Basi Per pulire il workspace (eliminare tutte le variabili esistenti): 1 clear Per pulire la finestra dei comandi (command window): 1 clc In MATLAB non è necessario dichiarare le variabili ed esse

Dettagli

Costrutti condizionali e iterativi

Costrutti condizionali e iterativi Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni

Dettagli

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1 Matlab 5 Funzioni Slide basate sul corso di C. Blundo A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 1 Funzioni Le funzioni sono utili quando occorre ripetere una serie di comandi più

Dettagli

Costrutti condizionali e iterativi

Costrutti condizionali e iterativi Costrutti condizionali e iterativi Introduction to modern Fortran Paolo Ramieri, CINECA Maggio 2017 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle

Dettagli

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA. INFORMATICA B Ingegneria Elettrica. Script in Matlab

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA. INFORMATICA B Ingegneria Elettrica. Script in Matlab DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA INFORMATICA B Ingegneria Elettrica Script in Matlab Gli script Uno script è un file di testo contenente una sequenza di comandi MATLAB (è un programma

Dettagli

Le strutture di controllo

Le strutture di controllo INFORMATICA B Ingegneria Elettrica Le strutture di controllo Selezione un esempio introduttivo Si disegni il diagramma di flusso di un algoritmo che chiede all utente un valore intero e visualizza il suo

Dettagli

Strutture di controllo (v.anche cap. 8 del testo MATLAB per l ingegneria )

Strutture di controllo (v.anche cap. 8 del testo MATLAB per l ingegneria ) (v.anche cap. 8 del testo MATLAB per l ingegneria ) Selezione if 1 2 If, while, for, do until Se la condizione è vera, esegui 1, altrimenti esegui 2 MATLAB - ontrollo 2 Selezione if if ( condizione ) blocco

Dettagli

Esecuzione condizionale. Esecuzione condizionale. Costrutto if. Costrutto if

Esecuzione condizionale. Esecuzione condizionale. Costrutto if. Costrutto if Esecuzione condizionale Esecuzione condizionale Permette l esecuzione di un blocco di codice solo se si verifica una certa condizione SE (condizione è vera) ALLORA esegui istruzioni 2 er. 2.4 also condizione

Dettagli

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Linguaggio Testuale E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Delle volte viene chiamato metalinguaggio, e l algoritmo scritto tramite

Dettagli

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09 Introduzione all ambiente MATLAB Richiami II Programmazione MATLAB MATLAB non è un vero e proprio linguaggio di programmazione, ma permette comunque di realizzare programmi utilizzando le classiche strutture

Dettagli

Laboratorio di Python

Laboratorio di Python per casa 17 marzo 2015 Sommario per casa 1 2 3 4 per casa a casa per casa Scrivere una funzione che presi due numeri come parametri della funzione mi stampi il MCD tra i due numeri. Usare ciclo for. Scrivere

Dettagli

Istruzioni di Controllo in C. Emilio Di Giacomo

Istruzioni di Controllo in C. Emilio Di Giacomo Istruzioni di Controllo in C Emilio Di Giacomo Limite delle istruzioni viste L insieme delle istruzioni che abbiamo visto fino ad ora consiste per lo più di: dichiarazioni e assegnazioni di variabili espressioni

Dettagli

Tipi di dato, variabili, istruzioni

Tipi di dato, variabili, istruzioni Tipi di dato, variabili, istruzioni Esercizio 1 Implementare un servizio che estrae due numeri random tra 1 e 100, stampa a video i due numeri ed esegue le seguenti operazioni: se almeno uno dei due numeri

Dettagli

Laboratorio di Programmazione e Calcolo

Laboratorio di Programmazione e Calcolo UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI FISICA E. AMALDI Laboratorio di Programmazione e Calcolo 6 crediti a cura di Severino Bussino Anno Accademico 2018-19 0) Struttura del Corso 1) Trattamento

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C Controllo di Flusso Daniele Pighin March 2009 Daniele Pighin Introduzione al Linguaggio C 1/19 Outline Introduzione Branching: if Il ciclo while Il ciclo for break e continue

Dettagli

Sunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I.

Sunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I. Sunto della scorsa lezione 06-10-2003 Il linguaggio C Matricole 2-3 Un programma C è un insieme di funzioni. La funzione è sempre presente Una funzione è un insieme di istruzioni racchiuse tra ogni istruzione

Dettagli

Estrazione di dati da una matrice

Estrazione di dati da una matrice Estrazione di dati da una matrice a = [1 2 3 4 5; 9 5 4 7 6; 10 1 7 3 2] b = a(1,2) % 2 elemento della prima riga c = a(1,:) % l'intera prima riga (c è un array monodimensionale) d = a(:,3) % la terza

Dettagli

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015 Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.it AA 2014/2015 Ambiente di test Cercare PHP online per avere un interprete PHP Assegnamento

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

Iterazione determinata e indeterminata

Iterazione determinata e indeterminata Iterazione determinata e indeterminata Le istruzioni iterative permettono di ripetere determinate azioni più volte: un numero di volte fissato = iterazione determinata, Esempio: fai un giro del parco di

Dettagli

C espressioni condizionali

C espressioni condizionali C espressioni condizionali Esiste un particolare operatore, detto operatore condizionale, che rappresenta un istruzione if else. estremamente compattata?: Supponiamo di voler inserire nella variabile intera

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algebra di Boole Stefano Cagnoni Algebra di Boole L algebra

Dettagli

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18 Tutor: prof Francesco De Vincenzi MATLAB: Gli script MATLAB: Esempio di script Area di un triangolo dati base e altezza base=input('inserisci

Dettagli

If Statement. Il costrutto condizionale if ha la seguente sintassi:

If Statement. Il costrutto condizionale if ha la seguente sintassi: Costrutti Control Flow Con control flow (o strutture di controllo) si intende l insieme dei costrutti che servono a gestire il flusso di esecuzione di un programma, cioè a specificare quando e come eseguire

Dettagli

IL COSTRUTTO ITERAZIONE

IL COSTRUTTO ITERAZIONE IL COSTRUTTO ITERAZIONE Il costrutto iterazione Consente di ripetere una operazione elementare o un blocco di operazioni. Tipologie di iterazione Iterazione definita Iterazione condizionata Tipologie di

Dettagli

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice, Paolo Bison, FI06, 2007-01-10 p.1 Pseudo codice linguaggio testuale mix di linguaggio naturale ed elementi

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

Un esempio di if annidati

Un esempio di if annidati Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XIV, parte I ) Costrutto di selezione switch Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di

Dettagli

Primi script in MATLAB

Primi script in MATLAB Primi script in MATLAB Laboratorio di Calcolo Numerico 6 Marzo 2018 Introduzione alla programmazione Obiettivo: scrivere programmi e sviluppare algoritmi in MATLAB Si utilizzano gli m-file, ovvero file

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE

Dettagli

Operatori relazionali

Operatori relazionali Operatori relazionali Gli operatori relazionali più comuni sono: == uguale ~= diverso da < minore di > x=2; >> x==0 ans = 0 >> x==2 ans = 1 (questa relazione e falsa:)

Dettagli

Introduzione all ambiente MATLAB. Richiami II. Analisi Numerica - A.A. 2007/08

Introduzione all ambiente MATLAB. Richiami II. Analisi Numerica - A.A. 2007/08 Introduzione all ambiente MATLAB Richiami II Programmazione MATLAB MATLAB non è un vero e proprio linguaggio di programmazione, ma permette comunque di realizzare programmi utilizzando le classiche strutture

Dettagli

Javascript: il browser

Javascript: il browser Javascript: il browser Un browser è un programma Un browser interpreta il linguaggio HTML e visualizza le pagine sullo schermo Per la visualizzazione delle pagine un browser si appoggia al software di

Dettagli

Laboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while)

Laboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while) Laboratorio Due 1) Switch 2) Costrutti Iterazione (For, While, do while) GLI ARGOMENTI DI OGGI Istruzione switch I costrutti di iterazione (For, while, do while) Le funzioni (e ricorsione) Terza Esercitazione

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

Dettagli

Le strutture di controllo in C++

Le strutture di controllo in C++ Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Programmazione Strutturata

Programmazione Strutturata Programmazione Strutturata Problema: Spaghetti Code è un termine dispregiativo per quei programmi per computer che abbiano una struttura di controllo del flusso complessa e/o incomprensibile Ad esempio,

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell'informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algebra di Boole Stefano Cagnoni Algebra di Boole L'algebra

Dettagli

Linguaggio C Strutture di controllo

Linguaggio C Strutture di controllo FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Strutture di controllo 2001 Pier Luca Montessoro - Davide

Dettagli

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni

Dettagli

Programmazione in Python per la bioinformatica

Programmazione in Python per la bioinformatica per la bioinformatica University of Verona Sommario (if) (while for) Cambiare il usso di esecuzione di un programma Semplice Semplice l'indentazione ha un signicato sintattico! Condizioni Boolean Expression

Dettagli

Analisi strutturata 1

Analisi strutturata 1 Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Strutture di controllo

Strutture di controllo Dipartimento di Ingegneria dell'informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria ivile e Ambientale MATLAB: le strutture di controllo If, while, for, do until

Dettagli

Javascript: il browser

Javascript: il browser Javascript: il browser Un browser è un programma Un browser interpreta il linguaggio HTML e visualizza le pagine sullo schermo Per la visualizzazione delle pagine un browser si appoggia al software di

Dettagli

Caratteristiche di un calcolatore elettronico

Caratteristiche di un calcolatore elettronico Prof. Emanuele Papotto Caratteristiche di un calcolatore elettronico È una macchina, costituita da circuiti elettronici digitali e da componenti elettromeccaniche, ottiche e magnetiche. È velocissimo,

Dettagli

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Introduzione alla programmazione in MATLAB E s e rc i ta z i o n e 1 Po s s i b i l i S o l u z i o n i P r o f. R a f fa e l e P i z zo l a n t e A. A. 2 0 1 6 / 1 7 Esercizio

Dettagli

Ing. Lorenzo Vismara

Ing. Lorenzo Vismara Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&&#2! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)&#7& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#

Dettagli

Estrazione di dati da una matrice

Estrazione di dati da una matrice Estrazione di dati da una matrice a = [ 2 3 4 5; 9 5 4 7 6; 7 3 2] b = a(,2) % 2 elemento della prima riga c = a(,:) % l'intera prima riga (c è un array monodimensionale) d = a(:,3) % la terza colonna

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli