Herramientas en GNU/Linux para estudiantes universitarios: La herramienta de cálculo científico YACAS | ||
---|---|---|
Anterior | Capítulo 7. Programación | Siguiente |
Veamos ahora como crear nuestras propias funciones con todos los recursos que hemos visto de YACAS:
Siempre que programemos, independientemente del lenguaje, es conveniente la utilización de comentarios. Esto nos facilitará la depuración y/o ampliación del código. Especialmente si hace mucho tiempo que no lo utilizamos.
Los comentarios en YACAS son como en lenguaje C, se considerará comentario todo aquello que esté entre /* y */. YACAS también admite comentarios al estilo C++, es decir será comentario todo lo que se encuentre después de // y hasta el final de linea.
Podemos crear bloques de código de dos formas:
Utilizando [ ], cada instrucción deberá ir seguida de un punto y coma.
In> [a:=1;b:=2;c:=3;] Out> 3; In>
Utilizando Prog, cada instrucción ira seguida por una coma.
In> Prog(a:=1,b:=2,c:=3) Out> 3; In>
Hay veces que es necesario conocer en que fichero tenemos almacenada una función, eso se hace con FindFunction:
Vamos a crear una función que dada una lista pida al usuario un número y calcule la suma de todas las componentes de la lista elevadas al número introducido por el usuario.
La función sería:
MiFuncion(list):=[ /* DECLARAMOS LOCALES LAS FUNCIONES */ Local(poten, tmplist, tmpRes, i); /* PEDIMOS EL DATO */ Echo("Introduce la potencia: "); poten:=Read(); Echo(""); /* ELEVAMOS A LA POTENCIA ESPECIFICADA */ tmplist:=list^poten; tmpRes:=0; /* SUMAMOS TODOS LOS MIEMBROS DE LA LISTA */ For(i:=1,i<=Length(list),i++) tmpRes:=tmpRes+tmplist[i]; /* MOSTRAMOS LOS RESULTADOS */ Echo({"La suma es", tmpRes}); ];
Esta función la almacenaremos en un fichero mifuncion.ys que estará en nuestro directorio de scripts. Crearemos un fichero mifuncion.ys.def para que YACAS sepa donde se encuentra y evitar que este cargado en memoria. El fichero mifuncion.ys.def:
MiFuncion }
A continuación tendremos que modificar el fichero .yacasrc de la siguiente manera:
/* DIRECTORIO DE SCRIPTS */ DefaultDirectory("/home/jose/yacascripts/"); /* INDICA LA DEFINICION DE LA FUNCION */ CntDefLoad("yacascripts/funcion.ys");
En nuestro directorio de scripts tendremos que tener los ficheros mifuncion.ys y mifuncion.ys.def.
Al arrancar YACAS ya podremos utilizar la función:
In> MiFuncion({1,2,3,4}); Introduce la potencia: 6; La suma es 4890 Out> True; In>