LENGUAJE
PASCAL
HISTORIA
El nombre PASCAL fue elegido en honor de Blaise
Pascal (1623-1662), brillante científico y matemático francés
entre cuyos logros se encuentra la invención de la primera
máquina de calcular mecánica.
Fue desarrollado inicialmente a principios de los años
70 por Niklaus Wirth, en la Universidad Técnica de Zurich,
Suiza. El propósito original de Wirth fue crear un lenguaje de
alto nivel para enseñar programación estructurada.
Es un lenguaje de programación de alto nivel y de
propósito general.
Se deriva del ALGOL-60 y fue diseñado para enseñar
técnicas de programación estructurada.
Es de alto nivel porque su repertorio de instrucciones lo
hacen próximo a los lenguajes humanos y a los procesos
humanos de pensamiento.
Sus instrucciones o sentencias se componen de
expresiones de apariencia algebraica y de ciertas palabras
inglesas:
BEGIN, END, READ, WRITE, IF, THEN, REPEAT, WHILE, DO.
PALABRAS RESERVADAS
En la definición del lenguaje, algunas palabras están
reservadas. Se usan como nombres de sentencia, de tipos de
datos y de operadores.
Suelen escribirse con mayúsculas, aunque no es
necesario.
Las palabras reservadas sólo se pueden usar, dentro
de un programa, en el contexto para el que han sido definidas.
No se pueden redefinir para usarlas como
identificadores.
Palabras reservadas estándar
IDENTIFICADORES
Son nombres que denotan constantes, tipos, variables,
procedimientos y funciones.
Pueden incluir letras y dígitos cumpliendo las
restricciones siguientes:
. Un identificador no puede comenzar con un dígito.
. Un identificador no puede tener espacios en blanco ni dígitos
especiales.
. Los primeros caracteres de un identificador (31 en VAX
PASCAL) deben designar un nombre único dentro del bloque de
programa en el que ha sido definido.
Identificadores Predeclarados estándar
TIPOS DE DATOS
Tipos Ordinales y Reales:
Se les llama habitualmente tipos escalares o tipos simples. Son los
tipos fundamentales que sirven para construir tipos estructurados.
Tipos INTEGER, CHAR, BOOLEAN y REAL:
Están predefinidos por el compilador. Los tipos Enumerativos y
Subcampo son definidos por el usuario.
Tipos estructurados:
Permiten procesar grupos de datos ordinales, reales, estructurados y
punteros. Por ejemplo, se pueden tener una cadena de caracteres, un fichero
de registros, una tabla de punteros. Todas son estructuras estáticas.
Tipo puntero:
Permite manejar estructuras de datos dinámicas. Sus valores son
direcciones de almacenamiento de variables dinámicas.
Tipos de Datos
ESTRUCTURA DE
CONTROL
La parte ejecutable de un programa está formada por
sentencias que constituyen la expresión de algoritmos que, aplicados
a las estructuras de datos diseñadas, producen acciones enfocadas
a la obtención de resultados útiles.
Las sentencias estructuradas contienen a sentencias simples o a
otras sentencias estructuradas que deben ser ejecutadas en orden,
de forma repetitiva o cuando se cumplen condiciones determinadas.
Una sentencia estructurada se puede usar en cualquier lugar
donde está permitida una sentencia simple. En lo sucesivo se usará
el término sentencia para designar a una sentencia simple o
estructurada indistintamente.
Estructuras de Control
EJEMPLOS:
Área de un triángulo (Entrada y salida estándar)
Program areatriangulo;
uses Crt;
var Altura, Area, Base : Real; Introduzca base: 1.2
Introduzca altura: 4.5
begin El área del triángulo
ClrScr; es: 2.7
Write( 'Introduzca base: ' );
ReadLn( Base );
Write( 'Introduzca altura: '
);
ReadLn( Altura );
Area := Base * Altura / 2;
Write( 'El area del triangulo
es: ', Ar[Link] );
end.
División entera (Entrada y salida estándar)
Program division; Introduzca dividendo (entero): 39
Introduzca divisor (entero): 5
uses Crt; 39 div 5 = 7 ( Resto = 4 )
var Dividendo, Divisor, Cociente, Resto :
Integer;
begin
ClrScr;
Write( 'Introduzca dividendo (entero): ' );
ReadLn( Dividendo );
Write( 'Introduzca divisor (entero): ' );
ReadLn( Divisor );
Cociente := Dividendo div Divisor;
Resto := Dividendo mod Divisor;
Write( Dividendo, ' div ', Divisor, ' = ',
Cociente, ' ( Resto = ', Resto, ' )'
);
end.
LINKS DE INTERES
[Link]
[Link]
[Link]
[Link]
[Link]