Actualizado el 12 de Enero del 2019 (Publicado el 19 de Diciembre del 2018)
918 visualizaciones desde el 19 de Diciembre del 2018
38,0 KB
4 paginas
Creado hace 20a (12/01/2005)
PASCAL
PASCAL
Nociones básicas
Nociones básicas
n Todas las sentencias deben terminar en punto y coma (;)
excepto la última sentencia que termina con punto (.)
n Los programas en Pascal se componen de:
n Cabecera:
PROGRAM identificador;
n Declaraciones
CONST
Iden_cte = valor_cte;
VAR
Iden_var : tipo_var;
n Sentencias
n Se pueden incluir comentarios en cualquier parte de un programa
pero deben delimitarse con llaves o con paréntesis y asterisco:
{ esto es un comentario }
(* y esto también *)
PASCAL
Variables y Constantes
Variables y Constantes
n Los identificadores son nombres para referenciar variables, constantes
y funciones. Se forman con letras (A-Z), números (0-9) y símbolo de
subrayado ( _ ) pero deben comenzar con una letra. Pueden tener
cualquier longitud pero sólo se reconocen los 63 primeros caracteres
n Los tipos de datos básicos utilizados en Pascal son:
n INTEGER: Entero
n REAL: Real
n CHAR: Carácter
n BOOLEAN: Lógico/Booleano
n STRING: Cadena de caracteres
n En Pascal, las variables deben declararse antes de ser utilizadas en
una sección de declaración de variables dentro del programa. Esta
sección comienza con la palabra VAR
n Las constantes también deben inicializarse en la sección de
declaración de constantes. Esta sección comienza con la palabra
CONST
PASCAL
3
PASCAL
Estructura básica de un
Estructura básica de un
programa en Pascal
programa en Pascal
PROGRAM nombre;
CONST
nom_cte1 = valor1;
MMMMMMMMMMMMMMMMMMMMM
nom_cteN = valorN;
VAR
nom_var1 : tipo1;
MMMMMMMMMMMMMMMMMMMMM
nom_varN : tipoN;
BEGIN
MMMMMMMMMMMMMMMMMMMMM
sentencias;
MMMMMMMMMMMMMMMMMMMMM
END.
Estructuras secuenciales
Estructuras
secuenciales
Estructuras condicionales
Estructuras condicionales
n Operación de asignación
var := exp ;
n Operación de Entrada/Lectura:
READ(lista parámetros);
READLN(lista parámetros);
n Operación de Salida/Escritura:
WRITE(lista parámetros);
WRITELN(lista parámetros);
WRITELN;
IF condición THEN
BEGIN
Sentencias en caso verdadero
END
[ELSE
BEGIN
Sentencias en caso falso
END];
n Nótese que el ‘;’ únicamente se
pone al final de la sentencia IF-
THEN-ELSE
n
Si el grupo ‘Sentencias en caso
verdadero’ (y/o ‘Sentencias en caso
falso’) está formado por una única
sentencia, el par BEGIN -END no es
necesario
IF condición THEN
S1
[ELSE
S2];
n Sentencia CASE
CASE var O F
Valor_1:S1;
Valor_2:S2;
MMMMMMMMMMMMMMM
Valor_n:Sn;
END;
PASCAL
5
PASCAL
2
4
6
1
Estructuras repetitivas
Estructuras repetitivas
n Bucle FOR
FOR var:=inicio TO/DOWNTO fin DO
BEGIN
Cuerpo del bucle
END;
n Bucle WHILE
WHILE condición DO
BEGIN
Cuerpo del bucle
END;
n Bucle REPEAT-UNTIL
REPEAT
Cuerpo del bucle
UNTIL condición;
PASCAL
n Si ‘cuerpo del bucle’ (en la
sentencia FOR y WHILE) está
formado por una única
sentencia, el par BEGIN- END
no es necesario
n Nótese que la sentencia
REPEAT-UNTIL no necesita un
par BEGIN- END puesto que el
cuerpo del bucle queda
perfectamente delimitado con
REPEAT al principio y UNTIL al
final
Otros temas
Otros temas
n Para dar formato de salida a los números reales:
WRITE(exp_real:n_col:n_dec)
donde n_col es el número de columnas/posiciones que va a ocupar
el número y n_dec el número de decimales que queremos mostrar
en pantalla
n Para hacer uso de ‘unidades’ (librerías con funciones y
procedimientos predefinidos) se utiliza la siguiente sentencia entre
la cabecera y la sección de declaración del programa:
PROGRAM nombre;
USES unidad;
CONST
MMMMMMMMMMMMMMMMMMMMM
7
PASCAL
8
Declaración de funciones y
Declaración de funciones y
procedimientos
procedimientos
FUNCTION ident_func (parámetros formales):tipo;
{Declaración variables locales}
BEGIN
Sentencias;
ident_func:=expresión;
END;
PROCEDURE ident_proc (parámetros formales);
{Declaración variables locales}
BEGIN
Sentencias;
END;
Sección TYPE
Sección TYPE
n Se utiliza para declarar nuevos tipos de datos o
renombrar tipos ya definidos
TYPE
nombre-1 = tipo-1;
nombre-2 = tipo-2;
…………………………
…………………………
…………………………
nombre-N = tipo-N;
n tipo-i es un tipo de datos predefinido o definido
por el usuario
PASCAL
9
PASCAL
10
Uso de Unidades
Uso de Unidades
Unidad System
Unidad
System
Las unidades se utilizan para crear librerías de funciones y
nn Las unidades se utilizan para crear librerías de funciones y
procedimientos que permitan la programación modular
procedimientos que permitan la programación modular
Además de las unidades diseñadas por el propio programador,
nn Además de las unidades diseñadas por el propio programador,
Pascal incluye sus propias unidades que permiten la utilización
Pascal incluye sus propias unidades que permiten la utilización de de
ciertas funciones y procedimientos generales, de interés para el
ciertas funciones y procedimientos generales, de interés para el
programador que nos facilitan el trabajo y mejoran la apariencia
programador que nos facilitan el trabajo y mejoran la apariencia
final de cualquier aplicación
final de cualquier aplicación
PROGRAM nombre;
USES unidad;
CONST
MMMMMMMMMMMMMMMMMMMMM
nicamente la unidad System
nn ÚÚnicamente la unidad
necesita ser especificada en la clááusula USES ya que Pascal
necesita ser especificada en la cl
usula USES ya que Pascal
automautomááticamente la utiliza en cualquier programa o unidad
ticamente la utiliza en cualquier programa o unidad
System, que implementa rutinas b
, que implementa rutinas báásicas, no
sicas, no
n ABS(X): Valor absoluto de X
n ARCTAN(X): Arcotangente de X
n
n
n
n
n
CHR(X): Carácter cuyo número ordinal es X
CONCAT(S1 ,S2...Sn): Concatena en una única cadena todas las cadenas que toma como argumento
COPY(S,X,Y): Devuelve una subcadena de longitud Y comenzando en la posición X de la cadena S
COS(X): Coseno de X
EXP(X): Número e elevado a X
LENGTH(S ): Número de caracteres de la cadena S
LN(X): Logaritmo Neperiano de X
n
n
n ODD(X): Devuelve TRUE si X es impar
n
POS(S1,S2): Devuelve la posición del primer carácter de S1 en S2, siempre que S1 se encuentre
incluida en S2
n RANDOM(X): Devuelve un número aleatorio entre 0 y X-1. Si no se especifica el argumento X, devuelve
un número real entre 0.0 y 1.0
n RANDOMIZE: Inicializa la semilla para el generador de números aleatorios
n ROUND(X) : Redondea X
n
SIN(X): Seno de X
SQR(X): Cuadrado de X
SQRT(X): Raíz cuadrada de X
TRUNC(X): Trunca X
n
n
n
n UPCASE(C): Convierte el carácter C a mayúsculas
PASCAL
11
PASCAL
12
2
Ejemplos
Ejemplos
Unidad
Unidad CrtCrt
Generación de números aleatorios
Convertir a mayúsculas
PROGRAM aleatorio;
VAR
R:INTEGER;
BEGIN
RANDOMIZE;
REPEAT
R:=RANDOM(10);
WRITELN (R);
UNTIL (R=0);
END.
PROGRAM mayus;
VAR
s : STRING;
i : INTEGER;
BEGIN
WRITE('Introduzca una cadena
de caracteres: ');
READ(s);
FOR i := 1 TO LENGTH(s) DO
s[i] := UPCASE(s[i]);
WRITELN('La cadena en
mayúsculas es : ',s);
END.
n
CLRSCR: limpia la pantalla dejando el curso en la esquina superior izquierda de la
pantalla.
n DELAY(X): Espera X milisegundos antes de empezar a ejecutar la siguiente sentencia
(realiza una pausa de X milisegundos).
n GOTOXY(X,Y): Sitúa el cursor en la columna X y fila Y. El valor de X varía de 1 a 80 y
el de Y de 1 a 24.
n KEYPRESSED: Devuelve TRUE si se ha pulsado alguna tecla del teclado y FALSE en
otro caso.
n HIGHVIDEO: Selecciona el modo de alta intensidad de caracteres.
LOWVIDEO: Selecciona el modo de baja intensidad de caracteres.
n
n NORMVIDEO: Selecciona el modo normal de intensidad de caracteres.
n NOSOUND: Desactiva un sonido realizado con SOUND.
n
SOUND(X): Emite un sonido de X hertzios de frecuencia. El sonido continú a hasta que
se desactiva con NOSOUND.
TEXTBACKGROUND(X) : Inicializa el color de fondo al color X. X es una expresión qu e
devuelve un valor entre 0 y 7, correspondiente con los valores de las ocho primeras
constantes de color
TEXTCOLOR(X): Inicializa el color del texto al color X. X es una expresión que
devuelve un valor entero
n
n
n READKEY: Lee un único carácter del teclado.
n WHEREX: Devuelve la coordenada x de la posición actual del cursor.
n WHEREY: Devuelve la coordenada y de la posición actual del cursor.
PASCAL
13
PASCAL
14
Ejemplos
Ejemplos
Tipos de datos estructurados
Tipos de datos estructurados
nn Instrucción WITH para registros
Instrucción WITH para registros
Colores del texto
PROGRAM colores;
USES Crt;
VAR i:INTEGER;
BEGIN
FOR i:=0 TO 31 DO
BEGIN
TextColor(i);
TextBackground(0);
WRITELN('Color del texto ',i);
READKEY;
END;
NORMVIDEO;
WRITELN('Vuelve a texto normal');
END.
Uso de Keypressed
PROGRAM aleatorio2;
USES Crt;
VAR
R:INTEGER;
BEGIN
RANDOMIZE;
REPEAT
R:=RANDOM(1001);
WRITELN (R);
UNTIL KEYPRESSED;
END.
nn Arrays
Arrays
nn Declaración
Declaración
nn Ejemplos
Ejemplos
nn Registros
Registros
nn Declaración:
Declaración:
Ident_array:ARRAY[inicio..fin] OF tipo;
Ident_array:ARRAY[inicio
..fin] OF tipo;
[1..50] OF INTEGER;
Vector:ARRAY
Vector:ARRAY[1..50] OF INTEGER;
Matriz:ARRAY
Matriz:ARRAY[1..4] OF ARRAY[1..6] OF REAL;
[1..4] OF ARRAY[1..6] OF REAL;
Ident_reg: RECORD
Ident_reg
: RECORD
lista de campos
lista de campos
END;
END;
nn Ejemplos
Ejemplos
empleado: RECORD
nombre:STRING[30];
sexo:CHAR ;
edad:INTEGER ;
salario:REAL;
casado:BOOLEAN;
END;
nn Ejemplo: la siguiente instrucción WITH
Ejemplo: la siguiente instrucción WITH
nombre_reg DODO
WITH WITH nombre_reg
BEGIN
BEGIN
instrucciones
instrucciones
END;
END;
WITH empleado DO
WITH empleado DO
BEGIN
BEGIN
nombre:=‘Alma Caro Ruiz’;
nombre:=‘Alma Caro Ruiz’;
sexo:=‘M’;
sexo:=‘M’;
edad:=35;
edad:=35;
salario:=1250;
salario:=1250;
casado:
casado:=F=F;;
END;
END;
Es equivalente a
Es equivalente a
empleado.nombre
empleado.nombre:=‘Alma Caro Ruiz’;
:=‘Alma Caro Ruiz’;
empleado.sexo:=‘M’;
empleado.sexo
:=‘M’;
empleado.edad
empleado.edad:=35;
:=35;
empleado.salario
empleado.salario:=1250;
:=1250;
empleado.casado
empleado.ca
Comentarios de: Pascal (0)
No hay comentarios