Indice Scilab

 

A.4.4.1 Herramientas de programación

Scilab soporta una completa lista de herramientas de programación incluyendo comandos repetitivos y condicionales.

 

A.4.4.1.1 Sentencias de comparación

En las sentencias condicionales se pueden utilizar seis operadores que permiten comparar datos del mismo tipo:

== o =  igual a

<          menor que

>          mayor que

<=       menor o igual que

>=       mayor o igual que

     <> o = distinto de

Existen dos tipos de sentencias condicionales en Scilab:

--> x=-2

--> if x>0 then,y=-x,else,y=x,end

y =

      -2.

--> x=6; if x>0 then,y=-x,end

y =

      -6.

--> a=1;b=2;

--> if a==b then, c=a+b, else, c=a-b, end

c =

      -1.

--> a=2; if a==b then, c=a+b, else, c=a-b, end

c =

      4.

--> b=5;if a==b then,c=a+b,elseif a>b then,c=a-b,else,c=b-a,end

c =

      3.

--> x=-1; select x, case 1, y=x+5, case -1, y=sqrt(x), end

y =

        i

 A.4.4.1.2 Sentencias repetitivas

Existen en Scilab dos sentencias repetitivas: for y while.

 

--> x=1;for k=1:4, x=x*k, end

x =

      1.

x =

      2.

x =

      6.

x =

      24.

--> x=1;for k=[-1 3 0], x=x+k, end

x =

      0.

x =

      3.

x =

      3.

--> x=1; while x<14, x=x*2,end

x =

      2.

x =

      4.

x =

      8.

x =     

      16.

Se puede utilizar el comando break para interrumpir la ejecución de una sentencia repetitiva.

--> for k=1:3,for j=1:4, ...

--> if k+j>4 then,break,else,disp(k), ...

--> end,end,end

      1.

       1.

       1.

       2.

       2.

       3.

 

A.4.4.2 Definición y utilización de funciones

Como se explicó anteriormente se pueden definir funciones directamente en el entorno de Scilab, aunque es conveniente la creación de las funciones en un fichero aparte que contenga todas las definiciones de funciones realizadas por el programador.

 

A.4.4.2.1 Estructura y descarga de funciones

La estructura de una función tiene el siguiente formato:

Function [y1,y2,yn]=name(x1,x2,xm)

.

.

     .

 

Donde name sería el nombre de la función, las variables xi los argumentos de entrada de la función, e yi los de salida. En las líneas que siguen al encabezamiento se escribiría el cuerpo de la función, esto es, una serie de instrucciones que ejecutan las acciones asociadas a la función definida.

Por ejemplo una función que calcule el factorial sería:

Function [y]=factorial(x)

          x=int(x);

          if x<0 then,

                 disp(’No esta definido el factorial de numeros negativos’),        // escribe en pantalla el texto indicado

                 y=0,

          else,

                 y=1,

                 for j=1:x,y=y*j,end,

                end,

 

Si esta función estuviera escrita en un fichero de nombre f_mat.sci para poder ser utilizada se deberá descargar al entorno Scilab mediante la función getf:

--> exists(’factorial’)                     // detecta si la función está definida (1.) o no (0.)

ans =

      0.

--> getf(’f_mat.sci’)                     // descarga de la función en el entorno Scilab

--> x=6/factorial(5)

x =

      0.05

--> z=fact(-2)                              //No esta definido el factorial de numeros negativos

z =

      0.

Como ya se dijo anteriormente se pueden definir directamente en el entorno Scilab utilizando la función deff.

--> deff(’[y]=signo(x)’,’if x>0 then, y=1;else,y=-1;end’)

--> signo(5)

ans =

      1.

--> signo(-3)

ans =

      -1.

 

A.4.4.2.2 Variables globales y locales

Las variables definidas dentro de una función son locales a ella y dejan de existir al finalizar la ejecución de la misma. Las variables definidas en el entorno de trabajo son globales a todas las funciones que se puedan ejecutar desde dicho entorno.

 

A.4.4.2.3 Comandos de funciones especiales

Scilab tiene varias funciones especiales para su uso exclusivo en funciones, como pueden ser: