Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pascal PDF
Pascal PDF
Estructura bsica de un
Variables y Constantes
programa en Pascal
n Los identificadores son nombres para referenciar variables, cons tantes
y funciones. Se forman con letras (A-Z), nmeros (0-9) y smbolo de PROGRAM nombre;
subrayado ( _ ) pero deben comenzar con una letra. Pueden tener CONST
cualquier longitud pero slo se reconocen los 63 primeros caracteres nom_cte1 = valor1;
n Los tipos de datos bsicos utilizados en Pascal son: MMMMMMMMMMMMMMMMMMMMM
n INTEGER: Entero
nom_cteN = valorN;
n REAL: Real
VAR
n CHAR: Carcter
n BOOLEAN: Lgico/Booleano nom_var1 : tipo1;
n STRING: Cadena de caracteres MMMMMMMMMMMMMMMMMMMMM
n En Pascal, las variables deben declararse antes de ser utilizadas en nom_varN : tipoN;
una seccin de declaracin de variables dentro del programa. Esta BEGIN
seccin comienza con la palabra VAR MMMMMMMMMMMMMMMMMMMMM
n Las constantes tambin deben inicializarse en la seccin de sentencias;
declaracin de constantes. Esta seccin comienza con la palabra MMMMMMMMMMMMMMMMMMMMM
CONST
END.
PASCAL 3 PASCAL 4
PASCAL 5 PASCAL 6
1
Estructuras repetitivas Otros temas
n Para dar formato de salida a los nmeros reales:
n Bucle FOR n Si cuerpo del bucle (en la WRITE(exp_real:n_col:n_dec)
FOR var:=inicio TO/DOWNTO fin DO sentencia FOR y WHILE) est
BEGIN formado por una nica donde n_col es el nmero de columnas/posiciones que va a ocupar
Cuerpo del bucle sentencia, el par BEGIN- END
END; el nmero y n_dec el nmero de decimales que queremos mostrar
no es necesario
n Bucle WHILE en pantalla
n Ntese que la sentencia
WHILE condicin DO REPEAT-UNTIL no necesita un n Para hacer uso de unidades (libreras con funciones y
BEGIN par BEGIN- END puesto que el procedimientos predefinidos) se utiliza la siguiente sentencia entre
Cuerpo del bucle cuerpo del bucle queda la cabecera y la seccin de declaracin del programa:
END; perfectamente delimitado con PROGRAM nombre;
REPEAT al principio y UNTIL al
n Bucle REPEAT-UNTIL USES unidad;
final
REPEAT CONST
Cuerpo del bucle MMMMMMMMMMMMMMMMMMMMM
UNTIL condicin;
PASCAL 7 PASCAL 8
Declaracin de funciones y
Seccin TYPE
procedimientos
FUNCTION ident_func (parmetros formales):tipo;
{Declaracin variables locales}
n Se utiliza para declarar nuevos tipos de datos o
BEGIN renombrar tipos ya definidos
Sentencias; TYPE
ident_func :=expresin; nombre-1 = tipo-1;
END; nombre-2 = tipo-2;
PROCEDURE ident_proc (parmetros formales);
{Declaracin variables locales}
BEGIN
nombre-N = tipo-N;
Sentencias;
END; n tipo-i es un tipo de datos predefinido o definido
por el usuario
PASCAL 9 PASCAL 10
PASCAL 11 PASCAL 12
2
Ejemplos Unidad Crt
n CLRSCR: limpia la pantalla dejando el curso en la esquina superior izquierda de la
pantalla.
Generacin de nmeros aleatorios Convertir a maysculas n DELAY(X): Espera X milisegundos antes de empezar a ejecutar la siguiente sentencia
(realiza una pausa de X milisegundos).
PROGRAM aleatorio; PROGRAM mayus ; n GOTOXY(X,Y): Sita el cursor en la columna X y fila Y. El valor de X vara de 1 a 80 y
el de Y de 1 a 24.
VAR VAR n KEYPRESSED: Devuelve TRUE si se ha pulsado alguna tecla del teclado y FALSE en
s : STRING; otro caso.
R:INTEGER; HIGHVIDEO: Selecciona el modo de alta intensidad de caracteres.
i : INTEGER; n
BEGIN n LOWVIDEO: Selecciona el modo de baja intensidad de caracteres.
BEGIN NORMVIDEO: Selecciona el modo normal de intensidad de caracteres.
RANDOMIZE; n
WRITE('Introduzca una cadena n NOSOUND: Desactiva un sonido realizado con SOUND.
REPEAT de caracteres: '); n SOUND(X): Emite un sonido de X hertzios de frecuencia. El sonido contin a hasta que
se desactiva con NOSOUND.
R:=RANDOM(10); READ(s);
TEXTBACKGROUND(X) : Inicializa el color de fondo al color X. X es una expresin qu e
FOR i := 1 TO LENGTH(s) DO n
WRITELN (R); devuelve un valor entre 0 y 7, correspondiente con los valores de las ocho primeras
UNTIL (R=0); s[i] := UPCASE(s[i]); constantes de color
TEXTCOLOR(X): Inicializa el color del texto al color X. X es una expresin que
WRITELN('La cadena en n
END. devuelve un valor entero
maysculas es : ',s); n READKEY: Lee un nico carcter del teclado.
END. n WHEREX: Devuelve la coordenada x de la posicin actual del cursor.
n WHEREY: Devuelve la coordenada y de la posicin actual del cursor.
PASCAL 13 PASCAL 14
PASCAL 15 PASCAL 16
PASCAL 17 PASCAL 18
3
Ejemplo de uso de ficheros
Ejemplo de uso de ficheros de
binarios
texto PROGRAM crea_fic ; WHILE codigo >0 DO
BEGIN
TYPE
PROGRAM BorradoEspacio
BorradoEspacio;; WHILE NOT eoln
eoln(( ArchEntrada ) DO WRITE(Introduzca nombre del empleado);
CONST TEmpleado= RECORD
BEGIN READLN(nombre);
READLN(nombre );
Codigo:Integer;;
Codigo:Integer
Espacio = ' '; read(( ArchEntrada
read ArchEntrada,, C a r ); REPEAT
Nombre:string[30];
Nombre:string [30];
VAR ActualNoEspacio := Car <> Espacio; WRITE(Introduzca edad del empleado);
Edad:Integer;;
Edad:Integer
ArchEntrada,, ArchSalida : text ;
ArchEntrada IF ActualNoEspacio OR READLN(edad);
READLN(edad );
PrevioNoEspacio THEN sueldo:real;;
sueldo:real
Car : char
char;; UNTIL (edad>18) AND (edad<70);
PrevioNoEspacio : boolean ; write ( ArchSalida
ArchSalida,, C a r ); END;
WRITE(Introduzca sueldo del empleado);
PrevioNoEspacio := ActualNoEspacio ; TF_emp=FILE OF TEmpleado
TEmpleado;;
ActualNoEspacio : boolean ; READLN(sueldo );
END {WHILE NOT eoln eoln};
}; VAR
BEGIN WRITE(F_emp,emp);
WRITE(F_emp,emp );
assign(ArchEntrada,entrada.txt);
assign(ArchEntrada,entrada.txt ); emp:TEmpleado ;
WRITE(Introduzca cdigo de empleado
writeln ( ArchSalida ); F_emp:TF_emp;;
F_emp:TF_emp
assign(ArchSalida,salida.txt);
assign(ArchSalida,salida.txt ); (0 para terminar));
readln(( ArchEntrada ) ;
readln BEGIN
reset (ArchEntrada
(ArchEntrada ); READLN(codigo );
rewrite( ArchSalida ) ; END; {WHILE NOT eof eof}} assign(F_emp,empleado.dat);
assign(F_emp ,empleado.dat);
END;
close(ArchSalida ); rewrite(F_emp);
rewrite(F_emp );
WHILE NOT eof ( ArchEntrada ) DO END; {* Fin del WITH *}
close(ArchEntrada ); WITH emp D O
BEGIN WRITELN(FICHERO DE EMPLEADOS CREADO);
PrevioNoEspacio := false; END. BEGIN
CLOSE(F_emp);
CLOSE(F_emp );
WRITE(Introduzca cdigo de
empleado (0 para terminar)); END.
READLN(codigo );
PASCAL 19 PASCAL 20
PASCAL 21 PASCAL 22
Tipos numricos
TIPOS ENTEROS
TIPO RANGO BYTES
Shortint -128..127 8bits,con signo
Integer -32768..32767 16 bits, con signo
Longint -2147483648..2147483647 32 bit, con signo
Byte 0..255 8 bits, sin signo
Word 0..65535 16 bits, con signo
TIPOS REALES
TIPO RANGO BYTES
Real 2.9 x 10-39 .. 1.7x 1038 6
Single 1.5 x 10 -45 .. 3.4 x1038 4
Double 5.0 x 10 -324 .. 1.7 x10308 8
Extended 3.4 x 10 -4932 .. 1.1 x104932 10
Comp - (263 ) + 1 .. (263 ) - 1 8
PASCAL 23