PDF de programaci贸n - Repaso de Pascal

Filtrado por el tag: proporci贸n
<<>>
Im谩gen de pdf Repaso de Pascal

Repaso de Pascalgr谩fica de visualizaciones

Publicado el 11 de Julio del 2017
1.042 visualizaciones desde el 11 de Julio del 2017
65,4 KB
73 paginas
Creado hace 20a (20/07/2004)
ESTRUCTURA

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)

TEMA I 鈭 REPASO PASCAL

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.

1

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

2

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;

3

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=鈭抍/b

2潞) si a<>0 y b 2 鈭4ac=0 x=鈭抌/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');

4

READLN(A);

WRITE('TECLEE T脡RMINO REAL');

READLN(B);

WRITE('TECLEE T脡RMINO INDEPENDIENTE');

READLN(C);

IF A=0 THEN

BEGIN

X := 鈭扖/B;

WRITE('EL RESULTADO ES: ',X);

END;

IF (A<>0) AND (SQR(B)鈭4AC=0) THEN

BEGIN

X:= 鈭払/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:= (鈭払鈭扴QRT(SQR(B)鈭4AC))/2A;

X2:= (鈭払+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;

5

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;

6

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:

鈭扨ARAMETROS POR VALOR: son de ida. Desde el punto de llamada hasta el procedimiento. No se
modifican a la vuelta porque s贸lo son de ida.

Procedure Uno (x:integer ; a:char);

鈭扨ARAMETROS POR VARIABLE: de ida y vuelta. Llevan y devuelven informaci贸n.

Procedure Dos (VAR x:real ; VAR z:char);

N潞 parametros formales = N潞 parametros actuales

Las variables Por Valor deben de ser:

鈭 Mismo n潞 de par谩metros actuales que en la cabecera de la funci贸n (formales).

鈭 Del mismo tipo.

鈭 En el mismo orden.

7

鈭 En la llamada se pondr铆a una variable, un valor o una expresi贸n.

Las variables Por Referencia deben de ser:

鈭 S贸lo pueden ponerse variables que contengan un valor.

Ejemplo paso de par谩metros.

PROGRAM EJERCICIO;

VAR

a,b,c:Integer;

PROCEDURE Parametros (Var x,y:Integer;Z:Integer);

VAR h:Integer

BEGIN

h:=x+2; y:=y+h;

z:=2*y; x:=z;

END;

BEGIN

a:=1; b:=2; c:=3;

Parametros (a,b,c);

WRITE (A); WRITE (B); WRITE (C);

END.

EJER 7: Dada la siguiente declaraci贸n de tipos y de variables que representan la cantidad de vehiculos
vendidos en los 煤ltimos 20 a帽os.

Se pide:

1.鈭 hacer una funcion que calcule el promedio de ventas de cualquiera de ellos.

2.鈭 hacer un procedimiento que visualica aquellas posiciones del vector que tenga una cantidad superior al
promedio de ventas.

TYPE VECTOR : ARRAY [1..20[ OF INTEGER;

VAR

CANTT : INTEGER;

8

COCHES,MOTOS,CAMIONES,CICLOMOTORES,TRACTORES:VECTOR;

FUNCTION PROMEDIO (V1 : VECTOR):REAL;

VAR

ACUM,I : INTEGER;

BEGIN

ACUM := 0;

FOR I:=1 TO 20 DO ACUM := ACUM+V1[I[;

PROMEDIO := ACUM/20;

END;

PROCEDURE SUPERIOR(X:VECTOR);

VAR

PROM:REAL;

BEGIN

PROM:=PROMEDIO(X);

FOR I:=1 TO 20 DO

IF X[I[ > PROM THEN WRITELN(I);

END;

BEGIN

WRITELN('EL PROMEDIO DE COCHES ES: ' PROMEDIO(COCHES));

WRITELN('EL PROMEDIO DE MOTOS ES: ' PROMEDIO(MOTOS));

....

....

END.

7.鈭 ESTRUCTURA DE DATOS VECTOR:

VECTOR: es una estructura de datos lineal, finita de elementos homogeneos que se almacenan
secuencialmente en memoria y son referenciados mediante un 铆ndice.

IMPLEMENTACION:

9

TYPE

VECTOR: = Array [lim.inf. ... lim.sup.[ OF tipo;

VAR

v1,v2,v3: VECTOR;

B煤squeda de un elemento en un Vector de 2 formas:

Secuencial: Del primero al 煤ltimo.

Dicot贸mica: En un vector ordenado se va partiendo por la mitad y se va buscando, as铆 sucesivamente.

鈭 BUSQUEDA DICOTOMICA:

1.鈭 Calcular el elemento mitad.

2.鈭 Comparar el elemento a buscar con el elemento mitad.

3.鈭 Hacer el vector mas peque帽o.

Inf := LI; Sup := LS;

Mitad := [inf+sup[ DIV 2;

Parametros: 鈭 vector donde busco.

鈭 elemento a buscar.

鈭 posici贸n donde lo encuentra,si no lo encuentra un 0.

TYPE

VECTOR: = Array [lim.inf. ... lim.sup.[ OF tipo;

VAR

v1,v2: VECTOR;

PROCEDURE DICOTOMICA (v:vector;elem: ;VAR pos:integer);

VAR

Inf, Sup, Mitad: integer;

Enc: boolean;

BEGIN

Inf := LINF;

10

Sup := LSUP;

Enc:= false;

REPEAT

mitad:= (inf+sup) DIV 2;

IF elem = v[mitad[ THEN

BEGIN

enc := true;

pos := mitad;

END;

ELSE

IF elem < v[mitad[ THEN sup := mitad+1

else inf := mitad+1;

UNTIL (enc = true) OR (inf = sup);

IF NOT enc THEN pos := 0;

END;

8.鈭 ESTRUCTURA DE DATOS REGISTRO:

REGISTRO: es una estructura de datos homogeneos o no a los cuales se les llama campos tales que se
accede a ellos mediante su propio nombre. Tienen un n煤mero ilimitado de elementos y no tienen porque
guardar un orden natural en memoria.

IMPLEMENTACION:

TYPE registro = RECORD

campo1: tipo;

campo2: tipo;

...

END;

VAR reg1, reg2: registro;

Para acceder : reg1.campo1

11

EJER 8: Se tiene la siguiente declaraci贸n de tipos y de variables:

TYPE datos=RECORD

nombre:string;

provincia:string;

ventas:ARRAY[1..12[ of real;

END;

VAR tiendas:ARRAY[1..50[ of datos;

El vector tiendas almacena el nombre,provincia y las ventas realizadas durante los 煤ltimos 12 meses de 50
tiendas de Espa帽a.

Suponiendo cargada la estructura,se pide un algoritmo que visualice el nombre de las tiendas de cuenca cuyo
promedio mensual de ventas sea inferior a 100.000 pts.

FOR I:=1 TO 50 DO

BEGIN

IF TIENDAS[I[ .PROVINCIA=`CUENCA' THEN

BEGIN

ACUM:=0;

FOR J:=1 TO 12 DO

SUM:=SUM+TIENDAS[I[ .VENTAS[J[ ;

IF SUM/12 < 100000 THEN

WRITELN(TIENDAS[I[ .NOMBRE);

END;

END;

EJER 9: Dada la siguiente declaraci贸n de tipos y de variables:

TYPE Fecha =RECORD

D铆a:1..31;

Mes: 1..12;

A帽o:1960..1995;

12

END;

Alumno=RECORD

Nombre: String;

F鈭扤ac: Fecha;

Notas: ARRAY [1..8] OF REAL;

END;

VAR CLASE2TA: ARRAY [1..35] OF ALUMNO;

Supuesta la estructura que est谩 cargada hacer un algoritmo que visualice el

nombre de todos aquellos alumnos con nota media superior a 7.

Visualizar el nombre de los alumnos que han nacido en el mes de Febrero.

Funcion que cuente el n煤mero de alumnos.

PROCEDURE VISUALIZAR:

VAR X,Y: INTEGER; PROM: REAL;

BEGIN

FOR X:=1 TO 35 DO

BEGIN

PROM:=0;

FOR Y:=1 TO 8 DO

PR
  • Links de descarga
http://lwp-l.com/pdf5306

Comentarios de: Repaso de Pascal (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoraci贸n
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar im谩genes, archivos y/o videos.

Puedes registrarte o validarte desde aqu铆.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
gui帽o
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad