Matlab - laborator 2
instructiuni si functii de control (I)
Operatori relationali
Operator |
Semnificatie |
Observatii |
< |
mai mic |
compara doar partea reala a operanzilor; ignora partea imaginara |
<= |
mai mic sau egal |
compara doar partea reala a operanzilor; ignora partea imaginara |
> |
mai mare |
compara doar partea reala a operanzilor; ignora partea imaginara |
>= |
mai mare sau egal |
compara doar partea reala a operanzilor; ignora partea imaginara |
identic 10210e424k |
trateaza atāt partea reala cāt si cea imaginara |
|
diferit |
trateaza atāt partea reala cāt si cea imaginara |
sunt utilizati pentru a compara doua matrice de dimensiuni egale, element cu element;
returneaza o matrice cu aceeasi dimensiune a matricelor care se compara, cu elemente 1 atunci cānd relatia este adevarata si cu elemente 0 atunci cānd relatia este falsa;
forma generala de utilizare:
rezultat = expresie_1 oper_rel expresie_2
Exemple:
A=[1 2 3;4 5 6;7 8 9];
B=[0 2 4; 3 5 7;6 8 10];
C=A<B
D=A<=B
E=A>B
F=A>=B
G=A==B
H=A~=B
A=[1+i 2+3i 3-5i;4+4i 5 6-i;7-2i 8+i 9];
B=[0-i 2+3i 4-2i; 3 5+i 7+3i;6+6i 8-i 10];
C=A<B
D=A<=B
E=A>B
F=A>=B
G=A==B
H=A~=B
Operatori logici
Operator |
Simbol |
Prioritate |
NU (NOT) | ||
sI (AND) |
& | |
SAU (OR) |
compara doua matrice element cu element;
operatorii & si | returneaza 1 (Adevarat) pentru orice valoare diferita de zero si 0 (FALS) pentru valoare nula;
operatorul ~ (complementul logic) returneaza 0 daca A este diferit de 0 si 1 daca A este nul;
operatorii & si | au prioritate mai mica decāt operatorii relationali si aritmetici.
Exemple:
A=[1 2;5 6;0 0];
B=[3 0;4 0;5 0];
C=~A
D=A&B
E=A|B
F=~A<B
H=~(A<B)
G=A<B&A~=B
I=(A<B)&(A~=B)
Instructiunea "for"
for contor=expresie
grup_de_instructiuni
end
"expresie" este, de cele mai multe ori de forma:
i=valoare_initiala:pas:valoare_finala
daca pasul este omis, se considera ca are valoarea 1.
Exemple:
1. Sa se construiasca un vector avānd ca elemente patratele primelor 10 numere naturale nenule.
for i=1:10
A(i)=i^2;
end
disp(A)
clear
2. Sa se construiasca un vector avānd ca elemente patratele primelor 10 numere naturale nenule pare.
for i=2:2:20
A(i)=i^2;
end
disp('A=')
disp(A)
for j=
B(j)=A(2*j);
end
disp('B=')
disp(B)
clear
Instructiunea "while"
while expresie
grup_de_instructiuni
end
"expresie" este, de cele mai multe ori de forma:
expresie_1 operator_relational conditie_2
daca expresia este īntotdeauna adevarata logic, bucla devine infinita; iesirea dintr-o bucla infinita se face fortat, prin apasarea simultana a tastelor Ctrl si C.
Exemple:
1. Sa se calculeze suma numerelor naturale consecutive pāna cānd aceasta depaseste valoarea 50.
s=0;
i=0;
while s<=50
s=s+i;
i=i+1;
end
disp('Suma primelor ');
disp(i-1);
disp(' numere naturale este ');
disp(s);
clear
2. Sa se īmparta numarul 500 succesiv la 2, pāna cānd rezultatul devine mai mic decāt 2. Sa se afiseze acest rezultat.
s=500;
while s>2
s=s/2;
end;
disp(s)
clear
Instructiunea" if":
a) Instructiunea" if" simpla:
if expresie_logica
grup_de_instructiuni
end
b) Clauza "else"
if expresie_logica
grup_de_instructiuni_1
else
grup_de_instructiuni_2
end
c) Clauza "elseif"
if expresie_logica_1
grup_de_instructiuni_1
elseif expresie_logica_2
grup_de_instructiuni_2
elseif expresie_logica_(n-1)
grup_de_instructiuni_(n-1)
else
grup_de_instructiuni_n
end
Exemple:
1. Sa se numere elementele pozitive nenule ale unui vector dat si sa se afiseze rezultatul.
A=[1 6 -2 8 -5 -3 2 0 9];
s=0;
for i=1:length(A)
if A(i)>0
s=s+1;
end;
end;
disp('Numarul de elemente pozitive nenule ale vectorului:');
disp(s)
2. Sa se precizeze, pentru fiecare din elementele unui vector de numere naturale dat, daca sunt pare sau impare.
A=[1 6 3 8 15 12 2 0 9];
for i=1:length(A)
if rem(A(i),2)==1
disp('Impar')
else
disp('Par')
end;
end;
clear
3. Sa se numere separat elementele pozitive nenule, elementele nule si elementele negative nenule ale unui vector dat si sa se afiseze rezultatele.
A=[1 -6 3 -8 15 -12 2 0 9];
s=0;
t=0;
u=0;
for i=1:length(A)
if A(i)>0
s=s+1;
elseif A(i)==0
t=t+1;
else
u=u+1;
end;
end;
disp('Numarul elementelor pozitive nenule:');
disp(s);
disp('Numarul elementelor nule:');
disp(t);
disp('Numarul elementelor negative nenule:');
disp(u);
clear
Instructiunea "break"
break
se utilizeaza pentru a iesi dintr-o bucla "for" sau "while" īnainte ca aceasta sa se fi terminat;
īn cazul ciclurilor imbricate, "break" realizeaza iesirea din ciclul interior.
Exemplu:
Sa se construiasca un vector B ale carui elemente reprezinta radacinile patrate ale elementelor unui vector A dat. Daca vectorul A are valori negative printre elemente, sa se īntrerupa executia programului.
A=[1 9 4 25 -6 36]
for i=1:length(A)
if A(i)<0
break;
end
B(i)=sqrt(A(i))
end
Exercitii propuse:
1. Sa se construiasca si sa se afiseze vectorul cu elementele de forma , k = 1.10. Sa se afiseze numarul elementelor mai mici ca 0.02 .
2. Sa se scrie un program care aduna elementele unui vector, pāna la īntālnirea unui numar mai mare ca 100. Sa se afiseze suma calculata si numarul elementelor totalizate.
3. Sa se construiasca matricea cu elementele de forma , i = 1.5, j = 1.5.
4. Sa se construiasca un vector B pornind de la un vector A, astfel:
daca elementul corespunzator din vectorul A este strict mai mare ca 4, elementul vectorului B se calculeaza ca radacina patrata a acestuia;
altfel, elementul corespunzator din vectorul B are valoarea 0.
Sa se numere elementele nule ale vectorului B
|