Sie sind auf Seite 1von 16

Universidad Tecnolgica Intercontinental Facultad de Tecnologa Informtica & Ciencias Exactas Sede VI Dr. Juan Eulogio Estigarribia.

EXAMEN FINAL DE INFORMTICA III

RESPONSABLE: ORIENTADOR: CARRERA: CURSO: TURNO:

Juan Vicente Sosa Cabaas Lic. Rubn David Mercado

Ingeniera en Sistemas Informticos

2do ao Noche

AO:

2009

TEMA:

Estructura y Organizacin de Datos.

Dr. Juan Eulogio Estigarribia.

Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

PRESENTACIN
La informtica hace parte del progreso social de la humanidad y su tcnica se emplea en cualquier rea para el desarrollo, investigaciones y conocimientos: a la vez que sus aplicaciones como crear, editar, registrar archivos y los procesos tcnicos hacen posible el mejoramiento y facilita las condiciones humanas. Siempre necesitamos almacenar los datos para recuperarlo o modificarlo posteriormente; utilizamos algunas estructuras de datos para su almacenamiento y organizacin. A continuacin veremos algunos esclarecimientos de estructuras de datos que utilizaremos en lenguaje de programacin pascal (excepto grafos) para demostrar cmo se almacena y de que manera son organizados los datos en cada una de ellas. Utilizamos los Grafos, en donde cada elemento puede tener varios elementos siguientes, por la cual recibe el concepto de estructuras de ramificacin. Los grafos son estructuras no lineales. Un grafo es un conjunto de puntos (nodos del grafo) y lneas (aristas), con cada lnea se une un punto a otro. Con los Arreglos evitamos la necesidad de declarar bastantes variables del mismo tipo ya que solo bastar con declarar una sola con varias posiciones, donde cada posicin puede almacenar un dato del tipo del arreglo. Los arreglos pueden ser de varias dimensiones, donde los ms comunes son los de una y dos, a los primeros se les llama vectores, a los segundos matrices y a los arreglos en general se les llama tablas. Los Registros, a diferencia de los arreglos se utilizan para almacenar datos de diferentes tipos. Los Registros se deben de declarar antes de crear variables de este tipo predefinido. Un registro se menciona algunas veces como una estructura y sus elementos como campos. Las Pilas, son una de las estructuras lineales de datos comunes. Las operaciones que especifican una estructura de datos tipo pila se presentan para, posteriormente, dar paso a la declaracin y manejo de las pilas. El
Dr. Juan Eulogio Estigarribia. Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

ingreso y eliminacin de elementos son operaciones que slo pueden ocurrir en un extremo de la pila, la cual se denomina como tope de la pila. Las Colas, mientras en las pilas la insercin y supresin de elementos se establece a travs de un solo extremo, en una cola la insercin se hace estrictamente por un extremo de la lista, al cual llamamos fondo y la supresin slo puede hacerse por el otro extremo de la lista, al cual podemos llamar frente.

Dr. Juan Eulogio Estigarribia.

Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

Procedimiento del Examen.


Construye una estructura de Grafos que contenga por lo menos 8

nodos, hallar su matriz de adyacencia y por lo menos dos caminos crticos.


GRAFOS

Matriz de Distancias mnimas:


N1\N2 BCEN BYNAM LA FORT BS.JOR BV.SERR BINM BS.BLAS BS.CLA BS.LUC B KOER BLA FLOR BMARIT B M. Aux

BCEN

4 0

6 2 0

7 3 1 0

13 9 7 6 0 4

2 25 23 22 16 0 14 20 3 10 7

15 11 9 8 2 0 6

9 5 3 2 0

26 22 20 19 13 11 17 0 7 4

19 15 13 12 6 4 0

22 18 16 15 9 7 13 3 0

5 28 26 25 19 3 17 23 6 13 10 0

6 3 1 26 20 4 18 24 7 14 11 1 0

BYNAM LA FORT BS.JOR BV.SERR BINMO BS.BLAS BS.CLA BS.LUC B KOER BLA FLOR BMARIT B M. Aux

Dr. Juan Eulogio Estigarribia.

Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

CAMINO CRTICO - ALGORITMO DE DIJKSTRA

Tiempo de proceso = 0 segundos Arcos calculados desde el nodo origen (BCEN ) hasta el nodo destino (BS.JOR): * BCEN----(4)---> BYNAM * BYNAM----(2)---> LA FORT * LA FORT----(1)---> BS.JOR Coste total = 7

