Scilab, Funciones en Linea

 

Funciones en Línea (Funcion deff)

En lugar de utilizar los comandos function y endfunctions, para definir funciones, también se puede utilizar la función deff, la cual tiene la siguiente sintaxis:

deff(‘String para la definición de la función’, ‘ string para el cuerpo de la función, ‘string para indicar si esta compilada la función’).

El String para definir la función está integrado por:

‘[out] = Nombre_Función(in)’

El string para el cuerpo de la función está integrado por:

‘out=expresión’

El tercer parámetro puede tomar dos valores ‘c’, si la función esta compilada y ‘n’ si la función no está compilada. Cuando no se coloca el tercer parámetro de la función deff, se toma como valor predeterminado que la función es compilada.

La ventaja de este tipo de función es que puede ser utilizadas para funciones sencillas, sin necesidad de crear un archivo para la función.

Ejemplo:

deff(‘y=funct(x)’, ‘y=x^2+2’)

funct(3.5)

ans=

14.25

Funciones Complejas con Múltiples Líneas

A pesar de que la función deff se utiliza para escribir funciones de forma rápida, pueden escribirse funciones más complejas, que tengan varias líneas de códigos. Para hacer esto se pueden utilizar las siguientes reglas:

· Se utilizan comas para separar instrucciones.

· Se utiliza el punto y coma para separar instrucciones y evitar que se muestren en pantalla resultados preliminares.

Se utilizan dos puntos para indicar la continuación de línea.

A continuación, se muestra un ejemplo del uso de la función deff con múltiples instrucciones.

deff(‘[A, P]=circular(r)’, ‘A=%pi*r^2; ..

P=2*%pi*r; ‘)

[Area, perimetro]=circular(2)

Perimetro =

12.566371

Area =

12.566371

Funciones Llamando a otras Funciones

Una función puede llamar a otras funciones, si estas están disponibles en la sesión de Scilab, ya sea porque ha sido creada o si ha sido cargada utilizando cualquiera de los métodos para ese propósito.

Vamos a crear una función para calcular el área y perímetro de un cuadrado de longitud ‘a’.

deff(‘[Ac, Pc]=cuadrado(a)’, ‘Ac=a^2; ..

Pc=4*a;’)

Ahora vamos a crear una función que va a llamar a lar funciones ya creadas circular( r) y cuadrado(a).

deff(‘[Acirc, Acuad]=figuras(a)’, ..

‘Acirc=circular(a); ..

Acuad=cuadrado(a); ‘)

[circ, cuad] = figuras(2)

cuad =

4.

circ =

12.566371

Anuncios

Scilab, Utilizando Funciones

 

Conceptos Generales

Una función en Scilab es un procedimiento que se utiliza para agrupar un conjunto de pasos dentro de un contenedor, limitado por los comandos function y endfunction. La ventaja de la función es que es reusable, y permite la agrupación de múltiples líneas de instrucciones en un procedimiento, que puede ser llamado con una sola línea con el nombre de los argumentos de salida, el nombre de la función y los argumentos de entrada.

Definiendo Funciones

La sintaxis de una función es la siguiente

function [Salida1, Salida2, ….] = nombre_función(par1, par2, ….)

Instrucción

Instrucción

Salida1= expresión

Salida2 = expresión

endfunction

El encabezado de la función comienza con el comando function, seguido del listado de las variables de salida encerradas entre corchetes y separadas por comas; se coloca un signo de igual, y luego un nombre para la función y entre paréntesis se colocan el listado de variables de entradas (parámetros de entrada), separados por comas.

El cierre de la función consiste en el comando endfunction. Entre los comandos de inicio y de cierre de la función se crea un contenedor de instrucciones, que forman el cuerpo de la función. Dentro del cuerpo de la función se colocan instrucciones para calcular las variables de salidas. Deben colocarse instrucciones donde se le asignen valores a estas variables.

En la siguiente figura se muestra la estructura general de una función

clip_image002

Los parámetros de entrada se introducen en el lado derecho de la ecuación y los parámetros de salida se colocan en el lado izquierdo de la ecuación, estos van encerrados entre corchetes y separados por coma.

La función más sencilla en Scilab tiene un solo parámetro de entrada y un solo parámetro de salida. En este caso el único parámetro de salida puede colocarse sin corchetes.

function y = f(x)

Cuerpo de la función

y= expresión

endfunction

Como ejemplo podemos construir una función que calcule la siguiente función de un polinomio segundo grado: f(x)=x2 + 3x +25

function y = f(x)

y= x2 + 3x +25

endfunction

