Sunteți pe pagina 1din 71

Funciones o Programas dentro de la TI-nspire CX CAS

El Splashscreen del Student Software Como mencion en un post anterior, hay diferencias entre usar una funcin o usar un programa. El Program Editor no nos ayuda mucho, pero afortunadamente encontr un poco ms de informacin sobre el lenguaje, de donde obtuve esta pequea tabla que explica de manera sencilla en qu difieren: Program Function Return a result? No Yes Can be used in an expression? No Yes Can run in applications other than Calculator? No Yes Can use all the commands? Yes No Can use multiple variable types? Yes Yes Can access global variables? Yes Yes Can modify and create global variables? Yes No Can call subprograms? Yes No Can call functions? Yes Yes Bsicamente, si escribimos una funcin, tenemos que regresar un resultado -normalmente al final de sta-, lo cual es muy familiar para todo aqul que haya trabajado con lenguajes como C, Java, Python, etc. donde las funciones son usadas normalmente para devolver valores, incluso valores vacos, dependiendo de nuestras necesidades.

Pues bien, como en la calculadora trabajamos con pequeos Documentos, cada Documento dividido en Problemas -al menos 1 y mximo 30-, podemos crear aplicaciones ms o menos complejas, lo cual debe ser evidente desde que compramos la calculadora, pues esa informacin viene en el manual o folleto. Por si hay alguna duda, dejo un par de imgenes explicado, espero sean de ayuda:

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar Por qu es importante saber sobre los probemas y las hojas? Porque hay algo muy importante y es el mbito de una variable, lo cual significa la visibilidad de la misma, por lo que se aprecia el impacto que posee. Segn la tabla, un Programa puede crear y modificar variables Globales, estas pueden ser modificadas u obtenidas incluso despues de la ejecucin del mismo, mientras que en una funcin, todas las variables deben ser Locales, esto implica que una vez que termine la ejecucin de la funcin -o subrutina- no se puede acceder a esos valores, la nica manera de recuperar algo operado dentro de una funcin es mediante el valor de retorno. Haremos una funcin, llamada cuadrado, lo que har ser muy simple: Recibe un argumento, que ser llamado a, ste ser impreso en la pantalla utilizando Disp, posteriormente, se devolver el valor de a elevado al cuadrado. Se puede apreciar aqu:

Click en la Imagen para Ampliar

Ejecutarlo nos dar algo as:

Click en la Imagen para Ampliar Qu ventaja tiene esto? Podemos almacenar el valor que regresa la funcin cuadrado, en este caso, no se almacena, por eso se imprime en la pantalla con un separador. Si observamos las variables, con la tecla Var, veremos que a no es una variable a la que podamos acceder, los argumentos de una funcin son locales a la funcin, solamente valen dentro:

Click en la Imagen para Ampliar Vamos a hacer algo, dentro de la funcin, crearemos b, haremos que b obtenga el valor de a, y luego devolveremos b^2. El resultado, tras presionar b, es el mismo, tampoco podemos acceder a b, porque nos obliga a que b sea declarado como Local b si no, no nos deja usarlo.

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar Ahora, vamos a almacenar el valor que devuelve la funcin, para usarlo en otra cosa, tal vez en la misma funcin. Podremos asignar de las 2 maneras conocidas, como ya est utilizada dentro de la funcin la forma :=, usar la otra, utilizando Control+Var, activando el sto (de storage) en una variable llamada cosa.

Click en la Imagen para Ampliar Se puede apreciar que cosa s aparece como una variable, y que podemos usarla como argumento hacia la funcin y re-almacenar un valor en ella. Contamos con muchas funciones en el catlogo, que reciben argumentos y devuelven valores tiles, al igual que Disp, las podemos utilizar tanto en funciones como en programas (prcticamente todas de la misma manera) para tomar la mayor ventaja posible al resolver nuestros problemas, por ejemplo, cosa puede ser llamado desde otra hoja, ya sea de grficos, de clculo, cualquier otra. En un programa no podemos devolver un valor, pero podemos crear una variable global, accesible desde cualquier mbito sin problemas:

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar La variable b, declarada como el cuadrado de a, dentro del programa, tiene vida fuera de l. Dentro del programa se pueden utilizar variables Locales sin problema, para no llenar de variables al documento, sin embargo, no regresan un valor, por lo que muchas veces, el programa sera lo que intentaramos ejecutar y podramos crear funciones para no apelmazar demasiado cdigo, as como declarar Locales nuestras variables temporales, para que no estorben fuera de la ejecucin. En lo siguiente, se tomar el ejercicio Polinomios, se crear una funcin, una diferente asignacin y algunos trucos para terminar con un programa mucho ms til, espero hacerlo pronto. Saludos.

Propiedades de la Pantalla TI-nSpire CX CAS LUA

El Splashscreen del Student Software Vamos a ver, de momento hemos mostrado 1 mensaje en pantalla, luego fueron 2, modificando la fuente, tambin el color. Ahora, nos damos cuenta que colocar un texto puede ser fcil, pero entre ms cosas querramos mostrar en pantalla, ms difcil se hace colocarlas sin encimarse, adems qu pasa si queremos centrar un texto? qu pasa si no sabemos hasta dnde podemos mostrar algo en la pantalla? Pues ahora vamos a explorar las propiedades de la pantalla para asegurarnos de hacer las cosas bien. Al igual que en TI-BASIC, tenemos variables locales y globales, gracias a las cuales podemos manipular datos y conservarlos nicamente donde nos importa para facilitar el trabajo, as que deberamos procurar utilizarlas cada que podamos, para hacer costubre y lograr cdigos limpios. En este caso, utilizaremos como locales los valores de altura y ancho de la pantalla. Estas caractersticas las obtienemos del objeto window, que es un miembro de platfrom, al igual que en C, podemos obtener un sub-miembro de una estructura a partir de el operador punto y luego accedemos a un mtodo como ya lo habamos hecho, me explicar: estrctura.miembro:mtodo(argumentos) entonces, para obtener las dimensiones de la pantalla, basta con:

Click en la Imagen para Ampliar Vamos a analizar por lneas: 1. Declaramos la funcin on.paint, como ya habamos hecho 2. Creamos la variable local altura y la llenamos con lo que devuelve el mtodo heitgh() que pertenece a window, un miembro de platform. 3. Hacemos lo mismo que el punto anterior para el ancho de la pantalla, con width(). 4. Modificamos color. 5. Imprimimos en panalla el texto Altura: , concatenando ese texto utilizando dos puntos (..), lo cual funciona igual que en TI-BASIC. 6. Modificamos color. 7. Imprimimos en pantalla, de manera similar a la altura, el ancho de la pantalla. Si dividimos la pantalla (en PC o Calculadora) o cambiamos la vista a Vista de PC dentro de nuestro software, estos valores cambiarn, son totalmente dinmicos:

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar Cmo centras un texto? En lo horizonal, pues sencillamente tomas el centro, luego el tamao del texto, y distribuyes la mitad de un lado y la mitad del otro. Ahora, programando?.. de manera similar, como se ve aqu:

Click en la Imagen para Ampliar Al final, obtenemos:

Click en la Imagen para Ampliar Algo muy similar hacemos si lo queremos poner hasta la derecha de la pantalla, sencillamente tomamos el tamao de la pantalla, le quitamos el tamao del texto (entero) y ya :D

Click en la Imagen para Ampliar Y como vemos, la lgica funciona :P

Click en la Imagen para Ampliar Ahora, lo que har ser posicionar un texto en la esquina inferior derecha del documento, mostrando una curiosidad para m, que es crear una variable que contenga el objeto platform.window.

Click en la Imagen para Ampliar El cdigo cambi un poco, se llen de variables. Para ser un programa pequeo parecera incmodo, pero en programas ms grandes no se nota jaja. En este caso usamos getStringHeight para obtener el tamao del string y poder acomodar el texto sin que se saliera de la pantalla:

Click en la Imagen para Ampliar

Bueno, creo que se ha entendido un poco ms acerca de la sintaxis, he usado el autocompletado para mirar diferentes mtodos que existen, todo poco a poco va a ir teniendo ms sentido, como siempre, los primeros ejemplos son solo para agarrar familiaridad con el lenguaje y con las herramientas de las que disponemos, pronto har algo ms. Saludos.

Primer Programa LUA TI-nSpire CX CAS

El Splashscreen del Student Software Empecemos, como siempre con el Hola Mundo para poder empezar a familiarizarnos con el lenguaje. Para empezar, vamos a abrir nuestro TI-nSpire CAS Student Software para poder comenzar, tras lo cual lanzaremos el editor de scritps que nos ofrece la compaa, que, pese a no ser el mejor que existe, nos da un Autocompletado y nos deja ver en tiempo real el script como lo vamos creando :) As que vamos a ello. Para abrirlo, creamos un nuevo documento y aadimos un nuevo script desde el men insertar:

Click en la Imagen para Ampliar Se nos abre el editor de scripts y nos pide el nombre que tendr, para m, Hola Mundo LUA ya que as estar ms que explicado el sentido que tendr :P :

Click en la Imagen para Ampliar Ahora, tendremos a nuestra disposicin un pequeo editor de texto que resalta la sintaxis de este lenguaje con el que no me encuentro para nada familiarizado. no usa llaves ({ }) o un punto y coma (;) para terminar una lnea, tambin carece de una funcin de entrada o principal (main) que sea nuestro punto de partida al programa. Su sintaxis no es tan diferente a lo que es TI-BASIC, as que pese a todo espero acostumbrarme a usarla. Para declarar una funcin (o reescribirla) sencillamente debemos declarar la palabra reservada function, posteriormente entre parntesis los argumentos que sean necesarios, posteriormente la funcin y finalizamos con un end. Para nuestro primer script tenemos:

Click en la Imagen para Ampliar Exploremos a travs de las lneas: 1. Se declara la funcin con funcion, se le otorga el nombre on.paint, la cual se manda a llamar cada que se dibuja la pantalla, recibiendo un argumento llamado gc, que viene siendo el Graphic Context. 2. Dentro de la funcin, he dado una tabulacin para ayudarme a m a entenderlo mejor, no es necesaria y no se pone por defecto. Posteriormente utilizo el objeto gc, llamando a un mtodo que este objeto posee, entre los cuales tenemos el mtodo drawString, que recibe 3 argumentos: Texto a mostrar, direccin en x (de izquierda a derecha) y direccin en y (de arriba a abjo). La sintaxis es objeto:mtodo. 3. Terminamos el bloque de la funcin con la palabra reservada end. Con la combinacin de teclas Control+S o apretando el botn Establecer Script podemos ver el resultado del mismo en nuestro documento:

Click en la Imagen para Ampliar Se se puede notar, el documento ahora no posee ninguna caracterstica de notas, calculadora o nada que se le parezca, ahora no deja escribir y aunque presionemos cualquier tecla o hagamos cualquier especie de cambio dentro de esa hoja. no pasar nada :) Hemos tomado todo el control de la hoja con LUA, aunque si creamos una hoja que quede como 1.2, s va a poder ser utilizada como calculadora o como cualquier tipo de documento habitual, lo que nos ofrece una de las ventajas de usar este lenguaje, el combinar todo lo que ya tenemos a nuestra mano: Integrales, Derivadas, todas las funciones de la calculadora y todos los programas que podemos hacer en TI-BASIC combinarlos con LUA. Pero ya llegaremos a eso, no conozco mucho el lenguaje y espero que no se me juzgue muy duro por ir aprendiendo por mi cuenta. Saludos :)

Programacin con LUA en la TI-nSpire CX CAS

El Splashscreen del Student Software Hola a quien me lea, siendo ya vacaciones pienso retomar un poco el blog. Tengo que acabar algunas cosas de otras series que he hecho pero tambin quiero diversificar y empezar a aprender algo nuevo: Programacin con LUA. As es, adems del lenguaje TIBASIC (que seguir usando), la calculadora puede ser programada, de una forma ms poderosa utilizando un lenguaje diferente, el cual nos da acceso a cosas que TI-BASIC no nos da, como dibujar directamente en la pantalla, leer sensores -si se tienen-, contar tiempo y crear aplicaciones interactivas con el usuario de muy diferentes maneras. Qu necesitamos? Primero que nada, un editor de texto que soporte resaltar la sintaxis de LUA, para diferentes sistemas tenemos diferentes opciones, para Windows recomiendo Notepad++ o SublimeText, sin embargo, no es algo tan importante, dado que el software de Texas Instruments con el que hemos estado trabajando ofrece un editor de scripts que nos ayuda a probar su comportamiento antes de tenerlos terminados, el mismo ejemplo en los 3 editores sera:

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar Ahora cmo puedo correr mi script en la calculadora? Originalmente solo era posible en el editor de scritps de Texas Instruments, pero gracias a la creatividad de algunos programadores es posible escribir scripts y probarlos directamente desde la calculadora, para eso necesitamos alguno de estos 2 programas: Oclua o TIDE. El primero, Ocula (corto para On Calculator LUA) funciona de la siguiente manera: Abres Oclua.tns, abres una nueva pestaa donde se coloca un editor de notas, ah generas tu cdigo, luego presionas Control+A (para seleccionar todo) y luego Control+C (para copiar todo el texto), posteriormente se regresa a la primer pgina donde se debe hacer un Control+V para pegar el texto, que ser ejecutado en esa pgina.

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar Otra manera de tener LUA en la calculadora, al menos para poder programar en el camino es TIDE (TI-Integrated Development Environment), el cual nos ofrece una pgina de apuntes donde podemos escribir nuestro cdigo con la ventaja de que no es necesario hacer ms que escribir, ya que al cambiar a la pgina siguiente el cdigo corre automticamente (en caso de estar bien escrito) lo cual es ms cmodo que copiar/pegar en OCLUA.

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar Y si acab mi script, cmo lo convierto en un archivo que pueda ejecutar en mi calculadora sin problemas? Pues fcil, Oclua y TIDE no ofrecen esa opcin, tampoco el editor de scripts de Texas Instruments, pero s ofrecen unas Scripting Tools donde hay una especie de compilador, al cual solo hay que alimentar con el script y te devolver un archivo .tns para ejecutarlo en la calculadora sin problemas y sin que el cdigo est a la vista -por eso de las envidias-. Aqu la forma de cmo compilar:

Click en la Imagen Animada para Ampliar Al cargar el script te manda un aviso de que hay algo en el portapapeles, que viene siendo la informacin de tu programa, solamente necesitas ir a un documento nuevo, presionar Control+K (para seleccionar la pgina) y luego Control+V para pegar . y listo, ese documento tns siempre tendr la informacin de tu script, aunque desde luego es algo que queremos hacer hasta que ya estemos 100% comprometidos con nuestro trabajo, siempre guardando nuestro archivo .lua con el cdigo :) . Saludos.

Hola Mundo Renovado TI-nSpire CX CAS LUA

El Splashscreen del Student Software El primer programa siempre es el Hola Mundo, nos ensea la manera ms bsica de comunicarnos con el usuario final de nuestro programa, mostrar un simple mensaje, pero ahora vamos a cambiarlo un poco, aadiremos estilo al mensaje mostrado, as como aprenderemos un poco ms del entorno de programacin, vamos a ello: Primero vamos a aadir una nueva lnea a nuestro viejo programa, antes de la lnea del drawString, colocamos gc: y apretamos en nuestro teclado Control+BarraEspaciadora, gracias a lo cual nos saldr un pequeo men en el que podemos ver las capacidades que tenemos a nuestro alcance. En el momento en que hagamos esa combinacin de teclas podremos ver el autocompletado, auqnue a veces falla pues el programa no es realmente bueno, sin embargo, aqu una muestra:

Click en la Imagen para Ampliar Hasta abajo encontramos setFont, que es un mtodo que recibe 3 argumentos y nos ayuda a cambiar la fuente que estamos ocupando para mostrar un string en pantalla, cules fuentes? de momento solamente he encontrado serif y sansserif. El primer argumento es la fuente, el segundo el estilo (b para bold, i para italic, r para regular) y posteriormente el tamao. Digamos que escogemos mostrar 2 mensajes, cada uno con una configuracin diferente:

Click en la Imagen para Ampliar El resultado:

Click en la Imagen para Ampliar Se ve interesante, puede jugarse con todo ese tipo de configuraciones, pero hay una ms: Colores. As es, en las notas podemos ver una serie de colores para nuestros textos, pero desde LUA podemos tener an ms, ya que disponemos de toda la gama RGB de 8 bits para cada color. Un valor que va desde 0 a 256 para la combinacin de estos en un pixel.

Cmo podemos darle color? Con otra mtodo de gc :) setColorRGB, el cual recibe 3 documentos que son los colores para R, G y B (Rojo, Verde, Azul), vemos qu podemos hacer:

Click en la Imagen para Ampliar Desde luego, es ms fcil buscar una lista de colores con cdigos RGB para guiarnos, a no ser que queramos mover y mover las combinaciones a ver qu encontramos :P

Click en la Imagen para Ampliar

De momento es suficiente, ya aprendimos a personalizar mensajes, lo cual puede ser muy til, aunque de momento no le hemos dado demasiado uso, nos acercamos ;) Salud

Modificando el Hola Mundo TI-nspire

El Splashscreen del Student Software Bueno, ahora cambiaremos el Hola Mundo que habiamos programado para hacer un Hola Usuario, esto es, que le indiquemos un nombre y la calculadora nos enve un saludo :) Es algo muy simple y servir para ver un poco ms sobre el lenguaje, y es que ahora ocuparemos un argumento de nuestro programa. Bueno, empecemos. Tenamos algo as, con la interfaz tipo PC:

Click en la Imagen para Ampliar Vamos a modificarlo, en los parntesis de la primera lnea, aadiremos una variable que se llamara, para nuestro programa, nombre, as podremos saludar a un usuario :) Por lo que quedar as:

Click en la Imagen para Ampliar Y luego modificaremos la lnea 3, donde est el Hola Mundo, concatenaremos la variabe nombre para hacer que se muestre. La manera en que yo encontr que se ejecuta correctamente es aadiendo la variable con una coma (,) entonces el texto queda como se ve en la imagen:

Click en la Imagen para Ampliar Y al ejecutar, nos pedir que aadamos un argumento, dado que el programa est definido que recibe algo que, dentro, llamar nombre. Yo le puse Ren, que es como me llamo, aunque me lo da con minsculas (an tengo que aprender por qu), pero ya es un avance, la nica manera que me respeta la maysucla es ponerlo entre comillas, pero me las imprime tambin jaja.

Click en la Imagen para Ampliar Si no le pusiramos el argumento que ser tomado como nombre, nos da un error as:

Click en la Imagen para Ampliar Pese a estar bien escritos y pasado la revisin de sintaxis, nos podemos encontrar con problemas a posteriori, ya que el uso del programa es lo que nos ayuda a depuralo y predecir los errores que puede tener, de momento, dejaremos el Hola Mundo de lado y seguiremos con otras cosas. Saludos.
About these ads

Nmeros Complejos en la TI-nSpire CX CAS

El Splashscreen del Student Software Regresamos con pequeos tutoriales sobre la TI-nSpire CX CAS, en esta ocasin toca hablar sobre los nmeros complejos, los cuales aparecen en muy diferentes aplicaciones, en mi rea sobre todo para Fasores -representaciones complejas- de Voltaje y Corriente. El lgebra de nmeros complejos no es tan coplicada, pero es muy fcil equivocarse, ya que si bien la suma no supone ningn problema, obtener el inverso de una Matriz Compleja es un proceso delicado. As que vamos a ello.

Click en la Imagen para Ampliar Primero que nada, tenemos que aprender sobre notaciones, tenemos las notaciones: Rectangular, Trigonomtrica, Polar-exponencial y Polar. La calculadora maneja, por lo que he visto, todas menos la notacin Trigonomtrica. Para los que no lo sepan, el Plano de Argand o el Plano Complejo es muy similar al plano cartesiano, excepto que en la Abcisa

se tiene un eje que representa los Nmeros Reales y en la Ordenada se tiene un eje que representa los Nmeros Imaginarios, formando as, con un punto en cualquier parte del plano, un binomio (Real,Imaginario) el cual lo podemos representar de diversas formas. La representacin ms usual para representar a un complejo suele ser la rectangular: z = a + bi. Como se ve en el plano de la imagen ms arriba, estamos representando un punto z en el plano de Argand con las cordenadas a real y b imaginario. En la calculadora, es sencillo obtener esa representacin, solamente necesitamos acceder a la i especial, dado que si ocupamos la i del teclado, nos la tomara como una variable. Algo as:

Click en la Imagen para Ampliar Existen diversas funciones destinadas a manejar los nmeros complejos, las cuales aparecen en las Funciones de Nmero y las Funciones de lgebra.

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar Realmente no hay mucho qu decir respecto a ellas, si queremos usarlas podemos acceder a ellas a travs del men, el catlogo o aprendiendo el nombre de la funcin, por ejemplo, para obtener la magnitud de un nmero, no tenemos que hacer la suma del cuadrado de la parte real y la parte imaginaria (|z|= Raz ( a^2 + b^2 ) ), con las propias barras de magnitud lo podemos obtener. As como si queremos el complejo conjugado (z conjugado = a bi ), todo se maneja de manera nativa y muy sencilla.

Click en la Imagen para Ampliar Ahora, si bien en las configuraciones podemos especificar qu tipo de notacin nos interesa ocupar para los resultados, sta puede cambiar da manera explcita, esto es, ordenar que obtengamos un resultado en una notacin u otra. Si queremos ocupar un resultado en notacin Polar, pero no queremos manejar todo, sino solamente ese resultado en notacin

polar, podemos ocupar en caracter de conversin y escribir la palabra polar despus, as obtendremos la conversin explcita:

Click en la Imagen para Ampliar En la imagen podemos apreciar lo siguiente: En las primeras 2 conversiones, tenemos configurada la calculadora para trabajar con radianes, por eso ocupa la notacin Polarexponencial, que, para un nmero z = a + bi, sera |z|e^(angTan(b/a)). La primera operacin se hizo nicamente apretando enter (resultado tal cual debe ser), la segunda con Control+Enter (aproximar); Las ltimas 2 operaciones fueron realizadas con la calculadora configurada para trabajar con grados, idnticamente con Enter y luego Control+Enter. Para introducir un nmero complejo en notacin polar, lo cual es tremendamente comn, hay que tener en cuenta pocas cosas, lo imporante es matener la notacin. No importando la entrada, el resultado siempre se mostrar en la cul est configurada la calculadora (Rectangular para este caso), pero para la introduccin de polares utilizando grados. El motivo de la diferencia entre el uso de radiantes y el uso de grados, mientras que los radianes son usados como unidades de longitud, los grados no lo son. Existe una relacin fundamental, llamada Relacin de Euler, la cual no explicar porque me extendera demasiado. Si intentamos introducir un nmero en notacin polar, necesitamos tener cuidado, especialmente si lo hacemos con grados en lugar de radiantes, tenemos que usar el smbolo ngulo, el cual sacamos del catlogo de smbolos Control+Catlogo:

Click en la imagen para Ampliar Algo que me gusta hacer es poner los grados de forma implcita, lo cual obtenemos en el mismo catlogo de smbos -donde tambin se encuentra la i de imaginario- o en el minicatlogo de la tecla Pi donde sacamos por primera vez el smbolo i:

Click en la Imagen para Ampliar Y obtenemos esto como resultado:

Click en la Imagen para Ampliar En la imagen, se coloca un polar, magnitud 20, ngulo de 10 grados. Primero se saca el resultado exacto, luego la aproximacin. Pero qu pasa en el tercer caso? Nos da un error de sintaxis para el mismo nmero, con el mismo smbolo. porque cada que se ocupe un nmero complejo en notacin polar, debe ir entre corchetes, si no, la calculadora no lo acepa. Yo no saba eso y pas un mal tiempo en Anlisis de Circuitos Elctricos, porque no poda usar esos nmeros. Podemos realizar todo tipo de operaciones con estos nmeros, dejar algunos ejemplos que he utilizado en clase:

Click en la Imagen para Ampliar

El siguiente tutorial tendr sistemas de ecuaciones con nmeros complejos y posteriormente programas que los ocupen. De momento, me da gusto volver a escribir una entrada :D. Saludos

Programa Polinomios TI-nspire CX CAS

El Splashscreen del Student Software Bueno, ahora exploraremos algo muy importante dentro de este tipo de calculadoras, que es aprovechar la capacidad que tienen y crear programas que nos ayuden a automatizar apoyndonos de lo que ya existe. En este caso, tomaremos un polinomio simple, lo resolveremos (obtenermos sus races) y lo mostraremos factorizado, as haremos ms de 1 tarea a la vez, ya que cuando tenemos un polinomio con races reales o compejas, normalmente nos gusta obtener esos 2 datos. En fin, vamos a ello. Crearemos un nuevo programa, llamado Polinomios, y esta vez recibir 2 argumentos, el primero ser el polinomio a trabajar y el segundo ser la variable del mismo, por lo que tendremos algo as:

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar Y ahora, exploraremos el catlogo que existe en la calculadora para ver qu funciones tenemos pre-programadas y las ocuparemos. Para ello damos click en el icono del librito, y buscamos en las funciones de lgebra:

Click en la Imagen para Ampliar Tenemos Solve, Factor, Expand, las culaes, como se puede observar, ocupan sus propios argumentos, usaremos Solve para resolver el polinomio y mostraremos un mensaje con Disp, luego comprobamos la sintaxis y probamos con un polinomio, en mi caso, 3x^2 -x +10 =0, dado que Solve necesita una expresin igualada a 0, as tendremos que enviar muestros polinomios. Se observa muy bien en la imagen:

Click en la Imagen para Ampliar Hasta el momento, todo parece estar bien :) Ahora que ya imprimirmos las races de nuestro polinomio, otra cosa que nos conviene es factorizarlo, para lo que ocupamos nuevamente el librito y encontramos factor. Lo modificamos un poco para mostar los datos de forma ms agradable, y bueno, ahora hice un gif donde se obserba cmo aprovechar el cdigo preescrito en la parte de clculos, se selecciona un comando del historial, se da enter y as se arrastra hacia abajo, ya que usaremos lo mismo. Bueno, se entiende mejor en la imagen:

Click en la Imagen para Ampliar. Imagen animada Ahora nos dice qu expresin tenemos, nos la factoriza y nos entrega las races :) Si no tenemos bien configurado, y colocamos una expresin que nos devuelva complejos, estaremos en un problema, por lo que tambin se recomienda usar cSolve, la cual nos entrea un real de tener races reales y un complejo si hay races complejas.

Click en la Imagen para Ampliar Me gust mucho. Saludos.

Modificando el programa Polinomios TI-nspire CX CAS

El Splashscreen del Student Software Bien, ahora toca mejorar ese programa que se hizo hace algunos posts para poder darle una funcionalidad ms importante. Como se vio, el programa reciba 2 argumentos, un polinomio y la variable independiente de mismo, para que ejecutara sus funciones. Ahora, haremos que grafique dicho polinomio, hay muchos caminos, mostrar uno de los menos elegantes pero sencillos. Vamos a ello. Primero que nada, ocuparemos un comentario para anotar el uso de nuestro programa, para ello ocuparemos Control+Libera y escogeremos el smbolo ocupado para comentarios, como se puede apreciar:

Click en la Imagen para Ampliar Ah mismo se ve que el comentario est indicando qu tipo de accin deseamos que el usuario realice para utilizar el programa, lo cual se ver si buscamos el mismo en la librera (recordemos que este programa fue pblico, en la primer lnea se ve declarado como LibPub). Primeramente necesitbamos que el usuario introdujece el Polinomio igualado con 0 (esto es: X^2+x-2=0, por poner un ejemplo), pero para fines prcticos, evitaremos ese uso, ya que aprovecharemos tener una funcin F(x) sin igualacin para realizar nuestra grfica. Una vez hecho eso, crearemos una variable donde grabaremos el Polinomio igualado con 0 dado que as nos lo requieren las funciones para obtener sus races y su factorizacin, por lo que el cdigo se mirar as:

Click en la Imagen para Ampliar Hacemos algo muy simple, declaramos una variale local, llamda poli, en ella guardamos lo que tengamos en polinomio igualado a 0, esto es, si polinomio vala 3s^2+s-10, en poli

tendremos 3s^2+s-10=0. Gracias a eso, podemos ocupar las funciones factor y cSolve sin problemas, envindoles poli como primer argumento y variable como el segundo argumento. Ahora, hay varias maneras en las que podemos realizar una grfica, una muy simple sera crear una nueva variable, en este caso, global, y pasrsela a una hoja de graficacin. Crearemos la variale grafico y luego iremos a la pantalla de inicio para aadir una hoja de graficacin (que yo ya tengo como la 1.1), donde le diremos que la primer funcin (f1(x) ) est igualada a nuestra variable grafico. Y esto quedara as:

Click en la Imagen para Ampliar Si nosotros ocupamos un polinomio con la variable x, podemos obtener su grfica que se vera de esta forma:

Click en la Imagen para Ampliar Eso no es muy cmodo, ya que si factor y cSolve no dependen de la variable x, no hay motivo para obligar al usuario a introucir siempre expresiones que dependan de esa variable. Anduve buscando un poco en internet y no encontr mucha informacin para cambiar una variable dentro de una expresin, as que me decid hacer una funcin a la cual yo le enve un polinomio, la variable actual y la variable nueva. Para fines prcticos la nombr cambiarvariable, recice pol, a y b como argumentos.

Click en la Imagen para Ampliar Declaro 2 variables locales, ya que en una funcin no pueden ser de otro tipo, la primera ser un contador, la segunda ser mi polinomio resultado. Igualo el polinomio de resultado a 0, por si acaso, y lueg comienzo un ciclo For con la siguiente informacin: Contador: e;Inicio: 1; Fin: Grado del Polinomio +1; Incremento del Contador en cada ciclo: 1. Si, por ejemplo, envo un polinomio de grado 2, se repetir 3 veces, recordando que hay n+1 miembros en un polinomio de grado n. A pol2 le ser asignado el antiguo valor y se le sumar la variable nueva (b) elevada al el mximo valor (el grado del polinomio) +1 -e, y multiplicado a esa variable (b) estar el coeficiente correspondiente, que nos lo da el elemento e de la lista que nos devuelve polyCoeffs. As generaremos un nuevo polinomio, con la variable deseada, el cual tendr los mismos coeficientes que nuestro polinomio original. Puede ser un poco enredado o difcil de entender si uno no est familiarizado con la programacin en general, pero se trata de que poco a poco se vea este tipo de cosas con ojos ms abiertos. Es nada ms una forma de hacerlo, incluso se me ocurre otra en este momento, pero no la usar ms que nada porque esta ya est, una pista: el ciclo For puede empezar en 0, lo que elimina la necesidad del +1 en el exponente y nos crea la necesidad de un +1 en el ndice del coeficiente. Ahora, volviendo a nuestro programa, basta cambiar una lnea, y asignarle a la variable (global) grafico el valor que retorne la funcin cambiarvariable. De esta manera:

Click en la Imagen para Ampliar Si lo guardamos y ahora probamos un polinomio que no dependa de x, veremos algo as:

Click en la Imagen para Ampliar Puede ser que haya cosas por mejorar, pero definitivamente creo que resulta mucho mejor y ms til este programa que el primero que se raliz con la intencin de obtener informacin de polinomios. S que no es muy bueno, pero espero que sea de utilidad para alguien. Saludos.

istas en TI-nspire CX CAS

El Splashscreen del Student Software Uno de los elementos ms socorridos y tiles de los lenguajes de programacin de alto nivel son las estructuras conocidas como Listas. En C manejamos lo que son Arreglos, que son una formacin -contigua en memoria- en la que podemos guardar varios elementos de un mismo timpo; en otros lenguajes, como Python, ocupamos listas, que estn ntimamente ligadas a los Arreglos, excepto que en estas podemos guardar elementos de varios tipos, no necesariamente iguales entre s, aunque con una sintaxis idntica, lo que quedar ms claro con un ejemplo: Comenzaremos por definir una variable llamada lista, en este caso con la sintaxis Define (tambin es posible con := y con ->), a la que asignaremos 3 valores, estos irn entre llaves, separados con una coma, en este caso: {3,4,1}. Para acceder a un elemento en una lista, necesitamos ocupar el identificador (o nombre) de ella y, entre corchetes cuadrados ([" "]) indicar el ndice del elemento que querramos recuperar. Cada lenguaje maneja los ndices a su manera, mientras que en lenguajes como Fortrand podemos ocupar ndices negativos, en otros lenguajes, como C, podemos nicamente positivos, iniciando con 0, para el caso de TI-Basic, nuestro primer ndice ser el 1. As pues, podemos recuperar la informacin de cada elemento de la siguiente forma:

Click en la Imagen para Ampliar Tanto un nmero inferior a 1 como uno superior al tamao de la lista, nos dan un error, al tener 3 elementos, podemos recuperarlos con 1, 2 o 3, segn nos convenga. Hay muchas maneras de ocupar las listas, estos ejemplos son muy simples, pero prcticos, pues nos dan una idea de las diferentes posiblidades. Por ejemplo, ocupamos la notacn sistema de ecuaciones para sustitur el valor que almacena la variable lista y recuperamos cada uno de sus valores:

Click en la Imagen para Ampliar La lista no depende de que cada elemento sea del mismo tipo. Tenemos 2 igualdades y una cadena, recuperados sin problemas con la misma notacin. Mientras que en otros lenguajes de progamacin uno est muy acostumbrado a Utilizar 2 ndice spara manejar matrices, es este no he encontrado -todava- la manera de operar cada elemento de una matriz de manera

invidual, sin embargo, en una matriz de 22, se pueden recuperar los renglones mediante la misma notacin:

Click en la Imagen para Ampliar Ya para finalizar esta introduccin, utilizar una funcin que me devuelve los coeficientes de un polinomio, siendo este resultado devuelto una lista, para demostrar otro ms de sus usos, ya que las funciones pueden regresar 1 y solo 1 valor, por qu no regresar una lista donde se guarde toda la informacin que necesitemos. Se ve esto aqu:

Click en la Imagen para Ampliar Esto nos ser de ayuda para completar la aplicacin sobre polinomios, que es el siguiente post. Saludos.

Matrices [avanzado] en la TI-nSpire CX CAS

