matlab seminar 4 - structuri repetitive si conditionale

4
Matlab seminar 4 – structuri repetitive şi structuri condiţionale A. Structuri repetitive Comanda For for <expresie> for i=1:3 Pentru i luând valori de la 1 la 3 <comenzi> j=i*3 j egal cu i*3 (pe rand j=3, j=6, j=9 end end Exemple a) Suma numerelor de la 1 la 7 b) Produsul numerelor de la 1 la 7 j=0 j=1 for i=1:7 for i=1:7 j=j+I j=j*i end end c) Calculaţi suma pătratelor numerelor de la 1 la 10 prin două metode Metoda cu şiruri i=1:10 j=i.^2 – se foloseşte punctul val=sum(j) Metoda cu structuri repetitive j=0 for i=1:10 j=j+i^2 – nu se foloseşte punctul end Structuri nested (for în for) Evaluaţi expresia s=0 for p=1:3 for j=1:6 s=s+j^p end end Obs! Fiecare comandă for se închide cu propriul end B. Structuri condiţionale Comanda If

Upload: anca-axinte

Post on 24-Oct-2015

29 views

Category:

Documents


0 download

DESCRIPTION

mecanica

TRANSCRIPT

Page 1: Matlab Seminar 4 - Structuri Repetitive Si Conditionale

Matlab seminar 4 – structuri repetitive şi structuri condiţionale

A. Structuri repetitiveComanda Forfor <expresie> for i=1:3 Pentru i luând valori de la 1 la 3<comenzi> j=i*3 j egal cu i*3 (pe rand j=3, j=6, j=9end end

Exemplea) Suma numerelor de la 1 la 7 b) Produsul numerelor de la 1 la 7j=0 j=1for i=1:7 for i=1:7j=j+I j=j*iend end

c) Calculaţi suma pătratelor numerelor de la 1 la 10 prin două metodeMetoda cu şirurii=1:10j=i.^2 – se foloseşte punctulval=sum(j)Metoda cu structuri repetitivej=0for i=1:10j=j+i^2 – nu se foloseşte punctulend

Structuri nested (for în for)

Evaluaţi expresia

s=0for p=1:3for j=1:6s=s+j^pend endObs! Fiecare comandă for se închide cu propriul end

B. Structuri condiţionaleComanda Ifif <condiţie1> Dacă se îndeplineşte condiţia 1, se execută primul set de comenzi<comenzi1>elseif <condiţie2> Dacă nu se îndeplineşte condiţia 1 dar se îndeplineşte condiţia 2, se<comenzi2> execută cel de-al doilea set de comenzielse Dacă nu se îndeplineşte niciuna dintre condiţii, se execută cel de-al<comenzi3> treilea set de comenziend

Operatori condiţionali < > <= >= = = ~=mai mic mai mare mai mic sau egal mai mare sau egal egal diferit

Page 2: Matlab Seminar 4 - Structuri Repetitive Si Conditionale

Obs! == (egal egal) reprezintă o condiţie. Expresia x=1 înseamnă că variabila x primeşte valoarea 1, însă expresia x = = 1 testează dacă variabila x are valoarea 1

Operatori logicifie a, band(a,b) – şi logic – dacă şi a şi b sunt adevărate atunci and(a,b) e adevărat (expresia ia valoarea 1) or(a,b) – sau logic – dacă a sau b sunt adevărate atunci or(a,b) e adevărat (expresia ia valoarea 1)xor(a,b) – sau exclusiv – dacă a diferit de b, atunci xor(a,b) e adevărat (expresia ia valoarea 1)not(a) – dacă a e adevărat, atunci not(a) e fals şi viceversa

ExempluConstruiţi condiţia “adevărat pentru x între 1 şi 2 sau x mai mare sau egal decât 4”|a=and(x>1,x<2)b=(x>=4)c=or(a,b)

Aplicaţie

Să se calculeze valorile funcţiei pentru x luând valori în intervalul -1 şi 3,

din 0.1 în 0.1

for x=-1:0.1:3if x>=0 & x<=1f=xelseif x>1 & x<=2f=2-xelsef=0endend

Dacă problema ne-ar fi cerut să facem graficul funcţiei, lucrurile s-ar fi complicat. Am avea nevoie de un contor pentru funcţia noastră, fie acesta i. Codul ar arăta aşa:i=0for x=-1:0.1:3i=i+1if x>=0 & x<=1f(i)=xelseif x>1 & x<=2f(i)=2-xelsef(i)=0endend

Acum ar trebui doar să trasăm graficul, deci x=-1:0.1:3 (definim pe x ca şir), plot(x,f)

Comanda While

Page 3: Matlab Seminar 4 - Structuri Repetitive Si Conditionale

while<condiţie> cât timp se îndeplineşte condiţia<comenzi> se execută lista de comenziend

ExempluScrieţi valorile lui pentru toate numerele naturale x ce satisfac relaţia

x=1while disp( )x=x+1end

Comanda BreakComanda Break “sparge” structura repetitivă

Exemplux=0while 1 = = 1x=x+1 Observăm că dacă nu ar exista break, ciclul nostru s-ar repetaif x>10 la infinit, deoarece întotdeauna 1 va fi egal cu 1breakendend