Para utilizar esta función solamente tendríamos que ingresar el nombre de la función y el argumento de entrada entre paréntesis.

f(2)

ans=

35

Una función con dos parámetros de salida se muestra a continuación.

function [A, Peri] = circ(r)

A=%pi*r^2

Peri=2*%pi*r

endfunction

Esta función tiene dos parámetros de salida, A y Peri; y tiene un solo parámetro de entrada, r. El nombre de la función es circ.

Para hacer uso de esta función debemos introducir los argumentos de salida y los argumentos de entrada de la función. Es de resaltar que los nombres de los argumentos no tienen que ser iguales a los de los parámetros utilizados cuando se creó la función.

[Area, Perimetro] = circ(3)

Perimetro =

18.849556

Area=

28.274334

Aquí se observa que el orden en que se muestran las variables de salida, primero se muestra la última variable de la lista, y continua en orden inverso hasta la primera variable de la lista. También se observa que los argumentos tienen nombres diferentes a los parámetros:

Area (argumento) y A (parámetro de la función)

Perimetro (argumento) y Peri (parámetro de la función)

Si no se coloca un listado de argumentos, solo se mostrará el resultado de la variable correspondiente al primer parámetro definido en la lista de parámetros de salida de la función.

Por ejemplo

circ(3)  \\da como resultado

ans =

28.274334

Que corresponde con el parámetro A, que es el primero en la lista de parámetros de la función.

Formas de Definir una Función

Existen al menos tres formas de definir una función

1. Introducir la función en la ventana de la consola

2. Copiar la función de un archivo a la consola.

3. Creando un archivo con extensión sce. Importarlo desde la consola con el comando exec.

4. Introducir la función en la ventana del editor de Scilab (Sci-notes).

Introducir Función en la Consola

Una de las formas de crear una función es introducirla directamente en la consola, en forma interactiva. Una vez se ha introducido el comando function y se han definido los parámetros de salida, el nombre de la función y los parámetros de entrada y se da enter, Scilab reconoce que se introducirá una función y creará una nueva línea para introducir las instrucciones del cuerpo de la función cada vez que se da enter. Cuando se introduce el comando endfunction, Scilab sale del modo de ingreso de función y regresa al modo normal de edición de Scilab.

Esta forma de introducir tiene la desventaja de que al cerrar la sesión de trabajo la función se perderá, aunque puede guardarse la sesión y abrirse para utilizar la función que ha sido guardada en la sesión.

Este método es adecuado si la función no es muy complicada y solo tiene pocas líneas de código, una función de cuando máximo unas 5 o 6 líneas que puede ser construida rápidamente sobre la marcha.

Copiar la función de un archivo a la consola

Si tenemos un archivo de texto, en lugar de teclear la función directamente en la consola, podemos copiarla del archivo de texto y pegarla en la consola. La función se comportará como si la hubiésemos ingresado directamente en la consola.

En la siguiente figura se muestra una función que ha sido creada en el editor de texto (Bloc de notas).

clip_image004

Utilizando un simple editor de texto podemos crear funciones que podemos guardar como archivos txt, y luego abrirlos para copiarlos en la consola, esta es una mejora con respecto a teclear las instrucciones de la función directamente en la consola. Podemos crear funciones más complejas con mayor número de líneas y copiarlas desde el archivo a la consola.

Utilizando el comando exec para importar un archivo con extensión sce

En lugar de copiar de un archivo de texto a la consola existe una mejor alternativa. El archivo con la función o funciones se guardan con la extensión sce y posteriormente se importan a la consola con el comando exec.

La sintaxis es:

exec(“Dirección al archivo sce”)

clip_image006

Al procesarse el comando exec hace que se ejecute el contenido del archivo a la consola, como si hubiesen sido tecleados directamente en la consola. Si el archivo contiene muchas líneas de instrucciones se mostrarán en la consola, si no se desea que todo del contenido del archivo se muestre se puede utilizar el comando punto y coma (;) para que no se muestre.

exec(“C:\Users\Luis\Documents\EjemplosFuncion.sce”);

Introducir la función en la ventana del editor de Scilab (Sci-notes)

En lugar de introducir la función en la consola, se puede ingresar en la ventana del editor de Scilab, y de allí se puede guardar como un archivo con extensión sci o sce. Luego se ejecuta y es el equivalente del comando exec. El archivo de la función se cargará a la consola y se podrá utilizar como cualquier función.

clip_image008

Es una mejor alternativa para ingresar una función que crear la función en un editor de texto, ya que permite utilizar las facilidades edición y de auto completación que tiene el editor de Scilab.