Bucle in Scilab

Bucla while

Descriere

Sintaxa:

Exemple:

Codul

j=5;while j>0,y(j)=j;j=j-1;end;y

produce listarea

 y  =
 
    1.  
    2.  
    3.  
    4.  
    5.

 

Bucla for

Descriere

Executa instructiunile din bucla pentru toate valorile pe care le poate lua variabila de control.  Clauza for se termina obligatoriu cu end.

Sintaxa:

 

Exemple:

Codul

for i=1:5,x(i)=6-i;end;x

produce afisarea automata
x  =
 
    5.  
    4.  
    3.  
    2.  
    1.

Instructiunea select

Descriere

In functie de valoarea variabilei de control poate transfera executia unor blocuri de instructiuni diferite.  Clauza select se termina obligatoriu cu end. Eu autilizeaza cuvantul cheie case si optional cuvintele cheie else si break.

Sintaxa:

 select expr,
   case expr1 then instructions1,
   case expr2 then instructions2,
   ...
   case exprn then instructionsn,
   [else instructions],
 end

Exemple:

Codul

for i=4:-1:1,select i,case 1 then 'a',case 2 then 'b',case 3 then 'c',else 'x',end;end;

produce

 ans  =
 
 x   
 ans  =
 
 c   
 ans  =
 
 b   
 ans  =
 
 a

In timp ce codul

for i=4:-1:1,select i,case 1 then 'a',case 2 then 'b',break, case 3 then 'c',else 'x',end;end;

produce

 ans  =
 
 x   
 ans  =
 
 c   
 ans  =
 
 b 

Observam ca instructiunea break intrerupe executia instructiunii select.

Instructiunea if

Sintaxa:

if expr1 then instructiuni
elseif expr2 then instructiuni
...
else instructiuni
end
Cuvinte cheie: if, then, elseif, else si end

Exemplu:

j=1;
for i=1:10, 
  if pmodulo(i,3)==0 then a(j)=0;
  elseif pmodulo(i,3)==1 then a(j)=1;
  else a(j)=2;end
  j=j+1;
end
for i=1:length(a),printf('a(%i)=%i\n',i,a(i)), end;

Executia acestui cod produce la consola urmatoarele:

a(1)=1
a(2)=2
a(3)=0
a(4)=1
a(5)=2
a(6)=0
a(7)=1
a(8)=2
a(9)=0
a(10)=1

Cornel Mironel Niculae @fizica.unibuc.ro 2008-2009

07 Dec 2009