CyM98

<<Calculadora con Ans>>

Dificultad:
Se necesitan muy pocos conocimientos previos.

Lecciones anteriores:

Simulando una Calculadora Paso por paso como comenzar a programar en QuickBasic

Cómo conseguir el Qbasic

 
Google
Web www.oma.org.ar

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.

  • En una isla hay tres piratas y un mono. Durante el día entre los cuatro recogen un montón de cocos, los amontonan en una pila y se van a dormir. Por la noche uno de ellos se levanta, toma exactamente 1/5 de los cocos de la pila y además le regala otro coco de la pila al mono. Después se levanta otro pirata, toma exactamente 1/5 de los cocos de la pila y además le regala otro coco de la pila al mono. Más tarde se levanta el tercer piratas hace lo mismo. A la mañana todos se despiertan y notan que en la pila hay 59 cocos así que cada uno agarra 15 y le regalan los otros 14 al mono. ¿Cuántos cocos había inicialmente?
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

  • La siguiente figura está formada por en cuadrado ABCD y un semicírculo de diámetro BC. El segmento AB mide 10. Calcular la superficie de la figura.

Cuadrado y Semicírculo

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

  • para qué sirve la instrucción Const

Ejercicios:

  1. Sigan modificando todos los programas para que aparezcan otros resultados. También pueden escribir programas que den la solución a problemas normales.
  2. Resolver el problema de los piratas sin tantear y escribir el programa que calcula la solución.
    Extra: Se puede armar otro problema cambiando el 59 por otro número. Buscar algún numero que se pueda usar para reemplazar 59, de manera que todas las cuentas sigan dando números enteros.
  3. Calcular la superficie de la siguiente figura formada por un triángulo rectángulo y dos semicírculos. Datos: lado AB = 5; lado BC = 12.
    Volver a calcular la superficie de una figura similar pero utilizando los siguientes datos: Lado AB = 3, Lado BC = 4.
    Triángulo y Semicírculos

  4. En una caja inicialmente hay 127 bombones. Cada día Martín come un bombón de la caja por la mañana. Por la tarde come junto con su familia la mitad de los bombones que quedan en la caja. ¿Cuántos días tardará en terminarse la caja?

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:

Programas que hacen preguntas y otros comentarios.

Algunas Funciones y Tomando Decisiones Comp.

 


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.

¿Cuál es tu calificación general de esta clase?

No entendí nada   Mala   Regular   Buena   Muy buena

El contenido de esta clase te resultó:

Nuevo   Conocido en parte   Conocido

El contenido de esta clase te pareció:

Difícil   Regular   Fácil

Los ejercicios de esta clase te parecieron:

Difíciles   Regulares   Fáciles

Comentarios, preguntas, sugerencias:

Agregar más información o una nueva lección sobre:

Funciones de los Menús (Grabar, Cargar, Copiar, Pegar, ... )

Traducciones a Pascal o C/C++

Nombre y apellido (opcional):

E-mail (opcional):

    


OmaNet   Curso CyM98 OmaNet - Educación Interactiva
   
www.oma.org.ar/omanet | omanet@oma.org.ar
mensajes: webmaster@oma.org.ar
alcohol duty free duty free cigarette buy cigars wholesale duty free cosmetics fragrances duty free buy duty free tobacco online