CyM98

<<Programas que hacen Preguntas y otros Comentarios>>

Dificultad:
Se necesitan muy pocos conocimientos previos.

Lecciones anteriores:

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

Calculadora con Ans(la respuesta anterior) Como almacenar números en la computadora

Cómo conseguir el Qbasic

 
Google
Web www.oma.org.ar

Resumen:

Vamos a ver como hacer que la computadora pregunte un número y después haga cuentas con él. Esto sirve para resolver una familia de problemas, en la que solamente cambia el valor de algunos números. De esta manera uno puede pensarlo, ver que cuentas tiene que hacer y escribir un programa que pregunte los números y lo resuleva.

Además vamos a ver como colocar comentarios en un programa, de manera que el programa sea más fácil de entender al leerlo o revisarlo posteriormente.

Ya es hora de un repaso

En estas lecciones vamos a ver como empezar a programar. En la primera lección vimos los pasos para utilizar el QB, paso a paso, pantalla por pantalla. En la segunda lección explicamos como simular las memorias y la tecla Ans de la calculadora utilizando variables. En esta lección vamos a suponer que ya las leyeron y ya saben como empezar a escribir y ejecutar un programa simple.

Haciendo preguntas

Para que el programa haga preguntas se utiliza la instrucción Input . En esta instrucción se puede poner primero un cartelito, para que el que usa el programa sepa qué cosa le están preguntando. Además hay que indicar una variable para que guarde el número, así después lo podemos usar para algo útil.

Dim Ans
Input "Escribi tu edad ", Ans
Print Ans
Ans = Ans*365
Print Ans
Print "Vos ya viviste por lo menos", Ans, "dias."

¿Pueden adivinar que es lo que hace? Veamos el programa línea por línea:

Dim Ans

Volvemos a definir a nuestra vieja amiga la variable Ans, sólo para que el programa se parezca a los de la lección anterior.

Input "Escribi tu edad ", Ans

Pone un cartel en la pantalla (lo que está antes de la coma, todos los carteles van entre comillas) y espera a que escribas un número. Para indicar que ya terminaste de escribirlo hay que tocar la tecla Enter. Después lo guarda en la variable Ans que es lo que está después de la coma.

Print Ans

Ahora mostramos el valor de Ans, que debería ser igual que escribimos.

Ans = Ans*365

Multiplicamos por 365 para pasar de años a días y guardamos en Ans el resultado. (En otra lección podríamos discutir como considerar los años bisiestos y otras cosas raras, pero cada año tiene seguro por lo menos 365 días.)

Print Ans

Mostramos el nuevo valor.

Print "Vos ya viviste por lo menos", Ans, "dias."

Ponemos el resultado en la pantalla con un par de carteles simpáticos. Como siempre lo que está entre comillas lo escribe directamente y lo que no esta encerrado entre comillas lo toma como variables y lo calcula.

Normalmente habría que sacar los dos Prints del medio, para que en la pantalla sólo aparezcan los carteles simpáticos que al usuario le interesan. Así se esconde toda la basurita con las cuentas auxiliares que hizo el programa. Además es bueno poner un Cls o por lo menos un Print vacío al principio para que no se mezclen los nuevos mensajes con los anteriores.

De vuelta los piratas

En la lección anterior vimos un problema sobre unos piratas muy simpáticos que decía:

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

Aprovechando la instrucción Input lo podemos modificar, de manera que uno piensa sólo una vez al escribir el programa y después es sólo cuestión de escribir un numerito. Tantear de esta manera es un poco más seguro porque cada vez que se modifica el programa se corre el riesgo de modificar involuntariamente el resto del programa.

Dim Ans
Input "Cantidad inicial de cocos ", Ans
Print Ans
Ans = Ans-Ans/5-1
Print Ans
Ans = Ans-Ans/5-1
Print Ans
Ans = Ans-Ans/5-1
Print Ans

Si lo comparan con el anterior van a ver que sólo cambió una línea, se podrían agregar algunos carteles más como por ejemplo "Cantidad final de cocos". Nuevamente hay que recordar ir cambiando el valor inicial hasta obtener el resultado correcto.

Para poder volver a utilizar un programa anterior es bueno poder guardarlo y cargarlo. Estas operaciones son idénticas a las de un procesador de texto (por ejemplo el Bloc de Notas). Para guardar hay que ir al menú File(Archivo) y tocar Save(Guardar). Para cargar hay que ir al mismo menú y tocar Open(Abrir). Los archivos tienen la extensión .bas y se pueden abrir con el Notepad o Word si es necesario. (En QB hay dos opciones, ¡siempre es preferible guardarlo en modo texto!)

 

  

