...

MATLAB - controllo - Università degli Studi di Parma

by user

on
Category: Documents
26

views

Report

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(i100)
somma  sommai;
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  sommai;
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 i1: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  sommai;
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
Fly UP