Академический Документы
Профессиональный Документы
Культура Документы
Pascal
Autor: emarinch@racsa.co.cr
1. Introducción
Pascal y Turbo Pascal
Características principales
- Excelente para el aprendizaje de la información.
- Lenguaje estructurado
(Permite while, for y repeat y no necesita el goto).
Turbo Pascal
3. Programación modular
La programación modular es uno de los métodos de
diseño más flexibles y potentes para mejorar la
productividad de un programa. En programación
modular el programa se divide en módulos (partes
independientes), cada una de las cuales ejecuta una
única función o actividad y se codifican
independientemente de otros módulos. Cada uno de
estos módulos se analiza, codifica y pone a punto por
separado.
5. Identificadores y expresiones
Identificadores
Expresiones
Una expresión es un conjunto de datos o funciones
unidos por operadores aritméticos.
2º +, -
Ejemplos:
4+ 10
14
Práctica
8 * 5 * (7+2 - (4 + 4)) R/
40
(1 + 6) * 5 div 7 mod 4 + 1 R/
2
3 + 4 - 14 /2 R/
0
2 * (2 + 6 * 4)
R/ 52
a - (b + c div d) + e * f
6. Concepto de sentencia
Las sentencias son pasos que describen las acciones
algorítmicas que pueden ser ejecutadas. Se clasifican
según su operatividad en ejecutables y no
ejecutables. Las ejecutables son aquellas que
especifican operaciones de cálculos aritméticos y
entradas/salidas de datos y no ejecutables son las
que no realizan ninguna acción concreta, sino que
ayudan a la legibilidad el programa sin afectar su
ejecución. Las sentencias ejecutables son aquellas
que aparecen en el cuerpo del programa luego de la
palabra begin.
Uses
Crt,Printer;
Var
Cedula: String[16];
Apellido1: String[15];
Apellido2: String[15];
Nombre: String[20];
Clrscr;
Readln (Cedula);
Readln (Apellido1);
Readln (Apellido2);
Readln (Nombre);
Readln (Edad);
End.
Formato
Variable ? expresión
Ejemplos:
Ejemplo:
Program Calcula;
Var
Valor1: Integer;
Valor2: Integer;
Procedure Elmayor;
Begin
Begin
Readln
End
Else
Begin
Write (`El mayor es: `,Valor2);
Readln
End
Else
Begin
Readln
End
End;
Begin
Readln (Valor1);
Readln (Valor2);
Elmayor
End.
Begin
Readln (Numero);
Numero:= Numero+1;
End.
2.4.1.1 Ejemplo
Program Suma;
Uses
Crt;
Clrscr;
Readln (i);
Readln (j);
End.
2.4.2.1 Ejemplo
Program Resultado;
Uses
Crt;
Clrscr;
End.
9. Práctica
1. Hacer un programa que lea su cédula, su
nombre y su teléfono y los imprima en pantalla.
8% CCSS: (CCSS)
Leer HorasTrabajadas
Si HorasTrabajadas>40 entonces
Adicional ?(HorasTrabajadas-
40)*SalarioHora*1.5%
Si no
Fin_Si
3.1.3.2 Operador or
Ejemplo:
Program Numeros;
Var
Numero : Real;
Begin
Read (Numero);
If Numero > 0.0 Then
Begin
Readln
Readln
End;
End.
Ejemplo:
Program Mayor;
Uses
Wincrt;
Var
A,B,C : Integer;
Elmayor : Integer;
Begin
Readln (A,B,C);
If A > B Then
If A > C Then
Elmayor := A
Else
Elmayor := C
Else
If B > C Then
Elmayor := B
Else
Elmayor := C;
End.
Ejemplo:
Program Cursor;
Uses
Wincrt;
Var
X,Y : Integer;
C : Char;
Begin
Clrscr;
X := 40;
Y := 10;
GotoXY (X,Y);
Write (`*´);
Repeat
C := Readkey;
GotoXY (X,Y);
Write (` `);
Case C of
`S´ : Y := Y - 1;
`B´ : Y := Y + 1;
`D´ : X := X + 1;
`I´ : X := X - 1;
`P´ : Exit
Else
Write (Chr(7)
End;
GotoXY (X,Y);
Write (`*´)
Until C = `P´
End.
Ejemplo:
Program Primos;
Var
Primo : bolean;
Número : Integer;
Begin
Primo: = True;
Divisor := 2;
ReadLn (Numero);
Begin
Primo := False;
Divisor := Divisor + 1
End;
Else
End.
13. Ciclos
Es una estructura de control que permite la repetición
de una serie determinada de sentencias. Se le llama
también bucle o lazo.
Sintaxis:
Sentencia;
Ejemplos:
1.
For c := 1 to 5 do
Begin
Write (`aa´);
Write (`BB´)
End;
Al ejecutarse, visualiza:
AaBBaaBBaaBBaaBBaaBB
WriteLn (Caracter);
Sentencia;
Ejemplos:
For C := 5 downto 1 do
Begin
Write (`C´);
Writeln
End;
3
2
For m := 1 to 10 do
begin
For n := 10 downto 2 do
WriteLn (m,n)
end;
Repetir
Sentencias
Hasta_que condición
Sintaxis:
Repeat
Begin
Sentencia 1;
Sentencia 2;
...
...
...
Sentencia n;
End;
Ejemplo:
Uses wincrt;
Var m : char;
n : integer;
Begin
Repeat
Begin
End;
Until keypressed
End.
14. Práctica
1. Los patos de un granjero se venden a precios
especiales si son grandes pero no demasiado. Diseñe
un programa que lea el número de patos que posee el
granjero y el peso de cada ave. Al final debe
especificar cuántos patos pesan entre 1.5 kilos y 2
kilos inclusive.
4.1.1 Concepto
Procedure nombreproc;
Declaraciones locales
Begin
End;
Ejemplo:
Program Recuadro;
Var I : Integer;
Procedure Estrellas;
Begin
For I := 1 to 15 do
Write (`*´)
End;
Begin
Write (`Mensajes´);
End.
16. Parámetros
4.2.1 Concepto
Ejemplo 1:
(Parámetros de entrada)
Var
J : Integer;
Begin
For J := 1 to N do
Write(`*´)
End;
Ejemplo 2:
(Parámetros de entrada/salida)
Begin
End;
4.2.3 Parámetros actuales y formales
Program Correspondencia;
Uses Wincrt;
Var
X,Y,A,P : real;
Begin (* Geometría *)
Area := Longitud * Anchura;
End;
Begin
Readln (X);
Readln (Y);
End.
Program EjemploParametros;
Uses Wincrt;
Var
A,B,C : Integer;
Begin
End;
Begin
Imprimir (D, E, F)
End;
Begin
A := 2;
B := 3;
C := 4;
Pasar(A, B, C);
End.
4.2.1 Ejemplo
Program Calculo;
Uses wincrt;
Var
x,y : real;
Var
max : real;
Begin
if a > b then
max := a
else
max := b;
writeln ('El mayor de los dos números es
',max:4:2);
End;
Begin
repeat
readln (x,y);
mayor (x,y)
until x = 0
End.
4.2.2 Ejemplo
Program Intercambio;
Uses wincrt;
Var
x,y : real;
resp : char;
Var
aux : real;
Begin
aux := a;
a := b;
b := aux;
End;
Begin
repeat
clrscr;
readln (x);
readln (y);
cambio(x,y);
writeln;
readln (resp);
End.
El pseudocódigo es el siguiente:
Nombre_función (argumento1,argumento2,...);
begin
<cuerpo de la función>
end;
Nombre_función := valor_función
Ejemplo:
Program Cubo;
Uses
Wincrt;
Var
Num,valor : integer;
Begin
valor := Num*Num*Num;
End;
Begin
Readln (Num);
El_cubo(Num);
End.
21. Respuestas
Respuesta No 1.
Program Salario;
Uses wincrt;
Var
id_empleado,i,n : integer;
sal_bruto,salario_neto,tod_ded: real;
resp : char;
Var
cc_ss,b_p : real;
Begin
End;
Begin
i:=1;
readln (n);
While i <= n do
begin
clrscr;
readln (nom_empleado);
readln (sal_bruto);
writeln;
calcula(sal_bruto);
writeln;
writeln;
readln;
i := i+1;
end;
End.
Respuesta No. 3.
Program sumas;
Uses wincrt;
Var i,n:integer;
Begin
Suma := 0;
For i:= 1 to N do
suma := suma + i;
Sumar := Suma;
Write ('La suma de los números del 1',' al ',n, ' es:
',suma);
Readln;
End;
Begin
Readln (N);
Sumar (N);
End.
Respuesta No. 6.
Program TestPrimos;
Uses Wincrt;
Var
N : integer;
Var
D : integer;
P : boolean;
Begin
If Q < 4 then
Primo := True
Else
Begin
P:= True;
D := 2;
Begin
P := Q mod D <> 0;
D := D + 1
End;
Primo := P
End
End;
Begin
Readln (N);
While N > 0 do
Begin
Else
Readln (N);
End;
Writeln
End.
22. Arreglos
Introducción
5.0 Concepto
Type
Ejemplos:
Type
Type
Type
ConjuntoDias = array
Type
Type
Precios : Valores;
Const
Max = 500;
Type
Var
5.1.2.1 Lectura
Ejemplos:
I := 1; I :=
1; For I:= 1 to n do
End;
5.1.2.1 Escritura
For I := 1 to Numero do
- Rango permitido
Ejemplo:
Type
Var
Grados : Tabla;
For fila := 1 to 3 do
Begin
For Columna := 1 to 4 do
End;
Ejemplo:
Program Promedio;
Var
I,J : Integer;
Suma,Prom: Real;
Begin
For I := 1 to 25 do
Begin
Suma := 0;
For J := 1 to 4 do
Begin
Read (Notas[I,J]);
End;
Readln;
Prom := Suma/4;
End
End.
25. Práctica
Escriba un programa que almacene en un vector los
días de la semana.
1 194
48 206
2 180
20 320
3 221
90 821
4 432
50 946
Var
Type
Var
Mensaje : Cadena80;
Nombre : Cadena40;
Por ejemplo:
Program Ejemplo;
Var
Mensaje = string[40];
Begin
Writeln;
Readln
End.
`Programador´
Puesto : String[20];
Destino fuente
Var
Cad2 := `informatica´;
Cad2 I N F O R
M A T I C A
1 2 3 4
5 6 7 8 9 10 11
Cad4 := Cad2;
Cad3 := Cad2;
1 2 3 4 5 6 7 8 9 10 11 12 13
14 15 longitud máxima = 15
Cad1 I NFORM AT
longitud actual =
11
123 4 56 78
longitud máxima
=8
6.2.1 Asignación
Ejemplo:
Var
Cad1 : string[15];
Begin
6.2.2 Comparaciones
6.2.3 Concatenación
Program union;
Var
Begin
Cad1 := `Programa´;
Cad2 := ` de computadora´;
End.
Lenght (cadena)
Ejemplo:
Delete (cadena,posición,número)
Insert (Cad1,cadena,posición)
Ejemplo:
Write (Ch2)
Nombre := ´Picapiedra´
Entonces:
Nombre[1] P
Nombre[2] i
Nombre[3] c
Nombre[4] a
Nombre[5] p
Nombre[6] i
Nombre[7] e
Nombre[8] d
Nombre[9] r
Nombre[10] a
1 194
48 206
2 180
20 320
3 221
90 140
4 432
50 821
29. Punteros
Introducción
7.1 Concepto
Var
Ejemplo:
Var
Ptr : ^Real
Type
PuntX = ^Real;
Var
P : PuntX;
Ejemplo:
7.2.1 New
Sintaxis:
New (P)
Ejemplo:
New (Ptr);
Ptr^ := `Mckenna´;
7.2.2 Dispose
Sintaxis:
Dispose (P) (* P es una variable tipo puntero *)
P:= nil;
P:=5
Ejemplo:
Var
P,Q : ^Integer;
Begin
New (P);
P^ :=8;
Q^ :=P;
Q^ :=5;
Dispose (P)
End.
7.2.3 Assigned
Var P : Pointer;
Begin
P : nil;
P := @P;
End.
Type
Nombre_reg = record
End;
Empleado
Ejemplo:
Type
Empleado = record
Nombre : String[30];
Edad : Integer;
Domicilio : String[40];
Salario : Real;
End;
NombreReg.NombreCampo
Empleado.Edad := 34;
Empleado.Salario := 245320;
A := D
Ejemplo:
Type
Stock = record
Numeros : Integer;
Nombre : String[20];
Precio : Real;
end;
Var
Articulo : Stock
Sintaxis:
With Camporegistro do
Begin
End;
Ejemplo:
Program Ejemplo;
Type
Empleado = record
Edad : Integer;
End;
Var
Socio : Empleado;
Deducciones : Real;
Begin
With Socio do
Begin
Readln (Nombre);
Writeln (Empresa);
End;
End.
Ejemplo:
Type
Var
Nom: Nombres;
La sintaxis es la siguiente:
Assign (f,nombre);
8.3.1.1 Reset
Abre un nuevo archivo existente para una operación
de lectura. Si se intenta llamar a Reset y el archivo
especificado no existe, se producirá un error de E/S
(entrada/salida).
Sintaxis:
Reset (NombreArch);
8.3.1.2 Rewrite
Sintaxis:
Rewrite (f);
Program Visualiza_Registros;
Type
Datos = record
Edad : Integer;
Saldo : Real
End;
Var
Begin
Readln (Cliente.Nombre);
Readln (Cliente.Edad);
Cliente.Saldo := 245320;
End.
Sintaxis:
Write (f,v1,v2,...);
Ejemplos:
archtex : text;
...
...
Readln (NombreArch);
Assign (Archtex,NombreArch);
Reset (Archtex);
Sintaxis:
Read (f,v1,v2,...);
Ejemplo:
Var
Horas : Real;
Archivo : Text;
Begin
Assign (Archivo,´Demo´);
Reset (Archivo);
...
...
Readln (Archivo,Mensaje,Horas);
End.
Close (Nombrearchivo);
Var
NombreVariable : Text;
La sintaxis es:
Append (f)
8.4.3 Funciones
8.4.3.1 Eoln
La sintaxis es:
eoln (f)
Eof
(var:text);
eoln(f)llamada a la función
Práctica
9.1.1 Concepto
Formato:
Unit <identificador>
Interface
Implementation
(* declaraciones privadas *)
begin
end
Unit MiUnidad;
Unit Test;
Ejemplo de declaración
Unit Rayo;
Interface
Uses
DOS, Graph, Crt; (* se utilizan las unidades
DOS, Graph y Crt *)
Var
a, b, c : integer;
Unit Rayo;
Interface
P, I : Integer;
Begin
P := 1;
For I := 1 to B do
P := P * ;
Exponencial := P
End;
Begin
Cociente := X div Y
End;
End.
archivo de programa *)
Interface
Uses
Wincrt, Printer;
Implementation
Uses
Printer;
Var
MiVar : Integer
Procedure Frase;
Begin
Clrscr;
Write (texto);
End.
Begin
MiVar := 0
End.
ProgramPrueba;
Uses Utilidad;
Ejemplo:
Unit Demo1;
Interface
Procedure Intercambio;
Var
Aux : Integer;
Begin
Aux := I;
I := J;
J := Aux
End;
Function Máximo;
Begin
If I>J then
Maximo := I
Else
Maximo :=J
End;
End.
Program Prueba;
Uses
Demo1;
Var
X,Y : Integer;
Begin
Readln (X,Y);
Intercambio (X,Y);
End.
38. Aplicaciones
9. 3. 1 Utilización de unidades estándar
9. 3. 1. 1 Unidad System
9. 3. 1. 3 Unidad WinDos
Ejemplo:
Visualizar la hora en la esquina superior derecha de la
pantalla.
Program Hora;
Uses
Wincrt,Windos;
Var
Begin
Clrscr;
Begin
Gotoxy (64,1);
End
End.