Más preguntas y menos variables

Como siempre se puede utilizar cualquier variable en vez de Ans. Por ejemplo el siguiente programa calcula la superficie de un rectángulo.:

Dim Base
Dim Altura
Dim Superficie
Print "------------------------"
Input "Escribir la base ", Base
Input "Escribir la altura ", Altura
Superficie = Base * Altura
Print "La superficie del rectangulo es", Superficie
Print "------------------------"

También se puede acortar el programa eliminando la variable superficie de la siguiente manera

Dim Base
Dim Altura
Print "------------------------"
Input "Escribir la base ", Base
Input "Escribir la altura ", Altura
Print "La superficie del rectangulo es", Base * Altura
Print "------------------------"

En la penúltima línea primero escribe el mensaje simpático. Después el programa ve que el resto no está encerrado entre comillas así que se fija cuanto valen las variables y calcula el producto y muestra el resultado en la pantalla. El resultado lo guarda en una variable temporal que no tiene nombre y que no se puede ver, es sólo para uso interno. Así que después no pueden ver cuanto fue el resultado utilizando ni Ans ni Superficie ni Resultado ni PorFavor ni Nada.

Así los programas quedan más cortos y si hay suerte más fáciles de entender. Esto es importante porque en general uno comete errores al escribirlos y para arreglarlos hay que tratar de recordar que es lo que esa línea hacía.

Otros comentarios

Es bueno agregar comentarios al programa que expliquen qué es lo que hace. Principalmente contar que hace cada bloque, no línea por línea. La idea es que la persona que tenga que revisar, evaluar o reparar el programa pueda entender a grandes rasgos que es lo que hace.

Para poner comentarios se utiliza un apóstrofe así ' (Hay varios cositos parecidos en el teclado así que hay que probar un rato hasta encontrar el correcto.). Todo lo que esta después del apóstrofe es ignorado por el programa hasta que comienza una nueva línea. También es posible agregar líneas en blanco que no hacen nada pero separan visualmente las partes del programa. Por ejemplo podemos decorar un poco el programa del segundo problema de la vez pasada:

  • 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

Dim Ans
Dim Mem
Dim Pi
Dim LadoAB
Pi=3.1415926
Print Pi
LadoAB = 10
Print LadoAB

'Calculo la superficie del Cuadrado
Ans = LadoAB * LadoAB
Print Ans
Mem = Ans

'Calculo la superficie del SemiCirculo
Ans = LadoAB/2
Print Ans
Ans = Pi*Ans*Ans
Print Ans
Ans = Ans/2
Print Ans

'Calculo el total
Ans = Ans + Mem
Print Ans

Buceando en 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 Color . Prueben agregar al principio de un programa Color 7 , 1 . De todas maneras no abusen.
  • para qué sirve la instrucción Locate .

Ejercicios:

  1. Sigan modificando todos los programas. Nos gustaría que nos mandaran algunos ejemplos y problemas interesantes que se les hayan ocurrido que se puedan solucionar con lo que vimos hasta ahora.
  2. Miren los ejercicios de las lecciones anteriores y traten de hacer un poco más simpáticos los programas. Traten de sacar todos los Prints que sobren.
  3. Buscar tres números enteros positivos consecutivos que multiplicados den un múltiplo de 1000. Por ejemplo 75*76*77=438900. ¡Buscar otro! Y buscar el más chico.
  4. Un jardín se está llenando de yuyos. Al principio de cada mes cada planta lanza muchas semillas, de las cuales solamente 1 sobrevive y forma una nueva planta. Durante el mes el jardinero puede eliminar completamente sólo 30 plantas. Si inicialmente hay 50 plantas, ¿cuántos meses habrá que esperar para que hayan más de 1000 plantas en el jardín?
    ¿Cuántas plantas debería haber inicialmente para que haya que esperar hasta el octavo mes para que la cantidad de plantes sea mayor que 1000 (dar todas las posibilidades)?

Lecciones siguientes:

Algunas Funciones y Tomando Decisiones Comp.

Y otra vez, y otra vez, y otra vez, ... 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
duty free alcohol usa duty free cigarettes airport buy cigars wholesale cosmetics duty free where to buy perfume tobacco duty free