<<Calculadora con Ans>> |
Dificultad: Se necesitan muy pocos conocimientos previos. Lecciones anteriores: Simulando una Calculadora Paso por paso como comenzar a programar en QuickBasic |
|
Resumen: Vamos a ver como hacer programas que guarden resultados temporales, así los podemos utilizar después. Por ejemplo, en una calculadora podemos guardar valores en la memoria, usando las teclas M in, MR, ... Tambien podemos hacer calculos con la última respuesta utilizando la tecla Ans. En realidad, en los programas hay muchas más libertad para guardar resultados temporales, pero vamos por partes. Continuando desde cero+ En estas lecciones vamos a ver como empezar a programar. En la lección anterior vimos los pasos para utilizar el QB, paso a paso, pantalla por pantalla. En esta lección vamos a suponer que la leyeron y ya saben como empezar a escribir y ejecutar un programa. En la lección anterior utilizábamos la computadora solamente para hacer cuentitas y mostrarlas en la pantalla, junto con algunos mensajes. Ahora vamos a ver como guardar y utilizar los valores de los cálculos intermedios. Agregando Ans Vamos a definir una variable que se llama Ans que sirve para guardar un número. Por ejemplo veamos el siguiente programa: Dim Ans Ans = 2*2 Print Ans Ans = 3+7 Print Ans Ans = Ans*5 Print Ans Veamos el programa línea por línea: Dim Ans En la primera línea definimos la variable Ans. O sea le decimos a la computadora que vamos a usar la palabra Ans para guardar un valor. (En realidad en QB no es obligatorio, pero es de mala educación no definirlas.) Ans = 2*2 Estas igualdades no son ecuaciones. Lo que hacen es pedir que calcule 2*2 y que después anote el resultado en Ans. Así que ahora Ans vale 4. Print Ans Hasta ahora no escribimos nada en la pantalla. Por eso utilizamos la instrucción Print para escribir en la pantalla. Le decimos que escriba Ans, o sea el valor de Ans que es 4. Así que debería aparecer un 4 en la pantalla. Ans = 3+7 Ahora le pedimos que calcule 3+7 y anote el resultado en Ans. Antes Ans valía 4 pero al anotar el nuevo resultado el valor viejo se pierde. Así que a partir de ahora Ans vale 10. Pero todavía no escribimos este valor en la pantalla. Print Ans En esta línea volvemos a usar Print para escribir en la pantalla el valor de Ans. Pero ahora Ans vale 10, así que debería aparecer un 10 en la pantalla. Por más que esta línea es exactamente igual que la tercera cada una muestra en la pantalla un resultado diferente. Ans = Ans * 5 De vuelta recalcamos que estas igualdades no son ecuaciones. Así que no se puede despejar ni nada que se le parezca. Lo que ordenamos es que haga el calculo que está a la derecha del igual, o sea Ans*5 y al resultado lo guarde en la variable que aparece a la izquierda del igual. Al hacer el cálculo utiliza el viejo valor de Ans, o sea 10, y lo multiplica por 5 obteniendo 50. Luego a este resultado lo guarda en Ans, así que ahora Ans vale 50. Print Ans Nuevamente mandamos el valor de Ans a la pantalla así que debería aparecer un 50. Cambiando el programa Los programas son medio largos y medio repetitivos. Pueden aprovechar los comandos Copy(Copiar) y Paste (Pegar) del menú Edit(Edición) para escribir menos. Cambiando ligeramente el programa anterior, obtenemos otro ejemplo que se puede analizar análogamente. Es interesante (una vez en la vida) seguir las instrucciones con papel y lápiz, comparando los resultados que se obtienen a mano con los que realmente aparecen en la pantalla. Dim Ans Ans = 5 Print Ans Ans = Ans*3 Print Ans Ans = 5+Ans Print Ans Ans = 3+(Ans+2)*5 Print Ans Prueben modificar las cuentas que realiza en cada paso y ver si anda como uno espera. También se pueden utilizar más de una vez la variable Ans en una línea y la computadora utiliza en todos los casos el mismo valor para hacer las cuentas. Recién cuando termina los cálculos anota el resultado en Ans. Por ejemplo pueden ver el siguiente programa. Dim Ans Ans = 5 Print Ans Ans = Ans*Ans Print Ans Ans = Ans+Ans-20 Print Ans Ans = (Ans +20)*(Ans+10) Print Ans Un problema Vamos a ver un problema que se puede resolver exactamente con lápiz y papel, pero que también se puede utilizar la computadora para ayudar a encontrar la respuesta tanteando.
Dim Ans Ans = 100 Print Ans Ans = Ans-Ans/5-1 Print Ans Ans = Ans-Ans/5-1 Print Ans Ans = Ans-Ans/5-1 Print Ans La idea es cambiar el 100 de la segunda línea hasta que en la última aparezca un 59. Por ejemplo al empezar con 100 al final hay sólo 48,76 cocos así que conviene probar con más cocos, ¿por ejemplo 200? y seguir así hasta encontrar el 59. En otra lección vamos a ver como se puede hacer para que la computadora haga automaticamente este tipo de búsquedas y tanteos. |
|
Calculadora con memoria También podemos simular la memoria de la calculadora, o sea un rinconcito donde anotar un resultado parcial para usarlo más tarde. Pare ello vamos a usar la variable Mem. Dim Ans Dim Mem Ans = 5 Print Ans Ans = Ans * 7 Print Ans Mem = Ans Ans = Ans - 20 Print Ans Ans = Ans + Mem Print Ans El programa es muy parecido a los anteriores, pero hay tres líneas que usan Mem que vamos a analizar: Veamos el programa línea por línea: Dim Mem Definimos la variable Mem. O sea le decimos a la computadora que vamos a usar la palabra Mem para guardar un valor. Es lo mismo que hicimos con Ans. Mem = Ans En esta línea pedimos que guarde en Mem el valor que tiene en Ans. En este paso Ans vale 35 así que en Mem queda anotado el número 35. Si después modificamos Ans este valor no cambia (a menos que lo ordenemos). Esta operación no escribe nada en la pantalla. Ans = Ans + Mem Print Ans En este paso calcula Ans+Mem. La variable Ans la modificamos en el paso anterior así que vale 15 y a el último valor que anotamos en Mem fue 35 así que el resultado es 40 y lo anota en la variable Ans, como siempre. En la línea siguiente escribimos este resultado en la pantalla. Como siempre después de cada igual se pueden combinar todos los Ans, Mem, números, operaciones que uno quiera (o que necesite para resolver un problema). Es importante recordar es que cada vez que escribimos Mem = Ans la computadora se olvida del valor anterior de Mem y en su lugar anota el valor que tiene Ans, y utiliza este valor hasta que lo volvamos a cambiar (o se acabe el programa). Para ver esto prueben el siguiente programa: Dim Ans Dim Mem Ans = 1 Print Ans Ans = Ans +1 Print Ans Mem = Ans Ans = Ans +1 Print Ans Mem = Ans Ans = Ans +1 Print Ans Ans = Mem*10 Print Ans Ans = Ans + Mem Print Ans Mem = Ans Ans = Ans + Mem Print Ans Otro Problema
Prueben resolverlo a mano (con lápiz y papel y calculadora) y comparen los resultados y cuentas intermedias con los del siguiente programa. Dim Ans Dim Mem Ans = 10 Print Ans Ans = Ans * Ans Print Ans Mem = Ans Ans = 10 Print Ans Ans = Ans/2 Print Ans Ans = 3.14159*Ans*Ans Print Ans Ans = Ans/2 Print Ans Ans = Ans + Mem Print Ans Más memorias en más variables Si cambiamos la longitud de AB a 7 entonces tenemos que cambiar el programa en dos lugares. Esto es medio incomodo, sobre todo cuando los programas empiezan a ser más largos y complicados. Al igual que muchas calculadoras modernas podemos tener muchos números guardados, utilizando muchas variables. Así que para simplificar el programa vamos a definir dos variables más una que se llama Pi y vale Pi=3,14159..... y otra llamada LadoAB que va a valer 10 o 7 o el valor que necesitemos. Es bueno aprovechar la libertad que hay para ponerle nombres a las variables de manera que hagan más fácil de entender el programa. Dim Ans Dim Mem Dim Pi Dim LadoAB Pi=3.1415926 Print Pi LadoAB = 10 Print LadoAB Ans = LadoAB * LadoAB Print Ans Mem = Ans Ans = LadoAB/2 Print Ans Ans = Pi*Ans*Ans Print Ans Ans = Ans/2 Print Ans Ans = Ans + Mem Print Ans Notar que para definir Pi utilizamos 3.14159 con los decimales separados con un punto en vez de una coma. Resuélvanlo a mano con lápiz y papel, y comparen los resultados intermedios y el resultado final. Si ahora achicamos la figura y el lado AB mide solamente 7 entonces hay que cambiar el programa, pero solamente una línea (la que está en negrita). En cambio en el papel uno tiene que volver a hacer todas las cuentas de vuelta. Otra ventaja del nuevo programa es que es más fácil de entender, gracias a que es más claro que está guardado en cada variable. Por ejemplo es claro que después de Ans = LadoAB * LadoAB el valor de Ans es LadoAB al cuadrado. En la versión anterior, la linea era Ans = Ans * Ans y en ese caso hay que pensar cuál era el último valor asignado a Ans. Cálculos invisibles La mayoría de las veces no interesan todos los resultados intermedios, sólo hace falta saber el resultado final. Por ejemplo en el programa que resuelve el problema de los piratas podemos mostrar el primer y último valor calculado solamente, agregando un par de mensajes para que sea más fácil de entender cuales son los números que aparecen en la pantalla. Para eso hay que sacar todos los Print que sobran de manera que queda: Dim Ans Print "------------------------" Ans = 100 Print "Cantidad Inicial:", Ans Ans = Ans-Ans/5-1 Ans = Ans-Ans/5-1 Ans = Ans-Ans/5-1 Print "Al final quedan" , Ans En este programa pedimos que la computadora haga exactamente las mismas cuentas que antes, que son las instrucciones de la pinta Ans = AlgunaCuenta . En el programa original agregábamos después de cada paso una instrucción Print Ans para que mostrara en pantalla el resultado de la operación. Nuevamente hay que recordar ir cambiando el valor inicial hasta obtener el resultado correcto. Más ayuda de la ayuda Recuerdan que la ayuda se pide tocando la tecla F1. Aparece un pequeño resumen sobre cada instrucción y algún ejemplo que pueden copiar y probar. El curso no es infinito y la mayor parte del lenguaje va a quedar afuera así que váyanse acostumbrando a tocar F1. Para los inquietos queda de tarea usar F1 para averiguar
Ejercicios:
Varios ejercicios se pueden resolver con calculadora o computadora. Prueben ambos métodos y comparen. Por ahora la diferencia es poca, pero es más fácil repetir las cuentas con la computadora que a mano cuando cambian algunos datos o se cometió algún error en la resolución. Lecciones siguientes: |
|
La idea es que hagan los ejercicios y piensen que otras cosas interesantes se pueden hacer relacionadas con estos temas. Cuéntennos lo que consiguieron y pregunten lo que no les salió. Envíen sus preguntas, dudas, sugerencias, experiencias y propuestas. Nuestra dirección es cym98@oma.org.ar .
También nos gustaría saber tu opinión sobre esta clase. Les pedimos que se tomen unos instantes y contesten estas preguntas. Con tu ayuda podremos hacer un curso cada vez mejor.
OmaNet Curso CyM98 | OmaNet - Educación Interactiva www.oma.org.ar/omanet | omanet@oma.org.ar |
mensajes: webmaster@oma.org.ar |