Programación estructurada. Programación en pascal



Monografias.com

Programación en Pascal

El lenguaje Pascal es un poderoso instrumento de programación muy utilizado en la actualidad en colegios, universidades y empresas. Muchos de los programas con los cuales trabajamos hoy fueron escritos en Pascal.

Como podrás apreciar más adelante, el Pascal es un lenguaje que responde perfectamente bien a la programación estructurada.

El Pascal es conocido, entonces, como un lenguaje de alto nivel estructurado y, naturalmente, esto lo ubica como una herramienta muy útil y poderosa para la programación.

El nombre de este lenguaje (a diferencia de muchos otros lenguajes de programación de alto nivel) no corresponde a ningún acrónimo en particular, sino que hace honor al nombre del matemático francés Blaise Pascal.

Dado que Turbo Pascal está en inglés, todos los comandos se escriben en dicha lengua.

Como escribir programas en turbo Pascal

Para comenzar, recordemos que los computadores sólo entienden lenguaje de máquina, es decir, cadenas de unos y ceros (numeración binaria) equivalente paso o no paso de corriente. Sin embargo, escribir en lenguaje de máquina es sumamente complicado. Por tal razón, se idearon lenguajes de alto nivel como el Pascal o el BASIC, que se acercan mucho al lenguaje habitual (inglés), lo que facilitó grandemente la tarea de programación. El programa escrito en lenguaje de alto nivel se denominó "programa fuente".

El computador requiera, pues, de otro programa capaz de traducir el programa fuente en su propio lenguaje, es decir, el de máquina. Este proceso es conocido como convertir el programa fuente en programa objeto.

En el caso de Pascal el encargado de dicha traducción es un programa compilador. Por esta razón se dice que pascal es un lenguaje compilado. Compilar significa, pues, convertir el programa fuente en programa objeto.

Pascal, además de su programa compilador, necesita otro programa que les permita a los usuarios teclear el contenido del programa, modificarlo, editarlo, actualizarlo y, en general hacerle todas las correcciones del caso. Este programa se conoce como editor. Finalmente el sistema operacional de la máquina o algún otro programa similar tendrá la misión de correr el programa.

Tres son, pues, los pasos seguidos:

A continuación veremos como se da este proceso, programando en Turbo Pascal.

a. Cargar el turbo pascal.

Para cargar Turbo Pascal para este curso, basta dar doble clic en el icono "Turbo Pascal" que se encuentra en el escritorio de Windows. De esta forma aparecerá el editor de Pascal y podrás empezar a escribir tu programa número uno.

Escribe lo siguiente:

Program Uno;

Begin

WriteLn ("Estoy en el editor de Pascal");

WriteLn ("Escribiendo un programa");

End.

Salva tu programa haciendo lo siguiente:

b. Para editar un programa

Existen una serie de órdenes que, utilizadas en el editor, te permiten corregir fácilmente un programa, como por ejemplo:

Insertar línea CRTL+N

Borrar línea CRTL+Y

DESPLAZAMIENTO flechas de cursor

Corre el programa:

nota: puedes correrlo también oprimiendo las teclas "Ctrl+F9".

Una vez que se trata de correr el programa, este se compilará y, en caso de existir algún error, se detendrá y dará un mensaje en el que explicará cual es el error. Entonces deberás presionar la tecla "Esc", con lo cual volverás al editor y podrás corregir el error.

Repite este proceso hasta que el programa corra por completo, lo que significará que no tiene errores. No olvides salvarlo de nuevo.

Primitivas iniciales

Empezaremos con las órdenes de Pascal que tienen que ver con lectura y escritura.

PROGRAM ;

Es el encabezamiento o título del programa que vamos a escribir. Se escribe la palabra PROGRAM seguida de un espacio y del nombre que le queremos dar al programa. Inmediatamente después del nombre se coloca punto y coma (;).

Ejemplo:

PROGRAM SUMAS;

PROGRAM CALIFICACIONES;

PROGRAM LETRAS;

BEGIN y END.

Se utilizan para comenzar y terminar el programa respectivamente. Obsérvese que no se escribe nada en seguida de la palabra BEGIN pero se escribe un punto en seguida de END.

