Pascal. Estructuras de datos lista. Pilas, colas y recursividad. Estructura de datos árboles. Estructura de datos grafos.
TEMARIO:
REPASO DE
PASCAL.
ESTRUCTURAS DE
DATOS LISTA.
Variables de tipo puntero.
- Definición de estructura.
- Implementación en Pascal.
- Operaciones.
PILAS, COLAS Y
RECURSIVIDAD.
ESTRUCTURA DE
DATOS ARBOLES.
ESTRUCTURA DE
DATOS GRAFOS.
LIBROS:
- Programación avanzada y resolución de problemas en
Pascal estructura de datos, metodología de la programación e ingeniería del
Software (Autores G. M. Steven C. Bruell) Editorial Anaya.
- Gusta a ella es: Pascal y estructura de datos.
Date/Lilly Mc Graw Hill.
- Otro clásico es: Estructura de datos. Seymoul Lipschntz
Mc Craw Hill. Es todo en Pseudocódigo.
Apuntes realizados por Ignacio Domínguez (Nacho) y Jose
Luis Blanco (Chevere)
1.-
ORGANIZACION DE UN PROGRAMA EN PASCAL.
2.- TIPOS DE
DATOS.
3.- ENTRADA
SALIDA.
4.- ESTRUCTURAS
DE CONTROL.
5.-
SUBALGORITMOS DE PROCEDIMIENTO Y
SUBALGORITMO DE FUNCION.
6.- PASO DE
PARAMETROS.
7.- ESTRUCTURA
DE DATOS VECTOR.
8.- ESTRUCTURA
DE DATOS REGISTRO.
9.- ESTRUCTURA
DE DATOS FICHERO.
1.- ORGANIZACION DE UN
PROGRAMA PASCAL:
A) Area de encabezamiento. C) Area de subalgoritmos.
PROGRAM nombre; PROCEDURE
USES librerias;
FUNCTION
B) Area de declaraciones. D) Area de programa principal.
CONST identif=valor; BEGIN
TYPE identif=tipo; ...
VAR identif:tipo; END.
2.- TIPOS DE DATOS EN
PASCAL:
Los datos se dividen en datos simples y estructurados:
son varios datos de tipo simple.

Integer String
SIMPLES Char ESTRUCTURADOS Array
Boolean El
resto....
Real
3. ENTRADA. SALIDA.
READ( ); WRITE( );
READLN( ); WRITELN(
);
4.- ESTRUCTURAS DE CONTROL:
Se dividen en estructuras
de:
- lógica secuencial: asignaciones y llamadas a procedimientos.
- lógica condicional: simple,doble,multiple ( IF ; CASE )
- lógica iterativa o repetitiva:
FOR ; WHILE ; REPEAT
SIMPLE DOBLE
IF Condición THEN IF Condición THEN
BEGIN BEGIN
---- -----
END; END
ELSE
BEGIN
-----
END;
IF Múltiple CASE:
CASE Variable OF
Valor1:----
----
Valor2:----
----
End;
FOR:
FOR Variable:=Valor1 TO
Valorn DO
BEGIN
-----
END;
WHILE: REPEAT:
WHILE Condición DO REPEAT
BEGIN ------
----- UNTIL
Condición;
END;
EJER 1: Hacer
un programa en Pascal que acepte 20 números de teclado comprendidos entre 1 y
50, y visualice en pantalla cuantos son mayores o iguales que 25 y cuantos son
menores.
Program ejer1;
Uses CRT;
Var i,num,may,men: integer;
BEGIN
may := 0; men := 0;
for i := 1 to 20 do
begin
repeat
readln(num);
until (num >= 1) and ( num < 50);
if num >= 25 then may := may+1;
else men := men+1;
end;
writeln(“Hay”, may, “nº
mayores o igual a 25 años”);
writeln(“Hay”, men, “nº
menores a 25 años”);
END.
EJER 2: Aceptar el
termino cuadrático, lineal e independiente de una ecuación de 2º grado y
muestre por pantalla todas sus posibles soluciones.
ax 2 +bx+c=0 2 --cuadrado
1º) si a=0 x=-c/b
2º) si a<>0 y b 2
-4ac=0 x=-b/2a
3º) si a<>0 y b 2
-4ac<0 no hay soluciones reales
4º) si a<>0 y b 2
-4ac<0
PROGRAM RAIZ;
VAR
X,A,B,C,X1,X2:INTEGER;
BEGIN
WRITE('TECLEE TÉRMINO CUADRÁTICO');
READLN(A);
WRITE('TECLEE TÉRMINO REAL');
READLN(B);
WRITE('TECLEE TÉRMINO INDEPENDIENTE');
READLN(C);
IF A=0 THEN
BEGIN
X := -C/B;
WRITE('EL RESULTADO
ES: ',X);
END;
IF (A<>0) AND (SQR(B)-4AC=0) THEN
BEGIN
X:= -B/2A;
WRITE('EL RESULTADO
ES: ',X);
END;
IF (A=0) AND (SQR(B)-4AC<0) THEN
WRITE('NO EXISTEN
SOLUCIONES REALES. ');
IF (A<>0) AND (SQR(B)-4AC>0) THEN
BEGIN
X1:=
(-B-SQRT(SQR(B)-4AC))/2A;
X2:=
(-B+SQRT(SQR(B)-4AC))/2A;
WRITE('LOS RESULTADOS
SON: ',X1,','X2);
END;
END.
5.- SUBALGORITMOS DE PROCEDIMIENTOS Y DE FUNCION:
PROCEDURE nombre( ); FUNCTION
nombre( ):tipo;
CONST
TYPE
VAR
EJER 3: Hacer
una función que devuelva la suma de los elementos de un vector de n posiciones.
Esta cargado con números enteros:
FUNCTION
SUMA:integer;
Var i,aux:integer;
BEGIN
aux := 0;
for i := 1 to n
do
aux := aux+vector[i[;
suma:=aux;
END;
EJER 4: Hacer
una función de tipo boolean que devuelve verdadero si el número
n es > 10 y falso en el caso contrario.
FUNCTION
ERROR:boolean; **programa
principal**
BEGIN if ERROR then writeln(“n es > que
10”)
if n
> 10 then error := true else writeln(“n no es > que 10”);
else error := false;
END;
EJER 5: Codificar la
potencia.
FUNCTION
POTENCIA:integer;
VAR aux:integer;
BEGIN
aux:=1;
for i:=1 to exp do
aux:=aux*base;
potencia:=aux;
END;
EJER 6: Programa que
acepte un número entero y mediante una función de tipo boolean visualice en
pantalla si el número es > ó <=10
PROGRAM ent; FUNCTION
DECIM : boolean;
VAR
num:integer; BEGIN
BEGIN if
num>10 then decim:=true
writeln('Teclee un número: '); else decim:=false;
read(num); END;
if decim=T
then writeln('El nº es > que 10')
else writeln('El nº es > que 10');
END.
6.- PASO DE PARAMETROS:
PARAMETROS: sirven para enviar informacion desde el
punto de llamada del procedimiento o función al subalgoritmo y viceversa.
Parametros
formales en las cabeceras: PROCEDURE UNO (parametros formales);
Parametros
actuales en la llamada: UNO (parametros actuales);
Según el sentido del flujo
de información hay dos tipos de parámetros: