Comments
Transcript
MATLAB - controllo - Università degli Studi di Parma
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Laboratorio di Informatica Strutture di controllo Laurea in Ingegneria Civile e Ambientale If, while, for, do until MATLAB: le strutture di controllo Stefano Cagnoni Strutture di controllo Strutture di controllo Selezione if Sì C O1 No Se la condizione è vera esegue il primo blocco di istruzioni, altrimenti esegue il secondo (se specificato) O2 Es. calcolo valore assoluto if (x 0) y = x; else y = -x; end Se la condizione C è vera, esegui O1, altrimenti esegui O2 MATLAB Il linguaggio - controllo C Selezione if if (condizione) blocco istruzioni 1 [else blocco istruzioni 2] end 3 MATLAB - controllo 4 1 Strutture di Controllo Esempio Cicli % Dati due numeri in ingresso, individua il maggiore num1 = input("Inserisci un numero ") num2 = input("Inserisci un altro numero ") Sì No C O No C Sì No C Sì O O if (num1==num2) disp("I due numeri sono uguali"); else if(num1>num2) disp("Il primo è maggiore"); else disp("Il secondo è maggiore"); end; end; Ciclo do until Ripete una stessa operazione O finché la condizione C resta vera Esegue una operazione O una volta, poi la ripete finché la condizione C non è soddisfatta 5 MATLAB - controllo Strutture di controllo Ciclo While Ciclo for A livello logico come ciclo while, ma più esplicito se si devono ripetere le istruzioni un numero prefissato di volte MATLAB - controllo Strutture di controllo Calcolo della somma dei primi 100 numeri naturali Ciclo while i=1; somma 0; No C Sì while (condizione) while(i100) somma sommai; i=i+1; end O istruzioni end Esegue il blocco di istruzioni che segue, finché la condizione è vera (può anche non eseguirlo mai) MATLAB - controllo 7 disp("La somma vale: "), disp(somma); MATLAB - controllo 8 2 Strutture di controllo Strutture di controllo Ciclo do until (SOLO OCTAVE!) C No do istruzioni calcolo della somma dei primi 100 numeri naturali O i=1; somma 0; Sì do until (condizione) somma sommai; i=i+1; until (i>=100) Esegue (sempre almeno una volta) le istruzioni comprese nel blocco che segue e le ripete finché la condizione non diventa vera disp("La somma vale: "), disp(somma); 9 MATLAB - controllo Strutture di controllo Strutture di controllo Intervalli Ciclo for 3 i = 1 : 0.1 : 1.55 equivale a i=[1 1.1 No Sì definisce una sequenza di valori che vanno da v_iniz (compreso) a v_fin (o il max valore della sequenza <= v_fin) con un incremento (anche negativo) pari a passo. Se passo non è specificato l’incremento è pari a 1. v_iniz può essere minore di v_fin solo se passo è negativo 2 Iniz. contatore cont<=F v_iniz : passo : v_fin i = 1 : 10 equivale a i=[1 10 MATLAB - controllo 4 1.2 5 6 1.3 MATLAB - controllo 7 8 1.4 9 O for(var=<intervallo>) Incr. contatore istruzioni end Dopo avere definito l’intervallo entro cui deve variare il contatore, ripete l’esecuzione del blocco di istruzioni che segue finché il contatore è minore o uguale all’estremo destro dell’intervallo concludendo ogni ciclo con l’incremento automatico del contatore stesso. 10] for i1:100 disp( i ); end 1.5] 11 MATLAB - controllo 12 3 Strutture di controllo Strutture di controllo In generale: Calcolo della somma dei primi 100 numeri naturali Il ciclo while (o do until) si usa quando non è definito a priori il numero di iterazioni da eseguire, quando cioè si attende il verificarsi si un evento non certo. somma 0; for i 1:100 somma sommai; end Il ciclo for si usa quando il numero di iterazioni è definito o quando la stessa sequenza di istruzioni deve essere eseguita utilizzando una sequenza predefinita di valori disp("La somma vale: "), disp(somma); In realtà ogni ciclo for è esprimibile come un ciclo while (e viceversa) MATLAB - controllo 13 MATLAB - controllo 14 Esercizi Scrivere un programma che prenda in ingresso un intero N e calcoli il doppio della somma dei primi N numeri Scrivere un programma, a partire dal corrispondente diagramma di flusso, che chieda in ingresso un numero finché non si inserisce un numero dispari. Quando questo avviene, il programma deve uscire scrivendo quanti sono stati i numeri pari che lo hanno preceduto. MATLAB - controllo 15 4