Matriz de Arcos con coste mximo:


N1\N2 BCEN BYNAM LA FORT BS.JOR BV.SERR BINMO BS.BLAS BS.CLA BS.LUC B KOER BLA FLOR BMARIT B M. Aux

BCEN

1 0 0 0 0 0 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

BYNAM 0 LA FORT 0 BS.JOR 0 BV.SERR 0 BINMO 0 BS.BLAS 0 BS.CLA 0 BS.LUC 0 B KOER 0 BLA FLOR 0 BMARIT 0 B M. Aux 0

Dr. Juan Eulogio Estigarribia.

Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

CAMINO CRTICO - ALGORITMO DE DIJKSTRA

Tiempo de proceso = 0 segundos Arcos calculados desde el nodo origen (BV.SERR) hasta el nodo destino (BLA FLOR): * BV.SERR----(2)---> BS.BLAS *BS.BLAS----(4)---> B KOER *B KOER ----(3)---> BLA FLOR Coste total = 9

Matriz de Arcos con coste mximo:


N1\N2 BCEN BYNAM LA FORT BS.JOR BV.SERR BINMO BS.BLAS BS.CLA BS.LUC B KOER BLA FLOR BMARIT B M. Aux

BCEN

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 1 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 1 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

BYNAM 0 LA FORT 0 BS.JOR 0

BV.SERR 0 BINMO 0 BS.BLAS 0 BS.CLA 0 BS.LUC 0 B KOER 0 BLA FLOR0 BMARIT 0 B M. Aux 0

Dr. Juan Eulogio Estigarribia.

Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

Desarrolla una estructura de Arreglos para almacenar nombres de

vehculos; al final de la insercin debe mostrar todos los datos cargados.

Pseudocdigo
Def. Nombrevehic:Array[1..7] de Alfanumerico; AP: Entero; //INGRESO DE DATOS Para AP=1 a 7 Hacer Leer Nombrevehic[AP] Fin Para //MUESTRA DE DATOS Para AP=1 a 7 Hacer Escribir Nombrevehic[AP] Fin Para

Cdigo Fuente en Pascal


PROGRAM ARREGLOS; USES CRT; VAR NOMBREVEHIC:ARRAY[1..7] OF STRING; AP:INTEGER; //PROCEDIMIENTO PRINCIPAL BEGIN //INGRESO DE DATOS FOR AP:=1 TO 7 DO BEGIN CLRSCR; WRITE('INGRESE EL NOMBRE DEL VEHICULO: '); READLN(NOMBREVEHIC[AP]); END; //MUESTRA DE VALORES INGRESADOS CLRSCR; FOR AP:=1 TO 7 DO BEGIN WRITE('EL NOMBRE DEL VEHICULO ES: '); WRITELN(NOMBREVEHIC[AP]); END; READKEY; END.

Dr. Juan Eulogio Estigarribia.

Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

Construye

una estructura de Registros, donde se pueda

almacenar datos (hasta 20) de Computadoras (Descripcin, CPU, Memoria y Disco Duro). Que permita ver todos los registros que contiene.

Pseudocdigo
Tipo Computadoras=Registro Descripcion:Alfanumerico CPU:Alfanumerico Memoria:Alfanumerico DiscoDuro:Alfanumerico Fin Estructura VARIABLES Datos:Array[1..20] de Computadoras AP:Entero //INGRESO DE DATOS Para AP:=1 a 20 Hacer Leer Datos[AP].Descripcion Leer Datos[AP].CPU Leer Datos[AP].Memoria Leer Datos[AP].DiscoDuro Fin Para //MUESTRA DE CARACTERES INGRESADOS Para AP:= 1 a 20 Hacer Escribir Datos[AP].Descripcion Escribir Datos[AP].CPU Escribir Datos[AP].Memoria Escribir Datos[AP].DiscoDuro Fin Para

Cdigo Fuente en Pascal


PROGRAM DATOS_DE_COMPUTADORAS; USES CRT; TYPE COMPUTADORAS=RECORD DESCRIPCION:STRING; CPU:STRING; MEMORIA:STRING; DISCODURO:STRING; END; VAR DATOS:ARRAY[1..20] OF COMPUTADORAS; AP:INTEGER;

Dr. Juan Eulogio Estigarribia.

Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

