Documente Academic
Documente Profesional
Documente Cultură
CURS 3
Toate instrucțiunile de control folosesc comanda end pentru a indica sfârșitul blocului respectiv.
Exemplu:
i=2;
j=input('j='); %se da controlul la tastatura pt. introducerea valorii
if i+j>10
disp(['i+j=' num2str(i+j)])
end
Software de analiza numerica si simbolica 2
Ø if-else
Exemplu:
x=input('x=');
if x>0
disp('x este pozitiv')
else
fprintf('x este negativ sau nul\n') %\n pt. a trece pe o linie noua
end
Ø if-elseif
Exemplu:
u=input('u=');
v=input('v=');
if u>v
disp('u este mai mare ca v')
elseif u<v
disp('u este mai mic ca v')
end
Software de analiza numerica si simbolica 3
Ø if-elseif-else
Exemplul 1:
u=input('u=');
v=input('v=');
if u>v
disp('u este mai mare ca v')
elseif u<v
disp('u este mai mic ca v')
else
disp('u este egal cu v')
end
Exemplul 2: Stabilirea parității sau imparității unui număr întreg strict pozitiv
n=input('n=');
if n<=0
disp('valoarea tastata trebuie sa fie strict pozitiva');
elseif rem(n,2)==0 %functia rem returneaza restul impartirii la 2
disp('n este par');
else %daca n este pozitiv si impar
disp('n este impar');
end
elseif strcmp(figura,'dreptunghi')==1
a=input('Tastati valoarea numerica a bazei in [mm]=');
b=input('Tastati valoarea numerica a inaltimii in [mm]=');
aria=a*b;
disp(['aria dreptunghiului=', num2str(aria), '[mm^2]']);
elseif strcmp(figura,'cerc')==1
r=input('Tastati valoarea numerica a razei in [mm]=');
aria=pi*r^2;
disp(['aria cercului=', num2str(aria), '[mm^2]']);
else
disp('ati tastat altceva decat triunghi, dreptunghi sau cerc');
end
Exemplul 1:
figura=input('Tastati triunghi, dreptunghi sau cerc: ','s');
switch figura
case 'triunghi'
b=input('Tastati valoarea numerica a bazei in [mm]=');
h=input('Tastati valoarea numerica a inaltimii in [mm]=');
aria=b*h/2;
disp(['aria triunghiului=', num2str(aria), '[mm^2]']);
Software de analiza numerica si simbolica 5
case'dreptunghi'
a=input('Tastati valoarea numerica a bazei in [mm]=');
b=input('Tastati valoarea numerica a inaltimii in [mm]=');
aria=a*b;
disp(['aria dreptunghiului=', num2str(aria), '[mm^2]']);
case 'cerc'
r=input('Tastati valoarea numerica a razei in [mm]=');
aria=pi*r^2;
disp(['aria cercului=', num2str(aria), '[mm^2]']);
otherwise
disp('ati tastat altceva decat triunghi, dreptunghi sau cerc');
end
Instrucțiunea switch poate rezolva mai multe condiții într-un singur caz prin folosirea acoladelor {}.
Exemplul 2:
variabila=input('variabila=');
switch variabila
case 1, disp('1')
case {2,3,4}, disp('2 sau 3 sau 4')
case 5, disp('5')
otherwise, disp('alta valoare')
end
switch-case if-elseif
Instrucțiunea for
Execută un grup de instrucțiuni de un număr fixat de ori.
Se pot scrie instrucțiuni for în corpul unei alte instrucțiuni for (for imbricat):
Exemplul 3: Să se genereze o matrice cu m linii și n coloane cu elementele B(i,j)=1/(i+j-1)
m=input('linii m=')
n=input('coloane n=')
for i=1:m %se repeta de m ori
for j=1:n %se repeta de m x n ori
B(i,j)=1/(i+j-1);
end
end
B
Software de analiza numerica si simbolica 7
Instrucțiunea while
Execută un grup de instrucțiuni de un număr nedefinit de ori pe baza unei condiții logice.
Se pot scrie instrucțiuni while în corpul unei alte instrucțiuni while (while imbricat):
Exemplul 2: Să se genereze o matrice cu m linii și n coloane cu elementele B(i,j)=1/(i+j-1)
m=input('linii m=')
n=input('coloane n=')
i=1; %se initializeaza indicele ”i” cu valoarea 1
while i<=m %se repeta de m ori de 1 la m
j=1; %se initializeaza indicele ”j” cu valoarea 1
while j<=n %se repeta de m x n ori
B(i,j)=1/(i+j-1);
j=j+1; %se indexeaza indicele ”j”
end
i=i+1; %se indexeaza indicele ”i”
end
B %afisez variabila B
Observație: este mai dificilă gestionarea indicilor în cazul folosirii ciclului while decât în cazul ciclului
for.
Bibliografie
1. ***, Fundamente de Matlab, telecom.etti.tuiasi.ro/
2. Iulian Lupea, Curs Matlab
3. Nicoleta Breaz ș.a., Modelarea matematică prin Matlab
4. ***, MATLAB User’s Guide, The Mathworks Inc., SUA