Lenguaje Pascal
pako6lez21 de Abril de 2013
5.642 Palabras (23 Páginas)379 Visitas
Sintaxis y Semántica del Lenguaje
Sintaxis y Semántica del Lenguaje
El lenguaje Pascal
Este apunte resume las componentes básicas del lenguaje Pascal. Para
obtener mayor información se recomienda consultar la siguiente bibliografía:
-. Programación en TURBO Pascal Versiones 5.5, 6.0, 7.0. L. Joyanes
Aguilar, Segunda edición. Ed. McGraw Hill
-. Intermediate problem solving. Segunda edición. Helman - Veroff
Introducción
Pascal es un lenguaje que permite programar en forma estructurada y
modularizada. Esto significa que es posible dividir al programa en módulos
(implementados utilizando procedimientos y funciones) y organizado de manera tal
que se pueda leer con facilidad. Esto último tiene que ver con una buena
indentación, comentarios, nombres mnemotécnicos, etc. Aunque estas últimas
características NO son imprescindibles en un programa Pascal, en la cátedra se
exigirá su cumplimiento.
Tipos
El lenguaje Pascal es tipado, lo que significa que casi1 todas sus variables
deben tener un tipo asignado explícitamente.
El tipo de una variable determina el rango de valores que la misma puede
contener y el conjunto de operaciones que se pueden aplicar sobre ella. En Pascal
existen tipos predefinidos (provistos por el lenguaje) y los definidos por el
usuario.
Tipos predefinidos
Los tipos predefinidos son:
· Tipo entero
· Tipo real
· Tipo carácter
· Tipo lógico
1 Existen algunas excepciones que no se van a tratar aquí.
Sintaxis y Semántica del Lenguaje
Tipo entero
Una variable de tipo entero (integer) ocupa, por lo general, 2 bytes2 de
memoria y el rango de valores va desde -32768 a 32767. En realidad, existen
otros 4 tipos de datos enteros, con diferentes rangos de valores:
tipo Rango #bytes
byte 0..255 1
shortint -128 ..127 1
integer -32768..32767 2
word 0..65535 2
longint -2147483648.. 214748364 4
Tipo real
El tipo real (real) está definido como punto flotante, es decir,
fracción*exponente. Turbo Pascal diferencia 3 tipos de flotantes:
Tipo #bytes
simple 4 bytes
doble 8 bytes
extendido 10 bytes
Tipo Carácter
Hay dos tipos de caracteres:
· Char: un único carácter
· String: un conjunto de caracteres
Este tipo de datos identifica letras, números, signos de puntuación y todos
aquellos símbolos que aparecen en la tabla ASCII.
Ejemplo:
'a': el carácter a
'la cadena': una cadena de caracteres
1: el entero 1
'1': el carácter 1
El tipo string define cadenas de 255 caracteres (si pensamos que un
carácter en la mayoría de las máquinas se almacena en un byte, entonces un string
ocupará 255 bytes). También es posible definir strings más pequeños que 255.
Ejemplo:
string; à define una cadena de 255 caracteres
string[20]: à define una cadena de sólo 20 caracteres
2 Esto depende también de la máquina / plataforma sobre la cual se está trabajando.
Sintaxis y Semántica del Lenguaje
Tipo lógico
En Pascal el tipo lógico (boolean) admite únicamente dos valores: true y
false. Cualquier expresión lógica retorna valores de este tipo: verdadero o falso.
Operaciones
Lo que se vio hasta ahora es la estructura que tiene los tipos predefinidos
y el rango permitido de valores para cada uno, ahora se verá cuáles son las
operaciones permitidas sobre cada tipo:
· OPERACIONES DE RELACIÓN: En todos los casos es posible realizar las
operaciones de comparación por menor, mayor, igualdad y desigualdad. (<, <=,
>, >=, =, ¬= o <>)
· OPERACIONES ARITMÉTICAS: Con los datos numéricos (integer y real) es
posible realizar las operaciones aritméticas: +, -, /, *.
· OPERACIONES LÓGICAS: Con los datos lógicos además están los operadores
AND, OR, NOT.
· OPERACIONES DE CONCATENACIÓN: Sólo para los caracteres, y está
representada por el signo +.
Subrangos
A veces se necesitan variables que sólo tomarán cierto rango de valores y
no todo el permitido por el tipo. En estos casos, es posible acotar estos valores
especificando sólo el valor más pequeño y el más grande que dichas variables
pueden tomar:
constanteMenor.. constanteMayor
Ejemplo:
‘A’..’Z’;
1..100;
Tipos definidos por el usuario
Muchas veces es necesario manejar información cuyo tipo no está provisto
por el lenguaje. En este caso, pascal permite que el programador defina nuevos
tipos y los utilice luego. Un nuevo tipo se define utilizando la cláusula type.
Type nombreTipo = tipoExistente;
Ejemplo:
Type Edad = Integer;
Type OtraEdad = 0..110;
Type Cadena = string[30];
Sintaxis y Semántica del Lenguaje
Los nombres de los tipos son indentificadores y, por lo tanto siguen las
reglas para nombrar identificadores que se detallan a continuación.
Identificadores
Los identificadores en Pascal comienzan siempre con una letra (a..z,A..Z) o
con el símbolo _. y el resto pueden ser cualquier letra, _ y/o dígitos. Con un
identificador no solo hacemos referencia a un nombre de variable, sino que
también a nombre de tipos, procedimientos, funciones, etc.
Las letras mayúsculas y minúsculas se consideran sin distinción y pueden
tener cualquier longitud.
Declaración de variables
Todos los identificadores que se utilicen en un programa Pascal se DEBEN
declarar ANTES de su uso.
Las variables se declaran utilizando la sentencia var.
var
x:integer à define una variable denominada x de tipo integer.
y: boolean à define una variable denominada y de tipo boolean.
z: 0..110 à define una variable denominada z de tipo integer que sólo
puede tomar los valores de 0 a 110.
E: Edad à define una variable denominada e del tipo Edad (definido
anteriormente)
E1:otraEdad à define una variable denominada e1 del tipo otraEdad
(definido anteriormente)
Asignación en Pascal
La asignación es el mecanismo por el cual se liga una variable a un valor
determinado. En Pascal la asignación se representa por la operación ":=".
Ejemplo:
a := 10;
cad := 'esta es una cadena';
Sintaxis y Semántica del Lenguaje
Estructuras de Control en Pascal
En Pascal existen sentencias simples y compuestas. Las sentencias
compuestas se encierran entre las palabras claves begin-end.
En esta sección se detallarán cómo se definen en Pascal las estructuras de
control.
Sentencias Condicionales
Permiten realizar selecciones en el flujo de control del programa. Hay dos
tipos de selecciones:
· Selecciones simples (if)
· Selecciones múltiples (case)
Sentencias if
Su forma general es:
if expresión
then sentencia1
else sentencia2
donde:
expresión es una expresión lógica que retorna true o false
sentencia1 y sentencia2 son sentencias Pascal simples o compuestas.
DESCRIPCIÓN:
sentencia1 se ejecuta sólo si expresión es verdadera, en caso
contrario se ejecutará sentencia2
NOTA: el else es opcional y NO hay cierre de la sentencia;
Ejemplo:
1) if num>10 then a:=a+1
else a:=a-1;
2) if num>10 then x:=x+1;
Sentencia Case
Su forma general es:
case expresión
Valor: sentencias
Valor1, valor2: sentencias
Valor3..valor4: sentencias;
Sintaxis y Semántica del Lenguaje
Valor 5..valor6, valor7: sentencias
else sentencias
end;
DESCRIPCIÓN:
Permite elegir entre varias alternativas sin tener que anidar muchas
sentencias if. Consiste de una expresión que puede ser de cualquier
tipo ordinal (con orden) y una lista de sentencias cada una
precedidas por uno o más valores del mismo tipo que la expresión. De
acuerdo al valor de la expresión se ejecutará aquella sentencia que
coincida con dicho valor. Si ninguna de las sentencias coincide, no se
ejecuta ninguna y se sigue en la instrucción siguiente al fin del case.
Existe una cláusula opcional, el else, con la cual, se generalizan todos
los valores no discriminados en el case:
NOTA: el else es opcional y en este caso se cierra con el end final.
Ejemplo:
1) case sexo of
‘f’, ‘F’: mujeres:= mujeres +1
‘m’, ‘M’: varones := varones +1
end;
2) case edad of
0..2: bebes := bebes +1
3..11: ninios:= ninios +1
12..17: adolescentes := adolescentes + 1
else: adultos:=adultos+1
end;
Sentencias de Repetición
Estas sentencias permiten iterar o repetir una o más sentencias. Existen
tres diferentes sentencias:
· while
· repeat until
· for
Sentencia while
Su forma general es:
while expresión do
sentencia { puede ser simple o compuesta }
Sintaxis y Semántica del Lenguaje
DESCRIPCIÓN:
sentencia se ejecuta siempre que expresión sea verdadera. Cuando
es falsa, la iteración
...