//PROCEDIMIENTO PRINCIPAL BEGIN CLRSCR; //INGRESO DE DATOS FOR AP:=1 TO 20 DO BEGIN WRITE('INGRESE LA DESCRIPCION DE LA COMPUTADORA: ');READLN(DATOS[AP].DESCRIPCION); WRITE('INGRESE EL MODELO DE LA CPU: ');READLN(DATOS[AP].CPU); WRITE('INGRESE LA CAPACIDAD DE LA MEMORIA');READLN(DATOS[AP].MEMORIA); WRITE('INGRESE EL ESPACIO DEL DISCO DURO');READLN(DATOS[AP].DISCODURO); END; //MUESTRA DE CARACTERES INGRESADOS CLRSCR; FOR AP:= 1 TO 20 DO BEGIN WRITE(DATOS[AP].DESCRIPCION); WRITELN(DATOS[AP].CPU); WRITELN(DATOS[AP].MEMORIA); WRITELN(DATOS[AP].DISCODURO); END; READKEY; END.

Dr. Juan Eulogio Estigarribia.

Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

Construye una estructura de Pilas, donde se pueda almacenar

datos (hasta 20) de Computadoras (Descripcin, CPU, Memoria y Disco Duro). Que permita ver todos los registros que contiene; adems de insertar otros y eliminar.

Pseudocdigo
Tipos Datos:Registro Descripcion:Alfanumerico CPU:Alfanumerico Memoria:Alfanumerico DiscoDuro:Alfanumerico Fin Estructura EstructuraPila:Registro Pila:Array[1..20] de Datos ApTope: Entero Fin Estructura Variables P:EstructuraPila Nuevo,Ultimo,Ultvalor:Datos Procedimiento Meter (Nuevo:Datos) Si (P.ApTope < 20) Entonces P.ApTope=P.Aptope+1 Leer Nuevo.Descripcion Leer Nuevo.CPU Leer Nuevo.Memoria Leer Nuevo.DiscoDuro P.Pila[ApTope].Descripcion=Nuevo.Descripcion P.Pila[ApTope].CPU=Nuevo.CPU P.Pila[ApTope].Memoria=Nuevo.Memoria P.Pila[ApTope].DiscoDuro=Nuevo.DiscoDuro Si no Escribir ERROR: Pila llena Fin si Fin Procedimiento Procedimiento sacar (Ultimo:Datos) Si (P.ApTope > 0) Entonces Ultimo.Descripcion=P.Pila[ApTope].Descripcion Ultimo.CPU=P.Pila[ApTope].CPU Ultimo.Memoria=P.Pila[ApTope].Memoria Ultimo.DiscoDuro=P.Pila[ApTope].DiscoDuro P.ApTope=P.ApTope-1 Si no Escribir ERROR: Pila Vacia Fin si Fin Procedimiento
Dr. Juan Eulogio Estigarribia. Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

Procedimiento Verultimo (Ultvalor:Datos) Si (P.ApTope > 0) Entonces Escribir P.Pila[ApTope].Descripcion Escribir P.Pila[ApTope].CPU Escribir P.Pila[ApTope].Memoria Escribir P.Pila[ApTope].DiscoDuro Si no Escribir ERROR: Pila vacia Fin si Fin Procedimiento

Cdigo Fuente en Pascal


PROGRAM COMPUTADORAS_DATOS; USES CRT; TYPE DATOS=RECORD DESCRIPCION:STRING; CPU:STRING; MEMORIA:STRING; DISCODURO:STRING; END; ESTRUCTURAPILA=RECORD PILA:ARRAY[1..20] OF DATOS; APTOPE:INTEGER; END; VAR P:ESTRUCTURAPILA; OP:INTEGER; NUEVO,ULTIMO,ULTVALOR:DATOS; PROCEDURE METER(NUEVO:DATOS); BEGIN IF(P.APTOPE < 20) THEN BEGIN P.APTOPE:=P.APTOPE+1; WRITE('INGRESE LA DESCRIPCION DE LA COMPUTADORA: '); READLN(NUEVO.DESCRIPCION); WRITE('INGRESE EL MODELO DE LA CPU: ');READLN(NUEVO.CPU); WRITE('INGRESE LA CAPACIDAD DE LA MEMORIA: ');READLN(NUEVO.MEMORIA); WRITE('INGRESE EL ESPACIO DEL DISCO DURO:');READLN(NUEVO.DISCODURO); P.PILA[P.APTOPE].DESCRIPCION:=NUEVO.DESCRIPCION; P.PILA[P.APTOPE].CPU:=NUEVO.CPU; P.PILA[P.APTOPE].MEMORIA:=NUEVO.MEMORIA; P.PILA[P.APTOPE].DISCODURO:=NUEVO.DISCODURO; END ELSE WRITELN('ERROR: PILA LLENA');READLN; END; PROCEDURE SACAR(ULTIMO:DATOS); BEGIN IF (P.APTOPE > 0) THEN BEGIN
Dr. Juan Eulogio Estigarribia. Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