El Splashscreen del Student Software Pasaron los das, semanas y meses y por fin encontr la manera de trabajar con matrices que haba esperado. Como haba escrito en una entrada anterior, no estaba seguro de cmo accesar miembro a miembro, como se hace en los diferentes lenguajes que he manejado (C, C++, C#, Pic-C, Python, Java, PHP). Busqu en Google y no encontr mucho -o mejor dicho nada- que se acercara a lo que necesitaba, nicamente encontr algunos pocos tutoriales, incluso desde la pgina de TI, no encontr satisfaccin a mi problema, antes de ponerme a estudiar de pasta a pasta el manual de la calculadora, pude hayar la forma de trabajar :) As que vamos a ello. Para empezar, hay que saber lo bsico sobre las matrices, y es que stas son arreglos rectangulares de datos -en programacin, en matemticas es algo muy similar, pero no exactamente igual-. Pueden ser uni-dimensionales (llamadas vectores, de n-elementos) o tener varias dimensiones. La calculadora trabaja con Vectores y Matrices de nxm elementos, lo cual ya se vio en la entrada acerca de las Listas. Ahora, cmo se crean las matrices en la calculadora? Hay varios mtodos. Dentro de una hoja de Calculadora, debemos apretar la tecla men, ir a 7. Matrices y Vectores y aadir una nueva. Luego, escogemos las dimensiones. Es un poco incmodo, pero hay otras formas.

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar Tras ello, tendremos una matriz de 33 en blanco lista para ser llenada por literales (nmeros) o variables. Yo uso otro mtodo, ms veloz, el cual dejar en un gif animado:

Click en la Imagen Animada para Ampliar Podemos efectuar diferentes operaciones sobre las matrices, primero que nada, me gustara tomar la matriz de 33 que hice en una variable, llamada a, as que utilizar la sintaxis que me gusta ( := ) para hacerlo.

Click en la Imagen para Ampliar Empecemos con las multiplicaciones, multiplicacin escalar y multiplicacin matricial. Veremos el resultado de multiplicar a a por 2. Lo cual, segn las propiedades del producto escalar, nos dar como salida cada miembro multiplicado por 2, lo cual guardaremos en otra matriz, llamada b, con la sintaxis que no me gusta (->).

Click en la Imagen para Ampliar Ahora tenemos 2 matrices, a y b, donde b es la matriz a multiplicada por 2. Tenemos otra sintaxis para poder hacer asignaciones de matrices -o listas- a variabes. Ahora declararemos una matriz llamada c que sea la multiplicacin de a y b (en ese orden, pues la multiplicacin de matrices no es conmutativa). La sintaxis es Define variable = matriz:

Click en la Imagen para Ampliar Qu pasa si queremos Operar Matrices y no solo escalares? Solamente basta indicar la operacin, ya sea en notacin matricial o con las variables que las representan, as como se hizo para obtener C como A*B, ejemplos:

Click en la Imagen para Ampliar Vamos a operaciones sobre las matrices que requieren un poco ms que los operadores bsicos. Empecemos con la matriz inversa. Para ello se necesita nicamente elevar (la matriz o la variable) a -1, lo cual nos dar el inverso tal cual lo hace con reales o complejos. hay que recordar que la matrices singulares (aquellas matrices cuadradas cuyo determinante es 0) no tienen matriz inversa, as como tampoco aquellas que no son cuadradas. As que declarar una matriz d totalmente nueva:

Click en la Imagen para Ampliar Cmo sacar el determinante? Esto es vlido solamente para matrices cuadradas, lo cual se debera saber de antemano, pero reitero. No importa la dimensin de estas; a mano, una matriz de 55, 1010 seran un poco tardadas, hay diferentes mtodos (que luego explicar), pero de momento me quedar con la funcin det para este fin. Como se puede ver:

Click en la Imagen para Ampliar Transponer una matriz o vector es realmente simple, cambiar renglones por columnas, pero tambin poseemos una manera simplificada, con una pequea T que podemos encontrar en nuestro men de smbolos. Esto es, ms que por dificultad, porque al hacer programas a veces necesitamos transponer y as nos facilitamos el trabajo de crear una funcin que lo haga.

Click en la Imagen Animada para Ampliar Existen muchas funciones, cuyos nombres explican su funcin, algunas comunes como intercambiar renglones, otros como las operaciones permitidas en el mtodo de Gauss: multiplicar un rengln por un escalar y sumarlo a otro rengln, como se ve aqu, La funcin multiplica el rengn 1 de la matriz a, y se lo suma al rengln 2:

Click en la Imagen para Ampliar Para lograr automatizar procesos iterativos, tenemos diferentes herrramientas, algunas de las ms cmodas son la Notacin Sigma o los Ciclos (For, While). Pero hasta la fecha, no saba cmo aprovechar las matrices en este lenguaje, dado que lo mximo que haba hecho era obtener un rengln de la matriz, al igual que con las listas, accediendo con la notacin [ndice], como se ve en esta imagen del viejo post:

Click en la Imagen para Ampliar Lo que se obtiene en la imagen se conoce, al parecer, como sub-matrices, las cuales no solamente se pueden acceder as, sino tambin hay una funcin especfica para ello, pero a m, en este momento, no me sirve para nada til. Ahora, lo que yo deseaba era obtener acceso a cada elemento por separado, ya sea para tomar el dato o para guardar un nuevo dato en en ese espacio de la matriz. La Sintaxis de C, C#, Python, Java, suele ser

Matriz[ndice1][ndice2], pero para la TI-nSpire CX CAS utilizaramos Matriz[ndice1,ndice2], por ejemplo:

Click en la Imagen para Ampliar Si bien, tenemos una funcin para obtener la traza de la matriz, por poner un ejemplo, podemos utilizar la notacin sigma para obtenerla, lo cual nos da una idea de cmo, con ciclos For, por ejemplo, podemos aprovechar las matrices en nuestros programas:

Click en la Imagen Animada para Ampliar Todo esto funciona para nmeros reales y para nmeros complejos. Con Fracciones, enteros o nmeros en coma flotante. Pronto, ms ejemplos (asociados a Anlisis de Circuitos Elctricos). De momento, espero que haya sido til para alguna persona. Saludos.

Ciclos y condicionales TI-nspire CX CAS

El Splashscreen del Student Software Una parte muy importante de todos los lenguajes de programacin son los ciclos y condicionales, estos nos permiten re-dirigir el flujo del programa para repetir instrucciones, evitar errores con lo que podemos reducir drsticamente el tamao del cdigo que estamos usando adems de adecuarlo para su ejecucin mediante una generalidad. Por poner un ejemplo, si hiciramos un programa para resolver un sistema de ecuaciones algebrico, paso por paso, en lugar de que el cdigo est forzado a trabajar con 3 variables o 2, podemos utilizar un mtodo numrico de tal manera que ese nmero est in-determinado hasta que el programa est corriendo, lo que expande las posibilidades del mismo. Empecemos creando un nuevo documento y en l aadiremos una calculadora y abriremos el editor de programas:

Click en la Imagen para Ampliar. Gif Animado Dentro del Program Editor, vamos a colocar algo muy simple. Nuestro programa recibir 2 argumentos, el primero se llamar a, el segundo, b; a travs de los mens (o recordando la sintaxis) escribiremos 3 casos: que a sea menor, mayor o igual a b. En el men, podemos encontrar estas Sentencias de Control, en este caso haremos uso de If, Else-if y Else.

Click en la Imagen para Ampliar En un lenguaje como C, que posee llaves ({ }), tendramos algo un poco ms fcil de leer, sin embargo, el lenguaje TI-Basic se basa en el uso de puro texto, as que con algo de imaginacin, se puede ver la imagen, el bloque de la condicional If, termina con un EndIf, primero se evala la primer condicin, luego, de ser falsa, se pasa al ElseIf, y si ninguna fue cierta, por defecto, sin evaluar nada, cae en el caso Else, por lo que si no era menor o mayor, asumimos que es igual.

Click en la Imagen para Ampliar Yendo al men, es posible aadir otra pgina, en este caso una calculadora donde probaremos el programa que hicimos:

Click en la Imagen para Ampliar Ahora intentaremos utilizar un ciclo, en este caso optaremos por el ciclo For, el cual toma un ndice, un inicio, un final y un tamao de paso, como se ver en el siguiente ejemplo, para el que crearemos un programa llamado pares:

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar En este caso ocuparemos la funcin remain, la cual nos devuelve el restante de una divisin entera, por ejemplo remain(4,3) nos devolvera 1. La condicin para que un nmero sea par, es que al dividirlo entre 2, nos de 0. (2,4,6,8, todos tienen un residuo igual a 0). Dado que en este lenguaje las asigaciones se hacen con := o ->, el smbolo = se utiliza para comparar. Tambin, no ocuparemos un If-Then, lo que creara un bloque entero de accin al ser cierta la condicin del condicional If, necesitamos nicamente una lnea de cdigo qu ejecutar en caso de que la condicin sea cierta, en este caso, que el nmero sea par. El cdigo es muy simple:

Click en la Imagen para Ampliar Declaramos 1 variable local llamada x, esto har que no estorbe fuera de la ejecucin del programa, declaramos un ciclo For con la informacin en este orden: Variable contador: x, Inicio de la cuenta: inicio, Final de la cuenta: fin, Incremento cada que se complete

el ciclo: 1. Ya dentro del ciclo, que se repetir dndole a x un valor de inicio y lo aumentar en 1 hasta que sea igual a fin, colocamos un If, que buscar que el nmero x sea par, y de serlo, nos imprime mediante Disp el valor de dicho nmero. Si lo ejecutamos, podemos ver una salida as:

Click en la Imagen para Ampliar Dentro de las Sentencias de Control, tenemos algunas otras, que funcionan de manera muy similar a otros lenguajes de programacin, de todas maneras, si hace falta algo de documentacin, en este link se pueden encontrar una gua de su uso, para los fines inmediatos que tengo en mente, esto es suficiente por el momento. Saludos!

Funciones o Programas dentro de la TI-nspire CX CAS

El Splashscreen del Student Software Como mencion en un post anterior, hay diferencias entre usar una funcin o usar un programa. El Program Editor no nos ayuda mucho, pero afortunadamente encontr un poco ms de informacin sobre el lenguaje, de donde obtuve esta pequea tabla que explica de manera sencilla en qu difieren: Program Function Return a result? No Yes Can be used in an expression? No Yes Can run in applications other than Calculator? No Yes Can use all the commands? Yes No Can use multiple variable types? Yes Yes Can access global variables? Yes Yes Can modify and create global variables? Yes No Can call subprograms? Yes No Can call functions? Yes Yes Bsicamente, si escribimos una funcin, tenemos que regresar un resultado -normalmente al final de sta-, lo cual es muy familiar para todo aqul que haya trabajado con lenguajes como C, Java, Python, etc. donde las funciones son usadas normalmente para devolver valores, incluso valores vacos, dependiendo de nuestras necesidades. Pues bien, como en la calculadora trabajamos con pequeos Documentos, cada Documento dividido en Problemas -al menos 1 y mximo 30-, podemos crear aplicaciones ms o menos complejas, lo cual debe ser evidente desde que compramos la

calculadora, pues esa informacin viene en el manual o folleto. Por si hay alguna duda, dejo un par de imgenes explicado, espero sean de ayuda:

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar Por qu es importante saber sobre los probemas y las hojas? Porque hay algo muy importante y es el mbito de una variable, lo cual significa la visibilidad de la misma, por lo que se aprecia el impacto que posee. Segn la tabla, un Programa puede crear y modificar variables Globales, estas pueden ser modificadas u obtenidas incluso despues de la ejecucin del mismo, mientras que en una funcin, todas las variables deben ser Locales, esto implica que una vez que termine la ejecucin de la funcin -o subrutina- no se puede acceder a esos valores, la nica manera de recuperar algo operado dentro de una funcin es mediante el valor de retorno. Haremos una funcin, llamada cuadrado, lo que har ser muy simple: Recibe un argumento, que ser llamado a, ste ser impreso en la pantalla utilizando Disp, posteriormente, se devolver el valor de a elevado al cuadrado. Se puede apreciar aqu:

Click en la Imagen para Ampliar

Ejecutarlo nos dar algo as:

Click en la Imagen para Ampliar Qu ventaja tiene esto? Podemos almacenar el valor que regresa la funcin cuadrado, en este caso, no se almacena, por eso se imprime en la pantalla con un separador. Si observamos las variables, con la tecla Var, veremos que a no es una variable a la que podamos acceder, los argumentos de una funcin son locales a la funcin, solamente valen dentro:

Click en la Imagen para Ampliar Vamos a hacer algo, dentro de la funcin, crearemos b, haremos que b obtenga el valor de a, y luego devolveremos b^2. El resultado, tras presionar b, es el mismo, tampoco podemos acceder a b, porque nos obliga a que b sea declarado como Local b si no, no nos deja usarlo.

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar Ahora, vamos a almacenar el valor que devuelve la funcin, para usarlo en otra cosa, tal vez en la misma funcin. Podremos asignar de las 2 maneras conocidas, como ya est utilizada dentro de la funcin la forma :=, usar la otra, utilizando Control+Var, activando el sto (de storage) en una variable llamada cosa.

Click en la Imagen para Ampliar Se puede apreciar que cosa s aparece como una variable, y que podemos usarla como argumento hacia la funcin y re-almacenar un valor en ella. Contamos con muchas funciones en el catlogo, que reciben argumentos y devuelven valores tiles, al igual que Disp, las podemos utilizar tanto en funciones como en programas (prcticamente todas de la misma manera) para tomar la mayor ventaja posible al resolver nuestros problemas, por ejemplo, cosa puede ser llamado desde otra hoja, ya sea de grficos, de clculo, cualquier otra. En un programa no podemos devolver un valor, pero podemos crear una variable global, accesible desde cualquier mbito sin problemas:

Click en la Imagen para Ampliar

Click en la Imagen para Ampliar La variable b, declarada como el cuadrado de a, dentro del programa, tiene vida fuera de l. Dentro del programa se pueden utilizar variables Locales sin problema, para no llenar de variables al documento, sin embargo, no regresan un valor, por lo que muchas veces, el programa sera lo que intentaramos ejecutar y podramos crear funciones para no apelmazar demasiado cdigo, as como declarar Locales nuestras variables temporales, para que no estorben fuera de la ejecucin. En lo siguiente, se tomar el ejercicio Polinomios, se crear una funcin, una diferente asignacin y algunos trucos para terminar con un programa mucho ms til, espero hacerlo pronto. Saludos.

S-ar putea să vă placă și