Ejemplo:

PROGRAM ABC;

BEGIN

END.

WRITELN ("Mensaje cualquiera");

Esta palabra es una forma abreviada de WRITE LINE, lo que significa en español ESCRIBA UNA LÍNEA. Su objeto es, entonces, escribir una línea en la pantalla con el mensaje que aparece en seguida entre comillas sencillas, el que a su vez, está escrito entre paréntesis. Terminamos la sentencia con punto y coma (;).

Ejemplo:

PROGRAM UNO;

BEGIN

WRITELN ("Mi primer programa en Pascal");

END.

El programa UNO escribirá en la pantalla el contenido textual de lo escrito entre comillas sencillas, así:

Mi primer programa en Pascal

Podemos escribir varias líneas de mensajes:

PROGRAM DOS;

BEGIN

WRITELN ("Pascal es un lenguaje de alto nivel);

WRITELN ("muy estructurado, lo que facilita");

WRITELN ("su manejo");

END.

Resumiendo:

EJERCICIOS DE CLASE:

PROGRAMA TRES;

START

WRITELN (Existen varias generaciones);

WRITELN ("de computadoras. Se habla")

WRITELN ("de la 1ª, 2ª ,3ª y 4ª generaciones")

END.

PROGRAM CUATRO;

BEGIN

WRITELN ("Un conjunto de caracteres se conoce")

WRITELN ("con el nombre de cadena.");

WRITELN ("La siguiente sentencia utiliza dos cadenas);

WRITELN ("Primera cadena "," segunda cadena")

END;

WRITE ("Mensaje cualquiera);

En ocasiones debemos utilizar la primitiva WRITE (escriba) en lugar de WRITELN (escriba línea). La diferencia consiste en que WRITELN lleva el cursor al comienzo de la siguiente línea una vez que ha escrito el mensaje, mientras que al utilizar el WRITE el cursor permanece en la misma línea.

Ejemplos:

WRITE ("La computadora en ");

WRITE ("la educación. ");

Dará por resultado la frase:

La computadora en la educación.

Mientras que:

WRITELN ("La computadora en ");

WRITELN ("la educación. ");

Dará como resultado dos frases:

La computadora en

la educación.

READLN (Variable cualquiera);

Con este comando podemos capturar datos escritos desde el teclado y almacenarlos en la variable utilizada. READLN es una abreviatura en inglés para LEA LÍNEA.

Ejemplo:

PROGRAM LECTURA;

VAR

EDAD: INTEGER;

BEGIN

WRITELN ("Escriba su edad");

READLN (EDAD);

WRITELN ("Tienes ",EDAD," años de edad. ");

END.

Analicemos el programa LECTRURA:

Corramos el programa:

Escriba su edad

25

Tienes 25 años de edad.

Si el usuario escribiera cualquier otro número, el mensaje se escribiría de acuerdo con el contenido de dicha variable EDAD.

Escriba su edad

100

Tienes 100 años de edad.

El READLN puede utilizarse con más de una variable, para tal efecto, las variables deberán escribirse dentro de los paréntesis separadas entre sí por comas.

Ejemplo:

READLN (A , B);

READLN (PRIM , SEG , TERC);

Naturalmente, toda variable por utilizar en el programa debe ser antes declarada en la zona destinada para dicho fin.

EJERCICIOS DE CLASE 2

PROGRAM DATOS;

VAR A : INTEGER;

BEGIN

WRITELN ("Escribe un número entero ");

READLN (A);

WRITELN ("Su doble es = ", 2*A);

WRITELN ("La mitad es = ", A/2:10:2);

END.

PROGRAM ENSAYOS;

BEGIN

WRITELN ("Los computadores ");

WRITE ("personales);

WRITELN (se conocen también con");

WRITE ("el nombre de ";

WRITE ("MICROS")

END

READLN (Varias variables);

En la mayoría de los casos deberemos utilizar más de una variable las cuales, naturalmente, deberán ser declaradas en el lugar previsto para ello.

Ejemplo:

PROGRAM AÑOS;

VAR A , EDAD : INTEGER;

BEGIN

WRITELN ("¿Año actual? ");

READLN ( A );

WRITELN ("¿Cuántos años cumpliste o vas a cumplir en este año? ");

READLN ( EDAD );

WRITELN (" Ud. Nació en el año " , A – EDAD );

END.

Corramos el programa para 2004 y 37 años de edad.

¿Año actual?

2004

¿Cuántos años cumpliste o vas a cumplir en este año?

37

Ud. Nació en el año 1966

Analicemos el programa AÑOS:

La asignación ( := )

Podemos darle (asignarle) un valor cualquiera a una variable que hayamos previamente declarado.

Ejemplos:

AREA := BASE * ALTURA

X := Y –Z

El símbolo ( := ) no debe leerse como "igual que" puesto que no es exactamente una igualdad. Sería mejor leerlo como "asigne". Es decir, que las dos asignaciones anteriores pueden leerse así:

Asigne a AREA el producto de BASE por ALTURA.

Asigne a la variable X la diferencia entre Y y Z.

Comentarios (* *)

Cuando requerimos escribir algún comentario o nota especial dentro del programa con el objeto de tener más claridad, podemos utilizar el símbolo (* *).

Cualquier cosa escrita dentro de paréntesis y asteriscos será entendida por Pascal como un comentario y al correrse el programa, no ejecutará nada.

Para quienes están familiarizados con BASIC, esta primitiva equivale al REM (Remarks = observaciones).

Ejemplo:

WRITELN ("No. Id. Por favor "); (* Número de identificación *)

BEGIN (* Inicio del programa principal *)

Las observaciones se pueden colocar en cualquier parte del programa y no deben ir seguidas de punto y coma (;).

Monografias.com

EJERCICIOS DE CLASE 3

Monografias.com

Variables numéricas y alfanuméricas

En Pascal, diferentes tipos de variables se pueden declarar tanto para representar números como cadenas de caracteres. Las veremos a continuación:

VARIABLES NUMÉRICAS

Ya hemos estudiado las variables numéricas de tipo INTEGER, es decir, las destinadas a almacenar únicamente números enteros. Existe también la posibilidad de declarar variables numéricas del tipo REAL, es decir, que incluyan sólo números reales.

A continuación explicaremos separadamente cada uno de estos conjuntos de datos numéricos:

Corresponde al conjunto de los números enteros (positivos o negativos).

Las operaciones definidas en Pascal para realizar entre números enteros que den por resultado otro entero son las siguientes:

+ SUMA

- RESTA

* MULTIPLICACIÓN

DIV DIVISION

MOD RESIDUO

La suma, la resta y la multiplicación no presentan ningún problema. De hecho, ya hemos trabajado con ellas. Pero en el caso de la división, debe tenerse en cuenta que la primitiva DIV significa "división entera", es decir, la que da por resultado únicamente la parte entera, y descarta cualquier residuo. La división por cero (0) dará un error.

Ejemplos:

12 DIV 5 = 2

-19 DIV 2 = -9

15 DIV 0 = Run-time error aborted.

12.0 DIV 8 = Operand (s) type does not match operator.

16 DIV 7.0 = Operand (s) type does not match operator.

Las dos primeras divisiones no presentaron ningún problema. La tercera (división por cero) hace que el programa se interrumpa (program aborted) dado el error. En el cuarto y quinto ejemplos, el programa tampoco puede compilarse, pues el tipo de operando (uno de los dos números es de tipo REAL) no cuadra con el operador utilizado (DIV es para divisiones enteras).

El residuo podrá calcularse mediante la primitiva MOD así:

13 MOD 5 = 3

36 MOD 9 = 0

20 MOD -7 = 6

Los datos de tipo REAL corresponden a los números reales, los cuales deben ser escritos con el punto decimal y con el dígito que les corresponde antes y después de dicho punto decimal.

Ejemplo:

3.1316 -4.03 0.0 45.0

Las operaciones por realizar son las siguientes:

+ SUMA

- RESTA

* MULTIPLICACIÓN

/ DIVISIÓN

Obsérvese que el signo para la división cambia (/) y que no existe la posibilidad de hallar residuo.

Veamos algunos ejemplos con números reales.

8.0 / 2.0 = 4.0 8 / 2.0 = 4.0

8.0 / 2 = 4.0 0.0 / 5.0 = 0.0

0.0 / 5 = 0.0 -13 / 4.0 = -3.25

7.0 / 0 = Run-time error. Program aborted.

VARIABLES ALFANUMÉRICAS

Para declarar variables cuyo objeto es almacenar cadenas de caracteres, por ejemplo un nombre, un apellido, una dirección, etc., Pascal dispone de las denominadas variables STRING. Veamos como deben ser declaradas.

VAR A : STRING [ Número de caracteres de la cadena ];

Ejemplo:

VAR NOMBRE : STRING [30]; Acepta hasta treinta caracteres.

VAR DIREC : STRING [20]; Acepta hasta veinte caracteres.

EJERCICIOS DE CLASE 4

  • a. 45 DIV 5 = _____

  • b. 12 DIV -3 = _____

  • c. 16.0 / 0.0 = _____

  • d. 30 MOD 6 = _____

  • e. 15.0 / 0 = _____

  • f. 15.0 / 3.0 = _____

  • g. 15 / 3 = _____

  • h. 20 MOD 7 = _____

  • i. 0 DIV 8 = _____

  • j. 20 DIV 0 = _____

  • k. 5 DIV 6 = _____

  • l. 20 MOD 6 =______

  • VAR X, Y : INTEGER;

    W, Z : REAL;

    X:=15 Y:=7 W:=1.5 Z:=9.0

  • a. X + Y = ______

  • b. X DIV Y = ______

  • c. X MOD Y = ______

  • d. X + Z = ______

  • e. X / Z = ______

  • f. Y – Z = ______

  • g. X / Y = ______

  • h. Z DIV W = ______

  • i. W DIV Z = ______

  • j. Z / W = ______

  • Operadores relacionales y booleanos

    Ahora aprenderemos como se pueden establecer relaciones entre dos cantidades cualesquiera mediante símbolos como el =, el >, etc.

    En esta sección aplicaremos dichos conocimientos al Pascal y los ampliaremos estudiando no únicamente operadores relacionales sino también los de Boole.

    OPERADORES RELACIONALES

    En Pascal podemos establecer algunas de las siguientes relaciones entre dos valores numéricos:

    Igualdad =

    Mayor que >

    Mayor o igual que >=

    Menor que = 6 * 2) ó (7 DIV 2 = 3) Es CIERTO

    (5 + 5

    Si una proposición es cierta su negación es falsa y viceversa.

    A

    No A

    CIERTA

    FALSA

    FALSA

    CIERTA

    Ejemplo:

    NO (Caracas es la capital de Venezuela) Es FALSA

    NO (14 / 2 = 5) Es CIERTA

    VARIABLES BOOLEANAS

    Así como hemos declarado variables de tipo REAL, INTEGER y STRING, también podemos definir variables de tipo Bolean para determinar el valor de verdad (falso o cierto). A continuación veremos un programa en el cual se asigna el valor de verdad CIERTO (TRUE) a la variable A y el valor FALSO (FALSE) a la variable B. El programa escribe luego el valor de verdad de la conjunción, disyunción y negación de dichas proposiciones.

    PROGRAM VALORES;

    VAR A, B : BOOLEAN;

    BEGIN

    A:= TRUE;

    B:= FALSE;

    WRITELN (A AND B);

    WRITELN (A OR B);

    WRITELN (NOT A);

    WRITELN (NOT B);

    END.

    Al correr el programa obtendremos pos resultado los valores de verdad de las expresiones WRITELN, así:

    FALSE

    TRUE

    FALSE

    TRUE

    EJERCICIOS DE LA CLASE 5

    (hazlo en tu cuaderno).

    A:=TRUE B:=FALSE C:=TRUE D:=FALSE

    Representar la tabla de verdad para la disyunción de dos proposiciones.

    Monografias.com

    Profesor: Nicolás Aguilar Caballero.

    Lenguaje publicado por primera vez en 1970 por Niklaus Wirth. Apuntes para 2° grado

    2013.

     

     

    Autor:

    Isaac Rodrigo Valdés Velázquez.