ULTIMO.DESCRIPCION:=P.PILA[P.APTOPE].DESCRIPCION; ULTIMO.CPU:=P.PILA[P.APTOPE].CPU; ULTIMO.MEMORIA:=P.PILA[P.APTOPE].MEMORIA; ULTIMO.DISCODURO:=P.PILA[P.APTOPE].DISCODURO; P.APTOPE:=P.APTOPE-1; WRITELN('ULTIMO ELEMENTO ELIMINADO');READ; END ELSE WRITELN('ERROR: PILA VACIA');READLN; END; PROCEDURE TOPE(ULTVALOR:DATOS); BEGIN IF(P.APTOPE > 0)THEN BEGIN WRITELN('EL ULTIMO ELEMENTO INGRESADO => '); WRITELN(P.PILA[P.APTOPE].DESCRIPCION,': ES LA DESCRIPCION'); WRITELN(P.PILA[P.APTOPE].CPU,': ES EL MODELO DE LA CPU'); WRITELN(P.PILA[P.APTOPE].MEMORIA,': ES LA CAPACIDAD DE LA MEMORIA'); WRITELN(P.PILA[P.APTOPE].DISCODURO,': ES EL ESPACIO DEL DISCO DURO');READ; END ELSE WRITELN('ERROR: PILA VACIA');READLN; END; //PROCEDIMIENTO PRINCIPAL BEGIN CLRSCR; REPEAT WRITE('INGRESE OPCION: 1=AGREGAR, 2=ELIMINAR, 3=VER ULTIMO, 4=SALIR '); READLN(OP); CASE OP OF 1:METER(NUEVO); 2:SACAR(ULTIMO); 3:TOPE(ULTVALOR); ELSE WRITE('OPCION INCORRECTA'); END; UNTIL OP=4; END.

Dr. Juan Eulogio Estigarribia.

Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

Construye una estructura de Colas, donde se pueda almacenar

datos (hasta 20) de Computadoras (Descripcin, CPU, Memoria y Disco Duro). Que permita ver todos los registros que contiene; adems de insertar otros y eliminar.

Pseudocdigo
Tipos Datos:Registro Descripcin:Alfanumerico CPU:Alfanumerico Memoria:Alfanumerico DiscoDuro:Alfanumerico Fin Estructura EstructuraCola:Registro Cola:Array[1..20] de Datos Frente, Fondo:Entero Fin Estructura Variables C:EstructuraCola X, Y:Entero Nuevo, Eliminar:Datos Procedimiento Insertar (Nuevo:Datos) Si (C.fondo < 20) Entonces C.fondo=C.fondo+1 Leer Nuevo.Descripcion Leer Nuevo.CPU Leer Nuevo.Memoria Leer Nuevo.DiscoDuro C.Cola [C.fondo].Descripcion=Nuevo.Descripcion C.Cola [C.fondo].CPU=Nuevo.CPU C.Cola [C.fondo].Memoria=Nuevo.Memoria C.Cola [C.fondo].DiscoDuro=Nuevo.DiscoDuro Si (C.frente=0) Entonces C.frente=1 Fin si Si no Escribir ERROR: Ya no se dispone de espacios de almacenamiento Fin si Fin Procedimiento Procedimiento Borrar(Eliminar:Datos) Si (C.frente > 0) Entonces Eliminar=C.Cola[C.frente] Si (C.frente=C.fondo) Entonces C.frente=0 C.fondo=0 Si no C.frente=C.frente+1 Fin si
Dr. Juan Eulogio Estigarribia. Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

