PSEUDO PASCAL - ALIPSO.COM: Monografías, resúmenes, biografias y tesis gratis.
Aprende sobre marketing online, desarrollo de sitios web gratis en Youtube
Suscribite para recibir notificaciones de nuevos videos:
Sábado 13 de Abril de 2024 |
 

PSEUDO PASCAL

Imprimir Recomendar a un amigo Recordarme el recurso

Agregado: 12 de ABRIL de 2000 (Por ) | Palabras: 14531 | Votar | Sin Votos | Sin comentarios | Agregar Comentario
Categoría: Apuntes y Monografías > Computación > Lenguajes informaticos >
Material educativo de Alipso relacionado con PSEUDO PASCAL
  • argumento pascaliano- contraagumentar- ideas principales del tex:
  • Biografia y vida de barón François-Xavier Pascal Fabre: Breve Biografia de barón François-Xavier Pascal Fabre
  • Biografia y vida de Pascale Galluppi: Breve Biografia de Pascale Galluppi

  • Enlaces externos relacionados con PSEUDO PASCAL

    Error! Bookmark not defined.

    Error! Bookmark not defined.

    1

    Error! Bookmark not defined.Introducción

    Error! Bookmark not defined.

    . Arranque de la computadora

    . Qué es y como funciona un compilador

    . El primer programa

    1)Arranque de la computadora con diskettes

    Para poder encender la computadora, es necesario el diskette del Sistema Operativo.

    Si la computadora está apagada:

    1. encender el monitor

    2. poner en la diskettera el DOS con la etiqueta hacia arriba, y las ranuras hacia adentro. Cerrar la puerta poniendo la perilla en posición vertical.

    3. encender la CPU.

    4. la luz roja de la diskettera se encenderá luego de algunos segundos. Esperar a que aparezca el mensaje:

    Current date is 1-01-1980.

    Enter new date:

    5. en este punto puede ingresarse la fecha del día al sistema. Recordar que la fecha debe ser escrita en el orden mes-día-año; si se desea, se puede presionar <ENTER> para saltear esta etapa.

    6. esperar hasta que aparezca el mensaje:

    Current time is 0:00:47.89.

    Enter new time:

    7. en este punto puede ingresarse la hora al sistema o bien, presionar <ENTER>.

    8. aparecerá entonces el PROMPT del DOS:

    A>

    9. el PROMPT indica que el sistema operativo está listo para recibir órdenes.

    A veces, es necesario apagar la computadora para poder retomar el control de la misma. En vez de repetir todo el proceso (1..9) de nuevo, podemos 'resetear' la computadora, es decir:

    1. presionar las teclas Ctrl-Alt-Del (todas al mismo tiempo), y repetir los pasos del 4 en adelante.

    O bien:

    1. presionar el botón Reset de la computadora, y repetir los pasos del 4 en adelante.

    2)¿Cómo funciona un compilador?

    Antes de saber cómo funciona un compilador, necesitamos saber qué es un compilador.

    Supongamos la siguiente situación:

    Juan Pérez (un español) quiere comunicarse con Chan Pi Res (nacido en Pekín). Pero, ni Juan habla chino, ni Chan habla español. Para poder hablar, deciden contratar a Lola Chin, que comprende los dos idiomas.

    Cada vez que Juan quiere hablar con Chan, le habla a Lola en español, y Lola le habla a Chan en chino. Es decir, Lola es una intérprete.

    Ahora supongamos que Juan va a dar una serie de conferencias por toda China. Podría contratar los servicios de Lola como intérprete. Pero, si hiciera esto, tendría que llevar a Lola a la China, y pagarle todos los gastos, además de su trabajo.

    Hay otra opción. Como Juan sabe pronunciar chino (lo que no puede hacer es entender lo que lee) decide pedirle a Lola que traduzca su discurso, y él va a leerlo en cada una de sus conferencias.

    ¿Cuál es la ventaja y la desventaja de cada uno de estos métodos?

    Error! Bookmark not defined.

    Traductor

    Intérprete

    Costo

    Hay que traducir una sola vez.

    Es necesario interpretar cada vez.

    Tiempo

    Al leer la traducción, no hace falta hacer pausas para que hable la intérprete.

    Hay que hacer una pausa entre frase y frase, para dar tiempo al intérprete a que hable.

    Flexibilidad

    Si estoy dando el discurso, y me hacen una pregunta, no puedo responderla, pues no puedo traducir mi respuesta (no esta conmigo Lola).

    Puede haber preguntas y respuestas en mi discurso.

    En computación pasa algo parecido. Los seres humanos hablamos en cierto lenguaje, y las computadoras hablan en el suyo. Y para poder entendernos, hace falta algún tipo de traductor. Y también hay dos tipos de traductores: los intérpretes y los compiladores.

    Un intérprete tiene las ventajas que mencionamos recién. Y también las desventajas. Al igual que los compiladores.

    Un programa compilado, es más rápido. Pero corregir un error, implica compilar de nuevo. Un intérprete es más flexible. Y mucho más lento.

    3) Probando como funciona un compilador

    Vamos a compilar un programa en pascal para ver qué es lo que hace. Pero antes de seguir adelante, es necesario tener el compilador disponible. *********Lee el apéndice A para saber como instalarlo.

    Pedile al ayudante una copia del programa DEMO1.SEU; vamos a compilarlo.

    Primero mostrá por pantalla el archivo (por si no te acordás, eso se hace con el comando del sistema operativo TYPE demo1.seu). No importa si no entendés el programa que aparece en pantalla. El resto de la guía te explicará cada una de las instrucciones.

    Ahora escribí

    CPP DEMO1.SEU (El nonmbre CPP es por Compilador de Pseudo-Pascal)

    Una vez que se apague la luz de la disketera mirá el contenido del diskette en A: nuevamente. Apareció un nuevo programa que antes no existía. Es el programa DEMO1.EXE.

    Mostrá por pantalla éste archivo (usando el comando TYPE del sistema operativo). Qué diferente se ve, si lo comparás con el TYPE anterior!!

    Lo que sucede es que DEMO1.EXE ya fue traducido a código máquina (observa que la extensión EXE indica que es un ejecutable). El compilador CPP realizó la tarea. Para ver qué hace el programa sólo falta ejecutarlo. Tipeá DEMO1 y presioná la tecla ENTER, para ver el programa en funcionamiento.

    Si deseás volver a verlo funcionar no necesitás volver a repetir todo el proceso. Alcanza con que le pidas al sistema operativo que ejecute el programa DEMO1.EXE nuevamente, ya que la traducción del programa DEMO1.SEU ya fue hecha y guardada en DEMO1.EXE.

    4)Error! Marcador no definido. Escribiendo un programa fácil

    Vamos a escribir un programa fácil en Pascal, lo compilaremos y veremos como funciona.

    Cargá el PW (o cualquier otro editor de texto que sepas usar) y copiá las siguientes instrucciones:

    programa facil;

    comenzar

    escribir('Hola, yo soy tu primer programa en CPP');

    fin.

    1

    ¿Qué hará este programa?

    Prestá especial atención a la sintaxis del programa, es decir, cómo está escrito. No te olvides de ningún signo de puntuación, ya que si no los escribís el compilador no podrá realizar la traducción correctamente.

    Una vez que lo hayas escrito y revisado, grabálo en formato ASCII con el nombre FACIL.SEU (si estás usando el PW esto se realiza indicando en la pantalla de grabado F2-2 File Type A).

    Compilá el programa que acabás de escribir, tipeando

    CPP FACIL.SEU

    Si se produjo algún error, volvé a revisar la sintaxis del programa (utilizando el procesador de texto) y compilá nuevamente el programa.

    Observá que ahora en el diskette hay dos programas más: FACIL.SEU y FACIL.EXE.

    Pedile al sistema operativo que ejecute el programa escribiendo FACIL y presionando <Enter>.

    ¿Qué hizo el programa? ¿Era lo que esperabas?

    Ejecutálo varias veces, y releé el programa fuente (el que está escrito en PSEUDO PASCAL) para tratar de entender como funciona.

    Error! Marcador no definido.

    Eeeee Error! Marcador no definido.EJERCITACION

    EJERCICIO 1

    1.1 Modificá el programa fuente FACIL.SEU para que muestre por pantalla el nombre de cada uno de los integrantes de tu grupo de trabajo, recompilá y ejecutá. No olvides cambiar el nombre al grabar si no deseas perder el programa original.

    1.2 Hacé una lista explicando que significan las palabras compilador, intérprete, lenguaje de máquina, lenguaje fuente, formato ASCII, la extensión .SEU, la extensión .EXE, sintaxis.

    5)Corrigiendo errores del programa

    La mayoría de las veces que escribas un programa, cometerás errores de sintaxis que tendrás que corregir para poder obtener la traducción y poder ejecutarlo. El PSEUDO-PASCAL comienza la traducción del programa y cuando encuentra algo que no comprende detiene el proceso y te informa en que línea se detuvo y el motivo de su detención, dándote una pista para encontrar el error.

    Veamoslo con un ejemplo.

    Tratá de compilar el programa DEMO2.SEU escribiendo:

    CPP DEMO2.SEU

    El compilador tratará de realizar la traducción pero al llegar la línea número 4 encontrará un error.

    En pantalla aparecerá el siguiente mensaje:

    Error: Identificador desconocido

    En la linea 5 del archivo DEMO2.SEU

    ESCRIBAR(' tiene ');

    ^

    Veamos a que se debió el error.

    Edita el programa DEMO2.SEU utilizando un procesador de texto.

    El programa debe verse así:

    programa error;

    comienzo

    escribir('Este programa');

    escribar(' tiene '); <<---- línea 5

    escribir(' un error. ');

    fin.

    2

    Sin ser demasiado observador, es fácil adivinar cuál fue el error. El encargado de escribirlo tipeó mal la instrucción "escribir" poniendo en su lugar la instrucción "escribar" que no existe dentro del conjunto de instrucciones válidas que reconoce el PSEUDO-PASCAL.

    Corregí el error, grabá y recompilá hasta lograr obtener el archivo traducido (DEMO2.EXE) y por último ejecutalo.

    En el Apéndice B: Errores de compilación, hay una lista completa de los errores que se producen durante la compilación con una explicación breve de la causa que lo motivó. Consultala cuando la necesites.

    Error! Marcador no definido.

    Error! Marcador no definido.EJERCITACION

    Los siguientes son los errores que se producen con mayor regularidad. Identifica cada uno de los mensajes del compilador y la manera de corregir el programa en cada caso:

    1.3 Probá que sucede si no colocás un punto y coma al final de una instrucción

    1.4 Probá que sucede si no colocás una de las comillas dentro de la instrucción escribir(' un error.').

    1.5 Probá que sucede si no colocás el punto luego de la instrucción FIN


    Error! Marcador no definido.

    Error! Marcador no definido.

    2

    Error! Marcador no definido.Dándole órdenes a la computadora

    Error! Marcador no definido.

    . Forma de trabajo

    . Formato de los programas

    . Las primeras instrucciones

    0)Un comentario antes de empezar

    A lo largo de la guía, vas a encontrar numerosos ejemplos; escribí esos ejemplos en la computadora y fijate qué es lo que hacen, tratá de ver cómo funcionan, y tratá de hacerles algunas modificaciones para ver qué pasa.

    Además vas a encontrar muchos ejercicios. Hacelos todos, y preguntá todo lo que no entiendas.

    1)Forma de un programa

    ¿Qué es un programa? Un programa es un algoritmo escrito en un lenguaje de programación. ¿Y qué es un algoritmo? Un algoritmo es una secuencia de pasos que resuelve determinado problema.

    Tratemos de entender la diferencia. Supongamos que quiero resolver el siguiente problema:

    'averiguar el resultado de la cuenta 4*10+50+2*5'.

    Un algoritmo que resolviera este problema podría ser:

    Calcular el valor de la cuenta 4*10+50+2*5

    Imprimir el resultado

    Programa <nombre_del_programa>;

    {Zona de declaración de bibliotecas}

    {Zona de declaración de constantes}

    {Zona de declaración de tipos}

    {Zona de declaración de variables}

    {Zona de declaración de subrutinas}

    comienzo

    {Ordenes del programa principal}

    fin.

    3

    Sin embargo, no puedo pedirle esto tal cual a una computadora, pues, como ya dijimos, las computadoras hablan un lenguaje muy distinto al nuestro, y por ello, necesito usar un traductor (compilador).

    Pero tampoco puedo pedirle a un compilador que sepa traducir esta secuencia de órdenes tal cual la hemos escrito. Cada compilador necesita que escribamos con cierta sintaxis en particular.

    Nuestro compilador (el CPP) necesita que lo que escribamos se vea más o menos así:

    En este esquema vemos que hay que decir cual es el nombre del programa, luego hay de declarar (si hace falta) bibliotecas, constantes, tipos, variables y subrutinas (por ahora no va a hacer falta; mas adelante veremos qué son cada una de estas cosas, no nos ocuparemos de ellas ahora), y luego viene el programa propiamente dicho.

    Un programa que resuelva nuestro problema podría verse así:

    Programa cuentas;

    comienzo

    escribir(4*10+50+2*5);

    fin.

    4

    Observa atentamente el uso del punto y coma(;) y el punto(.).

    2)Escribiendo en la pantalla

    Recién vimos una instrucción de pseudo-pascal: la instrucción escribir.

    Esta instrucción sirve para escribir en la pantalla de la computadora lo que le pidamos. La forma de usar esta instrucción es:

    escribir( <elementos_a_escribir> );

    Programa escritor;

    comienzo

    escribir('Ahora estoy escribiendo un mensaje');

    escribir('Abajo voy a escribir un numero');

    escribir(5);

    escribir('Abajo va una cuenta');

    escribir(1234+8765);

    escribir('Ahora va todo junto');

    escribir('dos por tres es ', 2*3);

    fin.

    5

    En el lugar que dice <elementos_a_escribir> pondremos, justamente, todo lo que querramos escribir. Observa el uso de los paréntesis y del punto y coma.

    En el ejemplo, podemos ver el uso de las comillas simples (') para identificar los mensajes que deben ir a la pantalla.

    EJERCITACION

    2.1 Hacé un programa que escriba los nombres de los integrantes del grupo con sus edades, y luego que escriba la suma de las edades. ¿Se podrá escribir el promedio? ¿Cómo?

    2.2 ¿Cuál es la diferencia entre las dos instrucciones siguientes? Probalo.

    escribir('10+5');

    escribir(10+5);

    3)Un poco de prolijidad: borrando la pantalla

    Hasta ahora escribimos en la pantalla sin preocuparnos por lo que había en ella. Pero queda muy desprolijo.

    Debería haber una forma de poder borrar la pantalla...

    También debería haber una forma de dibujar...

    O de hacer sonidos con la computadora...

    En realidad, hay muchas instrucciones que serían necesarias. Pero no todas son necesarias en todo momento, y sería molesto tenerlas todas (TODAS!) disponibles todo el tiempo. Es por esto que las instrucciones están agrupadas en 'bibliotecas' de instrucciones: si quiero usar una determinada instrucción, tengo que decir en qué 'biblioteca' está.

    Hay una biblioteca llamada pantalla, que agrupa muchas instrucciones que están referidas al uso de la pantalla. Hagamos un programa mejor presentado:

    Programa prolijo;

    usar pantalla;

    comienzo

    borrarpantalla;

    escribir('Mucho mejor, no?');

    fin.

    6

    Observa la línea que dice 'usar pantalla'. Esta línea está declarando que quiero usar la biblioteca pantalla. La instrucción borrarpantalla pertenece a dicha biblioteca.

    Nosotros usaremos tres bibliotecas distintas, llamadas pantalla, graficos y DOS.

    EJERCITACION

    2.3 ¿Qué pasaría en el programa anterior si no pedimos usar la biblioteca pantalla? Probá compilar el programa luego de haber borrado dicha línea.

    2.4 ¿Y qué pasará si pedimos usar la biblioteca pantalla, pero luego no usamos ninguna instrucción de esa biblioteca? Probá compilar dos programas iguales salvo que uno diga usar pantalla y el otro no. Observá el tamaño de los programas generados (.EXE). ¿Por qué es mejor tener que declarar las bibliotecas que vamos a usar?

    2.5 Ahora podés mejorar el programa de los nombres y las edades que hiciste en la ejercitación anterior.


    3

    Introducción a los gráficos

    . El modo gráfico

    . Coordenadas en pantalla

    . Primeras instrucciones gráficas

    1)El modo gráfico

    Hasta ahora sólo usamos la computadora para hacer cuentas y escribir. Todo el tiempo usamos la pantalla para escribir. Estuvimos usando lo que se llama el modo texto de la pantalla.

    Para poder dibujar, es necesario pasar al llamado modo gráfico.

    No es tan extraño como parece. Si te fijás en las carpetas de las materias del colegio, es muy probable que uses hojas rayadas para escribir, cuadriculadas para hacer cuentas, mapas para geografía, hojas blancas lisas para dibujos y hojas milimetradas para climogramas. Cada uno de estos tipos de hoja, hace el papel de un modo en tu carpeta: el modo hoja rayada para escribir, el modo hoja blanca lisa para dibujar, etc.

    El pseudo-pascal tiene instrucciones que le dicen que queremos usar el modo gráfico, instrucciones que le dicen que queremos usar el modo texto, e instrucciones propias de cada uno de los modos (para dibujar, escribir, etc).

    Todas la instrucciones del modo gráfico están agrupadas en la biblioteca llamada graficos. Entonces, cualquier programa que quiera usar el modo gráfico, deberá decir:

    usar graficos;

    como antes decíamos usar pantalla.

    2)Entrando y saliendo del modo gráfico

    Para poder hacer gráficos, hace falta entrar al modo gráfico. Para ello, existe la siguiente instrucción:

    modografico;

    Para volver al modo texto, está la instrucción:

    modotexto;

    Programa flash;

    usar graficos;

    comienzo

    modografico;

    modotexto;

    fin.

    7

    Analicemos este ejemplo.

    ¿Qué es lo que hace este programa?

    Nada, sólo pasa al modo gráfico e inmediatamente vuelve al modo texto. Sería mejor que se quedara algunos segundos en modo gráfico, para poder así ver lo que hubiéramos dibujado.

    Programa bimodo;

    usar graficos,pantalla;

    comienzo

    modografico;

    esperar(2000);

    modotexto;

    fin.

    8

    Corrijamos ese error.

    ¿Viste la instrucción nueva? Esperar(t) es una instrucción que hace que la computadora espere t milésimas de segundo.

    Está definida en la biblioteca pantalla.

    EJERCITACION

    3.1 ¿Te parece que se podrá usar más de una biblioteca simultáneamente? ¿Cuál de las siguientes formas te parece correctas? ¿Por qué las demás son incorrectas?

    a) usar graficos,pantalla;

    b) usar graficos;

    usar pantalla;

    c) usar pantalla y graficos;

    d) usar graficos, pantalla

    e) usar graficos,

    pantalla;

    3)Haciendo algunos dibujos: coordenadas

    Entrar al modo gráfico no tiene sentido si no lo usamos para dibujar. La instrucción

    punto(X,Y); dibuja un punto en la pantalla en modo gráfico en las coordenadas X,Y.

    ¿Qué es esto de las coordenadas? Cada lugar en la pantalla del modo gráfico (pixel) tiene una ubicación. Algo así como la latitud y longititud de cada ciudad sobre la superficie de la Tierra.

    Un pixel está ubicado a cierta distancia del borde izquierdo de la pantalla (a esta distancia se la llama X) y a cierta distancia del borde superior de la pantalla (llamada Y).

    (0,0) (719,0)

    (319,0) (719,319)

    1

    Veamos como se llaman las coordenadas de las cuatro esquinas de la pantalla:

    Las esquinas tienen estas coordenadas porque la pantalla mide 720 pixels de ancho y 320 pixels de alto.

    EJERCITACION

    3.2 ¿Cuáles serán las coordenadas del centro de la pantalla? ¿Y las del medio de cada borde?

    3.3 Hacé un programa que ponga un punto en el medio de la pantalla.

    4)Otras instrucciones de gráficos

    Veamos ahora nuevas instrucciones para dibujar:

    linea(X1,Y1,X2,Y2); dibuja una línea que une el punto de coordenadas (X1,Y1) con el de coordenadas (X2,Y2).

    circulo(Xc,Yc,R); dibuja un circulo con centro en el punto (Xc,Yc) y radio R.

    Recuerda que para poder usar estas instrucciones hay que pasar al modo gráfico.

    Programa demostracion;

    usar pantalla, graficos;

    comienzo

    borrarpantalla;

    escribir('Ahora estamos en modo texto');

    esperar(1000);

    modografico;

    linea(0,0,719,319);

    linea(0,319,729,0);

    circulo(360,160,40);

    circulo(360,160,80);

    esperar(1000);

    modotexto;

    escribir('Ahora tambien');

    esperar(1000);

    fin.

    9

    Hagamos un programa que use todo junto.

    Observa que siempre después de usar el modo gráfico es necesario volver al modo texto.

    EJERCITACION

    3.4 Hacer un programa que dibuje un cuadrado de 50 pixels de lado en el centro de la pantalla.

    3.5 Hacer un programa que dibuje un triángulo en el centro de la pantalla.

    3.6 Es muy común olvidarse de volver al modo texto antes del fin de un programa. Al finalizar la ejecución de un programa así, la computadora continúa trabajando normalmente, y podemos seguir usando el sistema operativo. El único inconveniente es que no podemos ver lo que estamos escribiendo.

    Una solución a este problema sería tener un programa que lo único que hiciera fuera volver a modo texto. Entonces, cuando nos quedemos sin poder ver lo que escribimos, sólo hay que ejecutar este programa (escribiendo sin ver) y listo. Escribí y compilá dicho programa.

    5)Pintando lo dibujos

    Los dibujos que hicimos hasta ahora sólo estaban hechos de líneas. Veamos como pintarlos.

    La instrucción

    pinta(x,y,color_limite); sirve para pintar una región delimitada con trazos hechos en el color_limite (los colores blanco y negro se llaman 1 y 0 en un monitor monocromático).

    Veamos un ejemplo:

    Programa permitido_e;

    usar graficos,pantalla;

    comienzo

    modografico;

    circulo(350,175,200);

    circulo(350,175,180);

    pinta(155,175,1);

    linea(260,100,440,100);

    linea(440,100,440,130);

    linea(440,130,320,130);

    linea(320,130,320,160);

    linea(320,160,380,160);

    linea(380,160,380,190);

    linea(380,190,320,190);

    linea(320,190,320,220);

    linea(320,220,440,220);

    linea(440,220,440,250);

    linea(440,250,260,250);

    linea(260,250,260,100);

    pinta(350,175,1);

    esperar(3000);

    modotexto;

    fin.

    10

    ¿Te das cuenta qué es lo que dibuja este programa? Probalo. (Este programa funciona bien en un monitor Hércules, pero no en un monitor color)

    Para entender cómo funciona la instrucción pinta, podemos pensar que internamente la computadora usa un lápiz para pintar. Primero, apoya la punta del lápiz en las coordenadas (x,y) que le indicamos en la instrucción pinta. Luego, empieza a mover el lápiz hacia la derecha, y sigue hasta que encuentra una línea del color color_límite, donde baja un poquito el lápiz y empieza todo de nuevo, pero hacia la izquierda.

    Los dos errores más comunes al usar la instrucción pinta son decirle que empiece a pintar en un punto que ya es del color del límite, o pedirle que pinte un área que no está completamente cerrada, y entonces el 'lápiz' se 'escapa' y termina pintando toda la pantalla.

    Hay muchas otras instrucciones de gráficos. Para aprender sus detalles, así como los códigos de los colores y otras cosas, lee el apéndice C: Gráficos.


    3

    Programas, programas, progamas...

    . Analizando programas más complicados

    . Un buen estilo de programación

    . Procedimientos

    1)Un programa más complicado

    Nuestros programas, hasta ahora, fueron bastante sencillos. Ni bien nos planteábamos un problema, podíamos escribir el programa que lo resolvía. Esto no siempre sucede así.

    Tratemos de analizar el siguiente programa (no es necesario que lo tipees en la computadora; pedile al ayudante que te dé una copia).


    Programa ferroviario;

    usar pantalla;

    procedimiento durmiente;

    comienzo

    escribir('▄▒▄▄▄▄▄▒▄');

    esperar(500);

    escribir(' ');

    esperar(500);

    fin;

    procedimiento tramo;

    comienzo

    durmiente;

    durmiente;

    durmiente;

    durmiente;

    fin;

    procedimiento via;

    comienzo

    tramo;

    tramo;

    tramo;

    fin;

    procedimiento locomotora;

    comienzo

    escribir('//^\\');

    esperar(500);

    escribir(' ░░░░░ ');

    esperar(500);

    escribir('░█ Q █░');

    esperar(500);

    escribir(' ');

    esperar(500);

    escribir(' █▀█ ');

    esperar(500);

    escribir(' ▀▀▀*****');

    esperar(500);

    escribir(' ****');

    esperar(500);

    escribir(' █▀█ **** *');

    esperar(500);

    escribir(' ▀▀** ******');

    esperar(500);

    escribir(' *** *****');

    esperar(500);

    escribir(' *** ****');

    esperar(500);

    escribir(' ███ ** ***');

    esperar(500);

    escribir('░█████░ *** *');

    esperar(500);

    escribir('░█████░ ***');

    esperar(500);

    escribir(' ░░░░░ ***');

    esperar(500);

    fin;

    procedimiento medio_vagon;

    comienzo

    escribir('░░░░░░░');

    esperar(500);

    escribir('░░░ ░░░');

    esperar(500);

    escribir('░░░░░░░');

    esperar(500);

    escribir('░░░░░░░');

    esperar(500);

    fin;


    procedimiento vagon;

    comienzo

    medio_vagon;

    medio_vagon;

    fin;

    procedimiento tren;

    comienzo

    locomotora;

    durmiente;

    vagon;

    durmiente;

    vagon;

    durmiente;

    vagon;

    durmiente;

    vagon;

    fin;

    comienzo {del programa ppal}

    borrarpantalla;

    via;

    tren;

    via;

    fin.


    ¿Qué es lo que hay de nuevo en este programa? Habrás observado la siguiente palabra:

    procedimiento

    Un procedimiento es una espacie de programa más pequeño. El objetivo de usar procedimientos es el de evitar repetir más de una vez la misma secuencia de instrucciones (para evitar trabajo y para disminuir la cantidad de errores que pudieran cometerse), y también el de hacer los programas más legibles.

    Al igual que un programa, un procedimiento tiene que tener un formato específico que es como el siguiente:

    Procedimiento <nombre_del_procedimiento>;

    {Zona de declaración de constantes}

    {Zona de declaración de tipos}

    {Zona de declaración de variables}

    {Zona de declaración de subrutinas}

    comienzo

    {Ordenes del procedimiento}

    fin;

    11

    También habrás observado la siguiente línea:

    comienzo {del programa ppal}

    Lo que está entre llaves es un comentario, y es completamente ignorado por el compilador. Usaremos todos los comentarios que sean necesarios para que la lectura del programa sea clara.

    Recordá siempre que los comentarios están destinados a la persona que lee el programa y no al compilador.

    EJERCITACION

    4.1 Compara esta estructura con la del programa principal (dada al principio del capítulo dos). ¿Cuáles son las semejanzas? ¿Cuáles las diferencias?

    2)Analizando el programa

    Habrás observado que el programa anterior está dividido en dos grandes partes, que llamaremos el programa principal (desde el último comienzo hasta el fin) y los procedimientos, que están antes.

    Cada uno de los procedimientos se encarga de hacer tareas pequeñas y sencillas.

    El programa principal es quien se encarga de unir todos estos procedimientos, indicando en qué momento debe actuar cada uno.

    Veamos qué hace cada uno de los procedimientos del programa ferroviario.

    El procedimiento durmiente simplemente hace algunos escribir en la pantalla. Luego de cada escribir, hace una pausa. Hasta ahora, la única novedad es la de llamar procedimiento a algo que antes llamábamos programa.

    El procedimiento tramo es más innovador. Este procedimiento llama cinco veces al procedimiento durmiente. ¿Qué significa "llama"? Hacer un procedimiento es equivalente a definir una nueva instrucción del lenguaje. Entonces, tramo está invocando cinco veces esa nueva instrucción que acabamos de definir llamada durmiente.

    De la misma forma, via sólo llama a la nueva instrucción tramo.

    EJERCITACION

    4.2 ¿Qué es lo que hacen los procedimientos locomotora, medio_vagon, vagon y tren?

    4.3 ¿Será importante el orden en que se declaran (escriben) los distintos procedimientos? Probá escribir el procedimiento tramo después del procedimiento via. Y luego via despues de locomotora. ¿Qué sucede? ¿Por qué?

    4.4 ¿Será importante el orden en qué se llaman los procedimentos desde el programa principal? Hacé dos programas para demostrar tu respuesta.

    3)Poniendo las cosas en claro

    En el programa anterior definimos varios procedimientos llamados durmiente, tramo, via, locomotora, medio_vagon, vagon y tren.

    Nadie nos obliga a ponerles esos nombres. Sin embargo, queda mucho más clara cuál es la función que cumple cada procedimiento si elegimos nombres declarativos en vez de nombres como X1, NACHO, AA, o mucho peor, si llamamos tren a un procedimiento que dibuja una via, y via a uno que dibuja un avión.

    Siempre que tengas que elegir el nombre de un procedimiento, elegilo para que quede claro qué es lo que realiza sin tener que analizar detalladamente el mismo.

    Nosotros ya habíamos usado algunos procedimientos sin saberlo. Las instrucciones borrarpantalla, modografico, modotexto, linea, etc. son todos procedimientos que están declarados en las bibliotecas llamadas pantalla y graficos. Más adelante aprenderemos cómo guardar nuestros procedimiento en bibliotecas.

    4)Forma de programar

    En el punto uno hablamos de que podíamos resolver programas más complicados. Existe una técnica para resolver problemas llamada programación TOP-DOWN, que puede traducirse libremente como programación GENERAL-ESPECIFICA. Más adelante volveremos a hablar de esta técnica, pero por ahora tratemos de ver un ejemplo de cómo pensar un programa usándola.

    ¿Cómo es que resolvimos el problema de hacer que un tren apareciera por la pantalla?

    Primero pensamos que el programa debía verse más o menos así:

    Dibujar una via

    Dibujar un tren

    Dibujar una via

    Y entonces escribimos el programa siguiente:

    comienzo

    via;

    tren;

    via;

    fin.

    Por supuesto que todavia no podíamos ejecutar este programa, pues no estaba aún definido qué eran via y tren. Sin embargo, este programa resolvía el problema que teníamos dejandonos planteados dos problemas menores: dibujar una via y dibujar un tren.

    El siguiente paso fue olvidarse momentáneamente del problema original, y preocuparse solamente por cómo dibujar una vía. Para esto, pensamos:

    Para dibujar una vía, voy a

    dibujar un tramo,

    y otro tramo,

    y otro

    Por lo tanto, escribimos un procedimiento que resolvía el problema:

    procedimiento vía;

    comienzo

    tramo;

    tramo;

    tramo;

    fin;

    Nuevamente achicamos el problema de dibujar una vía al de dibujar un tramo de vía. Así continuamos con todo el programa.

    La programación top-down es una técnica que permite resolver problemas complejos tratándolos como conjuntos de problemas más pequeños.

    5)Como funcionan los procedimientos

    {1} Programa inutil; {13} procedimiento AB;

    {2} usar pantalla; {14} comienzo

    {3} procedimiento A; {15} A;

    {4} comienzo {16} B;

    {5} escribir('A1'); {17} fin;

    {6} escribir('A2'); {18} comienzo

    {7} fin; {19} borrarpantalla;

    {8} procedimiento B; {20} B;

    {9} comienzo {21} AB;

    {10} escribir('B1'); {22} A;

    {11} escribir('B2'); {23} fin.

    {12} fin;

    12

    Aclaremos ahora qué es lo que pasa cuando ejecutamos un programa que tiene procedimientos.

    El resultado de su ejecución de este programa sería lo siguiente escrito en la pantalla:

    B1

    B2

    A1

    A2

    B1

    B2

    A1

    A2

    En el programa agregamos números entre llaves para poder identificar cada línea en la siguiente explicación (recordá que lo que está entre llaves es un comentario).

    El comienzo del programa está en la línea 18. Cuando empieza la ejecución del programa, primero se borra la pantalla (línea 19); luego se encuentra una llamada al procedimiento B (línea 20). Entonces le ejecución se traslada a las líneas que indican como realizar el procedimiento B, es decir, las líneas 9, 10, 11 y 12. Al llegar a la línea 12, donde dice fin, termina la ejecución del procedimiento B, y se debe continuar con lo que se estaba haciendo antes.

    Entonces, la siguiente línea que se ejecuta es la número 21. Esta dice que hay que realizar el procedimiento AB. Para ello, se comienza a ejecutar la línea que dice cómo realizar dicho procedimiento: 14, 15. En este punto es necesario realizar el procedimiento A, por lo que se ejecutarán las líneas 4, 5, 6 y 7; sigue la ejecución del procedimiento AB en la línea 16 (que hace que se ejecuten las líneas 9, 10, 11 y 12 del procedimiento B), y termina en la línea 17 con la palabra fin.

    Todo esto se realizó para ejecutar el procedimiento AB, que fue llamado en la línea 21. Entonces hay que seguir por la 22 (que hace que se ejecuten las líneas 4, 5, 6 y 7 del procedimiento A) y ,por ultimo, por la línea 23 que dice fin.

    Habrás notado que cada vez que ejecutamos un procedimiento definido por nosotros, éste estaba escrito antes de ser llamado. Antes significa que si yo leo todo el programa de principio a fin, primero encuentro la declaración del procedimiento, y luego puedo usarlo.

    Esto es algo estrictamente necesario; si no fuera así, el compilador nos daría un error antes de poder terminar su trabajo.

    6)Una nueva instrucción antes de la ejercitación

    Antes de realizar la ejercitación que viene a continuación, sería bueno aprender a usar la instrucción

    irxy(coordenadaX,coordenadaY); que sirve para ubicar el cursor en la pantalla antes de escribir algo en modo texto.

    Es decir, el siguiente programa escribe en la pantalla algo más o menos parecido al recuadro de la derecha.

    programa demo_de_irxy;

    usar pantalla;

    comienzo

    borrarpantalla;

    irxy(1,1); escribir('Hola');

    irxy(6,6); escribir('Hola');

    irxy(11,11); escribir('Hola);

    irxy(16,16); escribir('Hola');

    irxy(21,11); escribir('Hola');

    irxy(26,6); escribir('Hola');

    irxy(31,1); escribir('Hola');

    fin.

    13

    (1,1) (80,1)

    (25,1) (25,80)

    2

    Hola Hola

    Hola Hola

    Hola Hola

    Hola

    3

    En el capítulo tres hablamos de las coordenadas del modo gráfico. Las coordenadas del modo texto son similares, sólo que varían entre 1 y 80 para X y entre 1 y 25 para Y. Las coordenadas de las cuatro esquinas en modo texto son:

    Observa que la instrucción irxy está definida en la biblioteca pantalla ( y por lo tanto, para usarla habrá que decir usar pantalla; al principio del programa).

    EJERCITACION

    4.5 Realizar un procedimiento que sirva como presentación del grupo. Para ello pueden usar instrucciones del modo gráfico o del modo texto.

    4.6 Agregar el procedimiento de recién a todos los programas anteriormente hechos.

    4.7 Probar y analizar qué tipo de error indica el compilador en cada uno de los siguientes casos. ¿Es correcto el mensaje de error?

    - No escribir fin. al final del programa principal

    - No escribir fin; al final de un procedimiento cualquiera

    - No escribir fin; al final de un procedimiento definido justo antes de que empiece el programa principal.

    - Usar un procedimiento no definido.

    - No usar un procedimiento previamente definido.


    5

    Programación Top-Down

    . Estructura de un programa

    . Diseño Top-Down

    1)La estructura de un programa bien escrito

    Existen algunas reglas que hacen que tu programa sea fácil de escribir, leer y modificar:

    - Las primeras líneas de un programa deben explicar de que se trata.

    - Cada idea importante debe estar en un procedimiento aparte.

    - Cada procedimiento debe contener una o más líneas de comentarios que indiquen cuál es el objetivo del mismo (utilizando { }).

    - Los procedimientos deben llamarse con un nombre que denote claramente al lector para qué sirven.

    - El programa principal debe indicar qué hará todo el programa.

    Esta es la estructura que debe tener cualquier programa que use procedimientos:

    programa nombre_del_programa;

    usar nombre_de_librerias_a_usar;

    procedimiento nombre_de_procedimiento_1;

    {descripción del procediminto 1}

    comienzo

    :

    {instrucciones del procedimiento 1}

    :

    fin;

    procedimiento nombre_de_procedimiento_2;

    {descripción del procedimiento 2}

    comienzo

    :

    {instrucciones del procedimiento 2}

    :

    fin;

    :

    {declaración de otros procedimientos}

    :

    comienzo {descripción del programa principal}

    :

    {instrucciones del programa -> varias llamadas a procedimientos}

    :

    fin.

    En un programa que contiene procedimientos, lo primero es analizar y escribir la rutina principal. Aquí se da un panorama general del programa, evitando los detalles.

    Para cualquier programa, la rutina principal debe estar estructurada de la misma manera.

    comienzo {descripción del programa}

    :

    :

    {cuerpo de la rutina principal (mayormente llamadas a procedimientos)}

    :

    :

    fin.

    La primera sentencia de la rutina principal debe ser un comienzo y un comentario con la descripción del programa, y la última un fin (apertura y cierre del programa principal).

    El cuerpo de la rutina principal indica qué procedimientos se van a ejecutar y en qué orden, mientras que los detalles del programa aparecen en los procedimientos. Todos los procedimientos tienen la misma forma, no importa lo que hagan.

    procedimiento nombre-del-procedimiento ;

    {descripción del procedimiento}

    comienzo

    :

    :

    {cuerpo del procedimiento (la mayor parte no son llamadas a procedimientos)}

    :

    :

    fin;

    Todas los procedimientos deben comenzar con un comentario que defina la acción del mismo y la palabra reservada comienzo, y deben terminar con un fin; (apertura y cierre del procedimiento).

    Recuerda qué símbolos de puntuación deben utilizarse después de fin, segün si sea un procedimiento o el programa principal:

    ; (punto y coma) al finalizar el procedimiento

    . (punto) al finalizar el programa principal

    El cuerpo del procedimiento puede contener llamadas a otros procedimientos.

    Es buena idea destacar el cuerpo de la rutina principal y de los procedimientos espaciándolas adecuadamente. De esta forma se ve con mayor claridad cuál es el comienzo y el final de cada uno de ellos. Los blancos entre los procedimientos también aclaran este aspecto.

    Algunas de estas reglas son requeridas por el computador: el fin al final de la rutina principal y de los procedimientos.

    Otras reglas son indistintas para la computadora como los comentarios, los espacios para destacar el cuerpo de las rutinas y las líneas en blanco. Estas se usan sólo para hacer más clara la lectura del programa.

    EJERCITACION

    5.1 ¿Qué va al principio de la rutina principal?

    5.2 ¿Qué va al final de la rutina principal?

    5.3 ¿Cuál es el propósito del fin?

    5.4 ¿Cuál es el propósito de los comentarios en blanco en el programa?

    2)Diseño Top‑Down de un programa

    Supongamos que tenés tres amigas ANA, NAN y ANN y decidís realizar un programa para que sus nombres se vean escritos en pantalla en forma vertical.

    El programa tendrá una procedimiento que muestre por pantalla una gran N y otra procedimiento que muestre una gran A. Así se pueden mostrar los tres nombres.

    Seguramente te estarás preguntando cómo se muestra por pantalla una gran N o una gran A. Es fácil perderse en estos detalles cuando se trata de resolver un problema.

    Es mejor ignorar los detalles al principio y comenzar con la rutina principal. Imaginá qué deberá ésta indicarle a la computadora que haga.

    Puede no haber sentencias PSEUDO-PASCAL para realizarlas. En ese caso, usá un procedimiento.

    Veamos este ejemplo escrito informalmente (aunque esté en castellano, no está en PSEUDO-PASCAL):

    programa nombres

    comienzo

    limpiar la pantalla

    mostrar una gran A

    mostrar una gran N

    mostrar una gran A

    fin

    14

    Le podemos decir a la computadora que ejecute la primera línea con una instrucción simple: borrarpantalla.

    Además, tendremos que agregar el uso de la biblioteca pantalla.

    Para ejecutar la segunda línea la computadora necesita varios escribir, que juntos mostrarán una letra como ésta

    XXX XX

    XXXX XX

    XX XX XX

    XX XXXX

    XX XXX

    También tendremos que dejar una o más líneas en blanco para dejar espacios entre las letras.

    No nos preocupamos de los detalles del escribir ahora. Lo pensamos como un procedimiento GRAN-N.

    programa nombres; comienzo

    usar patalla; :

    fin;

    procedimiento gran_n; comienzo

    {muestra una n grande} {escribe en letras grandes con n y a}

    comienzo borrarpantalla;

    : gran_a;

    fin; gran_n;

    procedimiento gran_a; gran_a;

    {muestra una gran a} fin.

    15

    Podrás escribirla luego, después de finalizar la rutina principal. Esta es la rutina principal completa y la estructura general del programa:

    Después podrás completar los detalles en los EJERCICIOS al final del capítulo (y los procedimientos GRAN-A y GRAN-N).

    El método que hemos utilizado para resolver este problema se llama programación top‑down.

    Reglas para la programación Top‑Down

    1‑ Escribir una versión INFORMAL en castellano de la rutina principal

    2‑ Convertir a PSEUDO-PASCAL cada frase en castellano que se puede traducir a una o dos sentencias

    3‑ Si no se pueden convertir en una o dos sentencias PSEUDO-PASCAL, convertir en una llamada a un procedimiento

    4‑ Realizar el mismo proceso para cada procedimiento definido en el paso 3

    Este método tiene dos ventajas. Primero te hace pensar sobre lo que se supone que haga todo el programa. Segundo, te evita perderte y confundirte en los detalles.

    EJERCITACION

    5.5 En tus propias palabras, ¿qué significa programación top‑down?

    5.6 ¿Porqué es útil este tipo de programación?

    5.7 Utiliza el método top‑down para completar la planificación del programa NOMBRES. Ingresalo en la computadora y compilalo.

    El programa mostraría el nombre a la izquierda de la pantalla y hacia abajo. Ejecútalo y corrige los errores. Podés grabarlo si lo deseas.

    5.8 Cambia la rutina principal de NOMBRES para mostrar el nombre ANN. Cámbialo de nuevo para mostrar NAN. Cámbialo nuevamente para mostrar NANA y luego ANANA. Puedes grabar alguna de estas versiones si lo deseas.

    5.9 Planteá algún problema cotidiano, y resolvelo usando el método top-down (no necesariamente usando la computadora)


    6

    Variables

    . Definiciones

    . Uso de variables y constantes

    1)¿Qué es una constante?

    Esta es un pregunta fácil de responder: una constante es un valor que no varía. Por ejemplo, la cantidad de días que tiene una semana es constante, así como la cantidad de meses que tiene el año. Otros ejemplos de constantes podrían ser la distancia de Capital Federal a Mar del plata, el valor de p, la cantidad de lados que tiene un cuadrado, la hora en que los ingleses toman el té, el nombre del país en que vivimos, etc.

    2)¿Qué es una variable?

    Podemos responder esta pregunta de forma parecida a la anterior: una variable es un valor que varía. Veamos algunos ejemplos: la cantidad de días que tiene el mes es variable, pues depende del mes del que se esté hablando, la distancia de Capital Federal a una auto que está viajando hacia Mar del Plata, la proporción entre varones y mujeres en el país, la cantidad de lados que tiene un polígono, la hora en que me levanto, el nombre del país sede del mundial de fútbol, etc.

    3) ¿Qué es un tipo?

    Tanto la constantes como las variables que mencionamos en los dos puntos anteriores tienen cada una determinado tipo. Por ejemplo una semana tiene días, un auto puede estar a determinados kilómetros de capital federal, p es un número real, un polígono tiene una cantidad entera de lados, el té se toma a determindads horas, el nombre de un país es una cadena de caracteres.

    Todas estas cosas (días, kilómetros, reales, enteros, horas, cadena de caracteres) son tipos distintos.

    Los tipos son muy importantes, porque si los uso correctamente no voy a hacer frases incoherentes. Está mal decir:

    'Voy a tardar 10 kilómetros'

    'Está a 5000 caracteres de distancia'

    'La proporcion entre hombres y mujeres es de 1.23 dias'

    4)¿Qué es un valor?

    Cuando hablamos de valor nos referimos al 'contenido' de una variable o de una constante. El tipo se aplica tanto a la variable o constante como a su valor.

    Veamos ejemplos de valores: p vale 3.1415926, la cantidad de lados de un polígono podría valer 8 o 4, la distancia al auto puede ser 384.5 kilómetros, y los sábados me levanto a las 11 horas.

    5)Rangos de valores

    Una constante o variable no puede tomar cualquier valor. Generalmente, los valores que puede tomar está determinado por el tipo. Por ejemplo, una hora puede valer entre 0 y 23; una cantidad de kilómetros tiene que valer más que 0, la cantidad de días que tiene un mes varía entre 28 y 31, según el mes, etc.

    Se llama rango de valores a todos los valores que puede tomar determinado tipo.

    6)Usando variables

    Bueno, llegó el momento de usar todo esto.

    En pseudo-pascal, como en casi todo lenguaje de programación, hay una forma de representar a las variables y a las constantes.

    ¿Por qué necesitamos hacerlo? Porqué generalmente el objetivo de un programa es manejar información (datos de entrada) para poder producir un resultado (dato de salida). Y necesitamos alguna forma de referirnos a información que no conocemos en el momento de escribir el programa (pero que si conoceremos al usarlo).

    Al principio de la guía hicimos un programa que calculaba e imprimía el resultado de sumar dos números determinados (1234+ 8765). En realidad, este era un programa bastante tonto, pues es muy incomodo tener que usarlo para saber que 1234+ 8765= 9999, ya que ese programa no nos dice nada acerca de 1233+1, ni de 1+1. Lo que necesitamos es un programa más general, que permita calcular la suma de dos números cualesquiera.

    Una parte de un programa que hiciera eso podría ser:

    A:=10;

    B:=20;

    escribir('La suma da como resultado :', A+B);

    ¿Qué hay de nuevo en estas líneas?

    Primero, veamos el uso de A y B.

    A y B son los nombres de dos variables, que representan los números que quiero sumar.

    Los nombres de las variables pueden ser de cualquier longitud, y deben estar formados por letras, números o algunos caracteres especiales como el subrayado ('_'), pero nunca deben empezar con un número.

    Recordemos (y completemos) la definición de variable:

    Una variable es un elemento que está identificado por su nombre y su tipo. En todo momento, una variable tiene un valor, que puede variar dentro del rango de valores que corresponde a su tipo.

    Siempre que quiera usar una variable para hacer un programa en pseudo-pascal, necesito decir como se llama y cual es su tipo, antes usarla por primera vez. Esto se llama declarar una variable.

    Veamos entonces como declarar variables.

    En la zona de declaración de variables del programa principal o de un procedimiento (ver capítulos 2.1 y 4.1), es decir, antes del comienzo de las instrucciones, debo colocar:

    variables

    <nombre_variable_1> : <tipo_variable_1> ;

    ...

    <nombre_variable_n> : <tipo_variable_n> ;

    poniendo donde dice <nombre_variable_i> el nombre de la variable que quiero declarar, y colocando a continuación su tipo (donde dice <tipo_variable_i>);

    Como ya dijimos, el nombre de una variable puede ser de cualquier longitud, y contener letras y números (y no empezar con números).

    Con respecto a los tipos de las variables, el pseudo-pascal provee los tipos de datos más comunmente usados. Algunos de estos tipos son (más adelante veremos otros):

    entero

    real

    cadena

    El tipo entero se usa para representar valores enteros, es decir, 0, 1, 10, -104, 1432, etc.

    El tipo real sirve para valores como 0.34, 10.343, 3.14159, 10.0 (observa que se usa punto en lugar de coma, y que 10 puede ser representado como entero o como real).

    El tipo cadena sirve para cosas como 'Argentina', 'hola', 'ABCE', etc., que son cadenas de caracteres.

    Nuestro programa completo quedaría entonces:

    Programa sumador;

    Variables

    A:entero;

    b:entero;

    Comienzo

    A:=10;

    B:=20;

    Escribir('La suma da como resultado :', A+B);

    Fin.

    16

    Nos falta ahora entender qué es lo que hace la línea que dice A:=10.

    Simplemente lo que estamos diciendole a la computadora que haga es que guarde un 10 en la variable A.

    ¿Que hará el siguiente programa?

    Programa que_hace;

    usar pantalla;

    variables

    num:entero;

    calle:cadena;

    comienzo

    borrarpantalla;

    num:=302;

    calle:='Santa Fe '

    writeln('Tengo que ir a ',calle,num);

    num:=1200;

    writeln('Y luego a ',calle,num);

    calle:='Sarmiento ';

    writeln('Y por ultimo a ',calle,num);

    fin.

    17

    Observa atentamente cómo varía el valor de las variables a lo largo del programa.

    EJERCITACION

    6.1 Dar cinco ejemplos de variables de la vida diaria, especificando en cada caso cual es el nombre, tipo y rango de valores de cada una.

    6.2 Hacer un programa restador y un programa multiplicador, parecidos al programa sumador que hicimos como ejemplo.

    6.3 Decir cuáles de los siguientes nombres para variables o constantes son incorrectos y por qué:

    XX X* *X X2 2X SOLO UNA 332 MAYUS minus MeZcLa _R SOLO_UNA

    6.4 ¿Cuál será la ventaja de elegir correctamente el nombre de las variables? Por elegir correctamente se entiende, por ejemplo, no llamar PLATA a una variable que representa cierta cantidad de tiempo.

    6.5 ¿Habrá alguna diferencia si escribimos el nombre de una variable en mayúsculas o en minúsculas? Verificarlo.

    7)Usando constantes

    Al igual que para las variables, las constantes deben ser declaradas antes de poder ser usadas.

    Definamos primero qué es una constante.

    Una constante es un elemento que está identificado por su nombre y su tipo. En todo momento, una constante tiene el mismo valor, que puede debe pertenecer al rango de valores que corresponde al tipo de la constante.

    Para declarar las constantes, la forma es la siguiente:

    Constantes

    <nombre_de_constante_1> = <valor_constante_1> ;

    ...

    <nombre_de_constante_n> = <valor_constante_n> ;

    donde <nombre_de_constante_i> es un nombre de cualquier longitud, formado por letras, numeros o el caracter subrayado, y <valor_constante_i> es el valor de la constante.

    El tipo de la constante queda determinado por el valor que tiene. Por ejemplo, si declaro:

    Constantes

    impuesto=3.5;

    distancia=4000;

    nombre='Andres';

    la constante impuesto será de tipo real, la constante distancia será de tipo entero, y la constante nombre de tipo cadena.

    Más adelante veremos cuándo y por qué usar constantes.

    EJERCITACION

    6.6 Dar cinco ejemplos de constantes de la vida diaria, especificando en cada caso cual es el nombre, tipo y rango de valores de cada una.

    6.7 ¿Para qué te parece que pueden servir las constantes dentro de un programa? Dar algún ejemplo.


    7

    Entrada y salida

    . Mejorando la presentación

    . Escribiendo en la pantalla

    1)Introducción

    En el punto 6 reescribimos el programa sumador. La nueva versión usa variables en vez de las constantes que usábamos al principio. Sin embargo, todavía este programa no nos es muy útil, pues si queremos saber cuanto da la suma de dos números, tenemos que modificar el código fuente del programa, compilarlo y ejecutarlo para ver el resultado. Si las variables se usaran sólo asi, no servirían para mucho.

    Varias veces dijimos que el objetivo de un programa es obtener datos, procesarlos y emitir los resultados. Ya vimos algunas formas de emitir resultados (realizando gráficos o con la instrucción escribir), y también de procesar datos (al hacer cuentas, por ejemplo). Este es el momento de que aprendamos cómo puede hacer un programa para obtener datos.

    Para realizar la lectura de la información, necesitamos una nueva instrucción, la instrucción leer. Leer es el tercer componente del ciclo entrada-proceso-salida que mencionábamos recién.

    ¿De dónde obtendrá el programa la información que necesite? Probablemente, de alguna persona que esté sentada frente a la computadora usando el teclado, o bien de algún tipo de computadora a través de otro periférico de entrada.

    Cuando poníamos

    escribir("hola");

    nombre:="Eduardo";

    escribir(nombre);

    lo que hacia el programa era escribir la constante "hola" en la pantalla, o bien, escribir el valor de la variable nombre en la pantalla.

    Cuando usamos leer NO podemos usar constantes (ver la ejercitación). Pero sí podemos modificar el valor de una variable. Veamos algún ejemplo.

    Programa QuienSos;

    variables

    nombre:cadena;

    comienzo

    escribir("Como te llamas?");

    leer(nombre);

    escribir("Hola ",nombre);

    fin.

    18

    ¿Qué hace este programa? Probalo.

    La primera instrucción (como ya deberías saber) muestra una frase en la pantalla.

    La segunda instrucción hace que la computadora se quede esperando hasta que alguien escriba algo en el teclado y luego presione <ENTER>.

    Mientras la computadora espera, aparece un cursor en la pantalla indicando dónde se verá lo que escribas.

    Luego, asigna a la variable nombre lo que escribiste y por último, la tercera instrucción escribe un mensaje con el nombre recién escrito.

    La instrucción leer también funciona con variables enteras o reales. Con esto, podemos hacer una nueva versión del programa sumador:

    Programa ReSumador;

    variables s1,s2:enteras;

    comienzo

    escribir("Ingrese los dos números a sumar");

    leer(s1,s2);

    escribir("El resultado es: ",s1+s2);

    fin.

    19

    Finalmente, tenemos un buen programa sumador.

    Una vez compilado, podemos usarlo una y otra vez para calcular el resultado de distintas sumas sin tener que recompilar.

    2)Mejorando la presentación

    Hagamos una pequeña modificación en el programa ReSumador. Al declarar las variables pongamos:

    variables s1,s2:reales;

    Recompilá y probá el programa. ¿Qué significan esos números que da como respuesta?

    Cuando la computadora necesita escribir números muy grandes (o muy pequeños) usa una notación llamada notación científica. En este sistema de notación, los números se representan escribiendo el dígito más significativo (el primero desde la izquierda que no es cero), un punto y el resto de los dígitos, seguidos de una indicación de cuantos lugares hay que mover el punto para obtener el número original.

    Por ejemplo, el número 145 se representa 1.45E02, donde E02 significa mover el punto dos lugares a la derecha; el 0.0145 se representa 1.45E-02, donde E-02 indica mover el punto a la izquierda dos lugares.

    Veamos una lista con otros números

    1 1E00

    10 1E01 0.1 1E-01

    100 1E02 0.01 1E-02

    1000 1E03 0.001 1E-03

    10000 1E04 0.0001 1E-04

    Un problema que tiene esta representación es que redondea los números. Por ejemplo, el número 1234567890 se representa 1.2346E09, que también es la representación del 12345600000.

    La notación científica es cómoda para números grandes o pequeños, pero para números 'comunes' no hace falta usarla. La instrucción escribir con variables de tipo real, siempre usará esta notación, a menos que le indiquemos con cuantos dígitos queremos ver el resultado en la pantalla.

    Las instrucciones

    num:=445.3;

    escribir(num);

    mostrarían en pantalla: 4.4530000000E+02

    En cambio, si usáramos

    escribir(num:3:1);

    veríamos: 445.3

    Al poner num:3:1 estamos pidiéndo que escriba el valor de la variable num con tres dígitos a la izquierda del punto y uno a la derecha.

    Otros ejemplos:

    num:=1234.04

    escribir(num); -> 1.2340400000E+03

    escribir(num:4:2); -> 1234.04

    escribir(num:7:4); -> 1234.0400

    escribir(num:4:0); -> 1234

    Observa que en último ejemplo no escribió los decimales. Si el número de dígitos que está antes del punto no alcanza para llenar el espacio solicitado, se agregan espacios; si el número de dígitos que está después del punto no alcanza, se agregan ceros (ver el cuarto ejemplo recién mencionado).

    También es posible mejorar la presentación de enteros y cadenas, para hacer que estén alineados. Por ejemplo,

    escribir('Hola'); -> Hola

    escribir('Hola':6); -> Hola

    escribir(4); -> 4

    escribir(4:4) -> 4

    EJERCITACION

    7.1 Explicar por qué no es posible usar constantes con la instrucción leer.

    7.2 Realizar nuevas versiones de los programas para multiplicar y restar hechos en el ejercicio 6.2.

    7.3 ¿Cuál es el número más grande que puede almacenarse en una variable de tipoentero? ¿Y real? Hacer un programa para verificarlo.


    8

    Tomando decisiones

    . La estructura de una condición

    . Condiciones compuestas

    1)Repaso

    Pensemos en el tipo de programas que hicimos hasta ahora.

    Nuestros primeros programas eran sólo secuencias de instrucciones. Siempre hacían lo mismo, sin importar ni como ni cuantas veces los usáramos.

    Luego aprendimos a usar procedimientos, que nos ayudaban a escribir menos y a cometer menos errores, pero todavía nuestros programas seguían haciendo siempre lo mismo.

    Sin embargo en la vida diaria es muy común que optemos por hacer una cosa u otra según se cumpla o no alguna condición. Por ejemplo, es común usar frases como:

    "Si baja el dólar, entonces compro mi computadora, si no, uso las del colegio".

    Es decir, necesitamos alguna forma de hacer programas que realicen cosas distintas según alguna condición sea verdadera o falsa.

    2)La instrucción si

    Para poder tomar decisiones, necesitaremos usar la instrucción siguiente:

    si condición entonces

    acción1

    sino

    acción2;

    donde acción1 y acción2 son cualesquiera de las instrucciones que ya conocemos, y condición es algo de la forma

    operando1 operador_de_relación operando2

    y los operandos pueden ser variables o constantes, y el operador_de_relación puede ser uno de los siguientes:

    = (igual) < (menor)

    > (mayor) <= (menor o igual)

    >= (mayor o igual) <> (distinto).

    Veamos algunos ejemplos de condiciones:

    precio=5 (Operandos: precio y 5; operador: =)

    dolar<peso (Operandos: dolar y peso; operador: >)

    4=4

    'abcdefg'<'bcdefg'

    784<>7+8+4

    Una condición puede tomar alguno de los dos valores de verdad VERDADERO o FALSO. Por ejemplo, todas las condiciones anteriores son (o pueden ser) verdaderas.

    Algunas condiciones con valor de verdad falso pueden ser:

    4=7 'aaaaa'>'bbbbb'

    676<>7 estudio=buena_nota

    EJERCITACION

    8.1 Determinar en los siguientes casos si la expresión es correcta o incorrecta, y si es corecta, si es verdadera o falsa:

    47>4 'l'<'eme' 123<'letras'

    -47>-4 'minúsculas'<'MAYUSCULAS'

    3)Usando el si

    Vamos a repasar algo sobre variables. ¿Cómo sería un programa que calcule el promedio entre tres notas?

    Programa promedio;