Documente Academic
Documente Profesional
Documente Cultură
Anul I, AR+ITT
1.1 Instrucțiuni
help
more
doc
demo
format
1.2 Funcţii
plus()
uplus()
minus()
uminus()
mtimes()
times()
mpower()
power()
mldivide()
mrdivide()
rdivide()
eq()
ne()
lt()
gt()
le()
ge()
and()
or()
not()
xor()
any()
all()
bitand()
bitcmp()
bitor()
bitmax()
bitxor()
bitset()
bitget()
bitshift()
union()
unique()
intersect()
setdiff()
setxor()
ismember()
length()
sort()
sum()
prod()
min()
max()
mean()
geomean()
cumsum()
cumprod()
1|Page
Conf.dr.ing. Ovidiu-Aurelian Deteşan – Programare si limbaje I Curs 6. Instrucţiuni de control al ciclurilor
1.3 Caractere speciale
[]
, spațiu
;
:
1.4 Operatori
Aritmetici
Relaţionali
Logici
Pe biţi
Pe mulţimi
’
.’
1.5 Variabile
ans
pi
eps
i
j
inf
nan
2.1 Instrucțiuni
diary
save
load
edit
open
type
echo
2.2 Funcţii
size()
zeros()
ones()
eye()
rand()
randn()
diag()
magic()
sparse()
full()
spy()
round()
speye()
nnz()
issparse()
spones()
triu()
tril()
repmat()
find()
isprime()
nonzeros()
det()
inv()
2|Page
Conf.dr.ing. Ovidiu-Aurelian Deteşan – Programare si limbaje I Curs 6. Instrucţiuni de control al ciclurilor
edit()
open()
type()
input()
sscanf()
display()
disp()
sprintf()
[] (tabloul vid)
: (toate elementele)
%
%%
2.4 Operatori
’
.’
3.1 Instrucțiuni
3.2 Funcţii
sin()
cos()
plot()
title()
xlabel()
ylabel()
figure()
3.4 Operatori
4.1 Instrucțiuni
if-end
if-else-end
if-elseif-end
switch-case-otherwise-end
4.2 Funcţii
isprime()
isscalar()
num2str()
4.4 Operatori
3|Page
Conf.dr.ing. Ovidiu-Aurelian Deteşan – Programare si limbaje I Curs 6. Instrucţiuni de control al ciclurilor
5. Laborator 9, Laborator 10
5.1 Instrucțiuni
for-end
while-end
break
continue
return
5.2 Funcţii
factorial()
strcmpi()
str2num()
5.4 Operatori
4|Page
Conf.dr.ing. Ovidiu-Aurelian Deteşan – Programare si limbaje I Curs 6. Instrucţiuni de control al ciclurilor
Cu ajutorul instrucţiunilor de control al ciclurilor se poate executa în mod repetat un bloc de comenzi, revenind la
începutul blocului, în funcţie de o anumită condiţie. Pentru a executa blocul de comenzi de un număr specificat de
ori, se foloseşte instrucţiunea for. Pentru a executa repetitiv anumite instrucţiuni cât timp o condiţie continuă să
fie adevărată sau falsă, se foloseşte comanda while. Instrucţiunile continue şi break oferă un control suplimentar
asupra ciclurilor. Instrucţiunea return permite încheierea execuţiei programului.
Instrucţiunea for este folosită pentru executarea unui grup de instrucţiuni de un număr predeterminat de ori.
Corespunde structurii iterative din programarea structurată.
Sintaxă:
for i = vi:pas:vf
instrucţiuni
end
Descriere:
În momentul execuţiei instrucţiunii for, variabila i parcurge intervalul [vi, vf], cu pasul de parcurgere stabilit prin
pas. Pentru fiecare valoare a lui i, se execută în mod repetat una sau mai multe instrucţiuni.
Incrementul implicit este 1. În acest caz el nu mai trebuie specificat. Incrementul poate lua şi valori negative, caz
în care valoarea i descreşte.
Exemple:
1. Să se construiască şirul x, conţinând primele n puteri ale lui 2. Valoarea n se va citi de la tastatură.
5|Page
Conf.dr.ing. Ovidiu-Aurelian Deteşan – Programare si limbaje I Curs 6. Instrucţiuni de control al ciclurilor
return
end
%% calcul suma
for i = 1:n-1
for j=1:n-i
suma = suma + A(i, j);
end
end
%% afisare
disp(['Suma este: ', num2str(suma)])
Cazul 1
Introduceti matricea A:
[1 2 3 4;
5 6 7 8;
9 0 -1 -2;
-3 -4 -5 -6]
Suma este: 26
Cazul 2
Introduceti matricea A:
[1 2 3;
4 5 6]
Matricea nu este patrata!
Instrucţiunea while corespunde structurii repetitive condiţionate anterior, din programarea structurată.
Sintaxă:
while expresie
instrucţiuni
end
Descriere:
Instrucţiunea while este folosită pentru executarea unui grup de instrucţiuni în mod repetat, cât timp expresia de
control este adevărată.
Dacă expresie este evaluată la o matrice (nu este un scalar), atunci toate elementele acesteia trebuie să aibă
valoarea logică adevărat, pentru ca execuţia să continue.
Exemple:
1. Să se determine primul număr întreg n pentru care n! este un număr cu 50 de cifre. Se va folosi funcţia
factorial().
Numarul este: 41
n! = 33452526613163803000000000000000000000000000000000
6|Page
Conf.dr.ing. Ovidiu-Aurelian Deteşan – Programare si limbaje I Curs 6. Instrucţiuni de control al ciclurilor
Sintaxă:
break
Descriere:
Instrucţiunile care apar după instrucţiunea break, din corpul unui ciclu for sau while, vor fi ignorate. Următoarea
instrucţiune care se execută este cea care urmează după instrucţiunea end, de închidere a ciclului.
Exemple:
1. Să se citească de la tastatură un şir de maxim 30 de caractere care să nu conţină caracterul punct (.). Citirea se
va încheia dacă se introduce caracterul punct.
Instrucţiunea continue transferă controlul următoarei iteraţii a unui ciclu for sau while.
Sintaxă:
continue
Descriere:
Instrucţiunile care rămân în corpul unui ciclu, după instrucţiunea continue, vor fi ignorate. Execuţia se reia de la
începutul ciclului unde a fost întâlnită instrucţiunea continue.
Exemple:
1. Să se citească de la tastatură un şir de 10 de caractere. În cazul în care se citeşte caracterul punct (.), acesta se
va ignora.
7|Page
Conf.dr.ing. Ovidiu-Aurelian Deteşan – Programare si limbaje I Curs 6. Instrucţiuni de control al ciclurilor
Sintaxă:
return
Descriere:
Instrucţiunea return, de control al terminării programului, permite ieşirea din program din orice punct al său,
înainte de punctul normal de terminare.
return mai este folosit şi pentru a incheia modul keyboard. (În versiunile mai noi de MATLAB, în acest scop se
folosește instructiunea dbcont).
. Punct zecimal
. Operaţii cu tablouri
Operaţiile multiplicative element cu element sunt obţinute folosind operatorii prefixaţi cu punct: .* , .^ , ./ , .\ sau
.'. De exemplu, C = A ./ B este matricea având elementele c(i,j) = a(i,j)/b(i,j).
( ) Parantezele rotunde
Sunt folosite pentru a indica precedenţa în expresii aritmetice şi pentru a cuprinde argumentele funcţiilor. Mai
sunt folosite pentru a delimita indicii vectorilor şi matricelor.
8|Page
Conf.dr.ing. Ovidiu-Aurelian Deteşan – Programare si limbaje I Curs 6. Instrucţiuni de control al ciclurilor
Dacă X şi V sunt vectori, atunci X(V) reprezintă concatenarea elementelor X(V(1)), X(V(2)),..., X(V(N)), unde
dimensiunea lui X(V) este 1xN dacă X este un vector linie, sau Nx1 dacă X este un vector coloană. Componentele
lui V trebuie să fie întregi şi sunt folosite pe post de indici. Dacă oricare dintre indici este mai mic decât 1 sau mai
mare decât lungimea lui X, va fi afişat un mesaj de eroare.
Parantezele sunt suportate de toate tipurile de date MATLAB, incluzând tablourile tradiţionale în dublă precizie,
precum şi structurile, celulele şi tablourile de caractere.
Exemple:
X(3) este al treilea element al lui X.
X([1 2 3]) reprezintă primele trei elemente ale lui X.
Dacă X are N componente, expresia X(N:-1:1) le reprezintă în ordine inversă.
X(X>0.5) returnează elementele lui X care sunt > 0.5.
Acelaşi mod de adresare indirectă este utilizat în matrice şi tablouri. Dacă V are M componente şi W are N
componente, atunci A(V,W) este matricea MxN formată din elementele lui A, ale cărui indici sunt elementele lui V
şi W. De exemplu, A([1,5],:) = A([5,1],:) interschimbă liniile 1 şi 5 ale lui A.
Apelare funcţii
nume_functie(par_de_intrare)
[ ] Parantezele pătrate
Exemple:
[6.9 9.64 sqrt(-1)] este un vector cu trei elemente separate prin spaţii.
[6.9, 9.64, sqrt(-1)] reprezintă acelaşi lucru.
Vectorii [1+i 2-i 3] şi [1 +i 2 -i 3] nu sunt identici. Primul are trei elemente, iar al doilea cinci.
[11 12 13; 21 22 23] este o matrice 2x3. Caracterul (;) marchează sfârşitul primei linii.
, Virgula
Este folosită pentru a separa indicii matricelor şi argumentele transmise funcţiilor De asemenea, delimitează
instrucţiunile în liniile cu mai multe instrucţiuni.
Se folosește și pe post de separator al elementelor, la definirea de vectori linie sau linii de matrice.
; Punct virgulă
Se utilizează în interiorul parantezelor pătrate pentru a indica sfârşitul liniilor într-o matrice. Mai este folosit după
o expresie sau instrucţiune atunci când se doreşte suprimarea afişării rezultatului în fereastra de comenzi.
: Două puncte
Este unul dintre cei mai utili operatori în MATLAB. Creează vectori, indici de tablouri şi iteratori pentru ciclurile
for.
Operatorul (:) foloseşte următoarele reguli pentru crearea vectorilor cu elemente echidistante:
j:k este la fel cu [j,j+1,...,k]
j:k este vid dacă j > k
j:i:k este la fel cu [j,j+i,j+2i, ...,k]
j:i:k este vid dacă i == 0, dacă i > 0 şi j > k, sau dacă i < 0 şi j < k,
9|Page
Conf.dr.ing. Ovidiu-Aurelian Deteşan – Programare si limbaje I Curs 6. Instrucţiuni de control al ciclurilor
A(:,j) este coloana j a matricei A
A(i,:) este linia i a matricei A
A(:,:) este tabloul bidimensional echivalent. Pentru matrice, este acelaşi lucru cu A.
A(j:k) reprezintă elementele A(j), A(j+1),...,A(k)
A(:,j:k) reprezintă A(:,j), A(:,j+1),...,A(:,k)
A(:,:,k) este pagina k a tabloului tridimensional A.
A(i,j,k,:) este un vector din tabloul A cu patru dimensiuni. Vectorul include: A(i,j,k,1), A(i,j,k,2),
A(i,j,k,3) etc.
A(:) reprezintă toate elementele lui A, privite ca o singură coloană. În partea stângă a unei instrucţiuni
de atribuire, A(:) umple tabloul A, păstrându-i forma iniţială. În acest caz, membrul drept al
instrucţiunii trebuie să conţină acelaşi număr de elemente ca şi A.
Exemple:
Folosirea operatorului (:) cu întregi,
D = 1:4
generează
D =
1 2 3 4
Folosirea operatorului (:) pentru crearea unui vector cu un increment real între valoarea iniţială şi cea finală,
E = 0:.1:.5
produce
E =
0 0.1000 0.2000 0.3000 0.4000 0.5000
Completare:
>> M4=magic(4)
M4 =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> A=1:16
A =
1 2 3 4 5 6 7 8 9 10 11 12 13 14
15 16
>> M4(:)=A
M4 =
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
10 | P a g e