Si no Escribir ERROR: No hay elementos Fin si Fin Procedimiento Procedimiento VerElementos (X:Entero) Si (C.frente > 0) Entonces X=C.frente Y=C.fondo Mientras X <= Y Hacer Escribir (C.Cola[X].Descripcion) Escribir (C.Cola[X].CPU) Escribir (C.Cola[X].Memoria) Escribir (C.Cola[X].DiscoDuro) X=X+1 Fin Mientras Si no Escribir ERROR: No hay elementos Fin si Fin Procedimiento

Cdigo Fuente en Pascal


PROGRAM DATOS_DE_COMPUTADORAS; USES CRT; TYPE DATOS=RECORD DESCRIPCION:STRING; CPU:STRING; MEMORIA:STRING; DISCODURO:STRING; END; ESTRUCTURACOLA=RECORD COLA:ARRAY[1..20] OF DATOS; FRENTE,FONDO:INTEGER; END; VAR C:ESTRUCTURACOLA; OP,X,Y:INTEGER; EIN,EREM:DATOS; PROCEDURE INSERTAR(EIN:DATOS); BEGIN IF (C.FONDO < 20) THEN BEGIN C.FONDO:=C.FONDO+1; WRITE('INGRESE LA DESCRIPACION DE LA COMPUTADORA: ');READLN(EIN.DESCRIPCION); WRITE('INGRESE EL MODELO DE LA CPU:');READLN(EIN.CPU); WRITE('INGRESE LA CAPACIDAD DE LA MEMORIA:');READLN(EIN.MEMORIA); WRITE('INGRESE EL ESPACIO DEL DISCO DURO: ');READLN(EIN.DISCODURO);

Dr. Juan Eulogio Estigarribia.

Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

C.COLA[C.FONDO].DESCRIPCION:=EIN.DESCRIPCION; C.COLA[C.FONDO].CPU:=EIN.CPU; C.COLA[C.FONDO].MEMORIA:=EIN.MEMORIA; C.COLA[C.FONDO].DISCODURO:=EIN.DISCODURO; IF (C.FRENTE=0) THEN C.FRENTE:=1 END ELSE WRITELN('ERROR: YA NO SE DISPONE DE ESPACIOS DE ALMACENAMIENTO'); END; PROCEDURE ELIMINAR(EREM:DATOS); BEGIN IF (C.FRENTE > 0) THEN BEGIN EREM.DESCRIPCION:=C.COLA[C.FRENTE].DESCRIPCION; EREM.CPU:=C.COLA[C.FRENTE].CPU; EREM.MEMORIA:=C.COLA[C.FRENTE].MEMORIA; EREM.DISCODURO:=C.COLA[C.FRENTE].DISCODURO; IF(C.FRENTE=C.FONDO) THEN BEGIN C.FRENTE:=0; C.FONDO:=0; END ELSE C.FRENTE:=C.FRENTE+1 END ELSE WRITELN('ERROR: NO HAY ELEMENTOS'); END; PROCEDURE VERELEMENTOS(X:INTEGER); BEGIN IF C.FRENTE > 0 THEN BEGIN CLRSCR; X:=C.FRENTE; Y:=C.FONDO; WHILE X <= Y DO BEGIN WRITELN ('*******************************'); WRITELN(C.COLA[X].DESCRIPCION,': ES LA DESCRIPCION DE LA COMPUTADORA'); WRITELN(C.COLA[X].CPU,': ES EL MODELO DE LA CPU'); WRITELN(C.COLA[X].MEMORIA,': ES LA CAPACIDAD DE LA MEMORIA'); WRITELN(C.COLA[X].DISCODURO,': ES EL ESPACIO DEL DISCO DURO'); X:=X+1; END; END ELSE WRITELN('ERROR: NO HAY ELEMENTOS'); END; // PROCEDIMIENTO PRINCIPAL BEGIN CLRSCR; REPEAT WRITE('INGRESE OPCION: 1=AGREGAR, 2=ELIMINAR, 3=VER TODOS, 4=SALIR ');

Dr. Juan Eulogio Estigarribia.

Jueves 23 de julio.

Ing. en Sistemas Informticos

Examen Final - Informtica III.

READLN(OP); CASE OP OF 1:INSERTAR(EIN); 2:ELIMINAR(EREM); 3:VERELEMENTOS(X); ELSE WRITELN('OPCION INCORRECTA'); END; UNTIL OP=4; END.

Dr. Juan Eulogio Estigarribia.

Jueves 23 de julio.

Das könnte Ihnen auch gefallen