- Programación en Pascal
- Como escribir programas en turbo Pascal
- Primitivas iniciales
- Variables numéricas y alfanuméricas
- Operadores relacionales y booleanos
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:
1. El usuario escribe el programa fuente utilizando el editor.
2. El compilador lo convierte en programa objeto y lo salva.
3. Se ejecuta el programa.
A continuación veremos como se da este proceso, programando en Turbo Pascal.
a. Carga el Turbo Pascal
b. Para editar un programa
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:
1. Oprime "Alt+F"
2. Con las flechas de cursor desplázate hasta el comando "Save" u oprime la tecla "S".
3. Escribe A:inicial (la letra A corresponde a tu disco e "inicial" es el nombre del programa).
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:
1. Oprime "Alt+R"
2. selecciona "Run" y oprime "Enter"
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.
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:
1. Pascal no utiliza números de línea (lo que sí sucede en BASIC).
2. Todo programa debe comenzar con la palabra PROGRAM.
3. El contenido o cuerpo del programa se comienza con la palabra BEGIN y se termina con la palabra END.
4. El encabezamiento del programa siempre termina con punto y coma (;). El BEGIN no va seguido de ningún signo de puntuación. El cierre del programa termina con punto (.).
5. La sentencia WRITELN permite escribir de forma textual lo que se encuentra entre las comillas sencillas.
6. El punto y coma (;) tiene por objeto separar una sentencia de otra. Sin embargo, no es obligatorio utilizarlo al escribir la última sentencia pues en seguida de esta no hay propiamente otra sentencia sino el fin del programa (END).
7. Las palabras END, BEGIN, PROGRAM, WRITELN, etc., son primitivas (palabras reservadas) del Pascal y, como tales, no deben utilizarse como nombres de programas.
EJERCICIOS DE CLASE:
1. Escribe los programas UNO y DOS en Turbo Pascal. Compílalos y grábalos en tu disco.
2. En tu cuaderno escribe las siguientes sentencias escritas en Pascal y corrige los errores que encuentres:
a. PROGRAMA AREAS;
b. END
c. BEGIN;
d. PROGRAM BEGIN
e. WRITELN (¿Hola cómo estas?);
f. WRITELN ("Turbo Pascal")
g. BEGIN
h. WRITELN ("A,B,C,D,E,F);
3. Escribe los siguientes programas en Turbo pascal. Compílalos y corrige los errores que encuentres. Luego sálvalos en tu disco:
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;
4. Escribe un programa en Pascal que imprima tu nombre completo.
5. Escribe un programa que dibuje un cuadrado hecho con asteriscos.
6. Escribe un programa en el cual utilices varias veces la primitiva WRITELN.
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:
1. El programa como tal comienza enseguida de BEGIN y termina con el END.
2. En la zona situada entre el título del programa y el BEGIN se colocarán otros elementos del programa tales como variables, constantes, procedimientos y funciones. Para el caso se ha declarado una variable a través de la primitiva VAR.
3. La declaración de la variable supone el especificar que tipo de variable es. En este caso es una variable que sólo permite números enteros (INTEGER = Entero). Más adelante explicaremos en detalle los tipos de variables en Pascal.
4. Cualquier respuesta que el usuario escriba se guardará en la variable EDAD. Esto es lo que realiza el READLN.
5. El mensaje final es una frase conformada por tres cadenas diferentes de caracteres (separados entre sí por comas). La primera, la palabra "tienes", la segunda, el contenido de la variable EDAD y la tercera la cadena "años de edad".
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
1. Escribe el siguiente programa en turbo y córrelo. Luego sálvalo en tu disco. (En aso de no tener computador, escribe en tu cuaderno la ejecución de cada uno de los pasos).
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.
2. Corrige el siguiente programa en Turbo Pascal y luego sálvalo:
PROGRAM ENSAYOS;
BEGIN
WRITELN ("Los computadores ");
WRITE ("personales);
WRITELN (se conocen también con");
WRITE ("el nombre de ";
WRITE ("MICROS")
END
3. Diseña un programa que lea un número entero y escriba tres líneas en cada una de las cuales coloque uno de sus múltiplos.
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:
1. Como se van a utilizar dos variables, una para almacenar el año y la otra para guardar la edad, ambas deben declararse.
2. para declarar más de una variable se colocan éstas seguidas de comas (,) y luego se colocan dos puntos (:) escribiendo luego de que tipo de variables se trata.
3. Es muy conveniente hacer la pregunta y luego escribir la sentencia READLN. En caso contrario, el programa esperaría hasta que el usuario escribiera la respuesta pero no habría para él claridad sobre que pregunta contestar.
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 (;).
EJERCICIOS DE CLASE 3
Escribe una asignación para cada formula:
Salario = 90000
Perímetro = 2(lado + ancho)
X = W + 3Z
Vol = largo por ancho por alto
W = (a más b) por (a – b)
Escribe un programa en Pascal que lea las tres dimensiones de un triángulo y dé por resultado el perímetro. (Inclúyele algún comentario especial, utilizando los paréntesis y los asteriscos).
En los ejercicios 3 – 5 entrar a editor de Turbo Pascal y escribir un programa que:
Lea el área de un rectángulo y uno de sus lados, y calcule el lado desconocido.
Lea dos ángulos internos de un triángulo y halle el tercero.
Lea cuatro números y escriba la suma de ellos.
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:
1. Datos numéricos de tipo INTEGER.
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
2. Datos numéricos de tipo REAL.
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
1. Revisa con cuidado cada operación y determina cual es su resultado. Si el resultado no es posible en dicho tipo de datos numéricos, escribe no válido.
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 =______
2. Dadas las siguientes declaraciones y asignaciones de variables, determina el resultado de cada una de las operaciones:
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 = ______
3. Con los datos del ejercicio anterior, escribe un programa en Turbo Pascal y comprueba tus respuestas para los ejercicios. Para cada operación utiliza WRITELN.
4. Escribe un programa que lea por teclado el nombre y la dirección de una persona.
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 < 3) ó (Boole fue un botánico) Es FALSO
3. LA NEGACIÓN
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
1. Determina los valores de verdad para cada una de las proposiciones que a continuación se escriben, teniendo en cuenta las siguientes asignaciones escribe sobre la línea de la derecha el resultado:
(hazlo en tu cuaderno).
A:=TRUE B:=FALSE C:=TRUE D:=FALSE
a. A AND B __________
b. B OR C __________
c. A OR ( NOT D ) __________
d. ( NOT B ) OR A __________
e. ( B AND D ) AND ( A AND C) __________
f. NOT ( B OR C ) __________
2. Escribe un programa en Turbo Pascal para cada una de las siguientes tareas declarando variables booleanas:
a. Representar la tabla de verdad de la negación de una proposición cualquiera FALSA O VERADERA.
b. Representar la tabla de verdad para la conjunción de dos proposiciones.
Representar la tabla de verdad para la disyunción de dos proposiciones.
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.