| 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>