324 MR Versión 1 2° Prueba Integral 1/6 Lapso

Anuncio
324 MR
Versión 1
UNIVERSIDAD NACIONAL ABIERTA
VICERRECTORADO ACADÉMICO
ÁREA INGENIERÍA
2° Prueba Integral
Lapso 2012-1
1/6
Semana 44
MODELO DE RESPUESTA
ASIGNATURA: Computación II
MOMENTO: Segunda Integral
FECHA DE APLICACIÓN: 27/10/2012
MOD. I, UND. 1, OBJ.1
1.- Solución.
•
•
•
•
CÓDIGO: 324
CRITERIO DE DOMINIO 1/1
Tipo Abstracto de Datos. El siguiente es un modelo del TAD: Se propone
el uso de Matrices y las operaciones Insertar: inserta número de placa
(clave), Fecha de entrada, Marca, Modelo, Año de fabricación, tipo de falla
en la matriz.
Eliminar: elimina un vehiculo x puede ser según la posición o por la clave.
Buscar: busca un vehiculo por la clave.
Localizar: obtiene la posición de un vehiculo.
Figura 1. Esquema de la matriz
b) Tipo de Dato (PASCAL):
const
N = 5;
Especialista: Nelly Escorcha
Ingeniería de Sistemas
Evaluador: Carmen Velásquez
324 MR
Versión 1
2° Prueba Integral
Lapso 2012-1
2/6
TYPE
cadena=string[10];
TArr = ARRAY[1..N,1..N] OF cadena;
var
matriz : TArr;
dato: cadena;
ch
: char;
Procedure Atender (var m: TArr;dato:cadena);
var
i
: integer;
Encontrado : boolean;
contenido
: cadena;
begin
i:=1;
Encontrado:=false;
While not Encontrado and (i <= N) do
begin
if (dato = m[i,2]) then
begin
writeln ('Placa: ',m[i,1]);
Encontrado:= true;
end;
i:=i+1;
end;
if (not Encontrado) then writeln('Dato no encontrado ');
end;
Criterio de corrección: Se logra el objetivo si se realiza lo solicitado en las dos
secciones. Con respecto a la sección a) deberá describir el TAD apropiado,
contemplando al menos 3 operaciones posibles. Para cumplir con lo exigido en la
sección b) debe implementarse correctamente la operación Atender.
Especialista: Nelly Escorcha
Ingeniería de Sistemas
Evaluador: Carmen Velásquez
324 MR
Versión 1
MOD. I, UND. 2, OBJ. 2
2° Prueba Integral
Lapso 2012-1
3/6
CRITERIO DE DOMINIO
2 .- Estructuras lineales de datos
a) La estructura de datos mas apropiada es la de listas, Una lista enlazada es
una colección lineal de elementos donde el orden de los mismos se
establece mediante punteros. Ver figura2:
Figura 2
b) El TAD apropiado es una lista enlazada. Una lista enlazada es una estructura
de datos lineal compuesta por nodos, en la cual cada nodo almacena un dato y
una referencia al nodo que le sigue en la estructura. La lista contiene una
referencia al primer nodo de la misma. A partir de este, cada nodo tiene una
referencia al siguiente, hasta el último, cuya referencia al siguiente nodo
tiene valor null.
c) Especificación de las estructuras de datos y procedimiento Insertar Pasajero,
que; consiste en crear una lista de pasajeros por número de vuelo.
Especialista: Nelly Escorcha
Ingeniería de Sistemas
Evaluador: Carmen Velásquez
324 MR
Versión 1
2° Prueba Integral
Lapso 2012-1
4/6
program listas;
uses WinCrt;
const N= 2;
Type
tcadena = string[30];
tvuelo = string[5];
tci = string[15];
tlista = ^nodo;
nodo = Record
nom_bre : tcadena;
ape_llido: tcadena;
cedu_la : tci;
sig
: tlista;
end;
cabecera = Record
num_vue : tvuelo;
destino : tcadena;
capacidad: integer;
prox : tlista;
end;
control_lista = ARRAY[1..N] OF cabecera;
var
cabecera_vuelo: control_lista;
procedure InsertarPasajero( var A : Control_lista; i : integer; nom: tcadena; ape : tcadena; ci: tci );
var
ant, aux, nuevo : tlista;
function CrearNodo: tlista;
var apunt: tlista;
begin
new(apunt);
with apunt^ do
begin
Nom_bre := nom ;
Ape_llido:= ape ;
cedu_la := ci ;
sig
:= nil
end;
CrearNodo := apunt;
end;{CrearNodo}
Especialista: Nelly Escorcha
Ingeniería de Sistemas
Evaluador: Carmen Velásquez
324 MR
Versión 1
2° Prueba Integral
Lapso 2012-1
5/6
begin
aux := A[i].prox;
nuevo := CrearNodo;
if (aux <> nil) then
begin
while ( aux <> nil ) do
begin
ant := aux;
aux := aux^.sig;
end;
ant^.sig := nuevo
end {if}
else A[i].prox := nuevo;
A[i].capacidad := A[i].capacidad - 1;
writeln( ' capacidad = ', A[i].capacidad);
end;{InsertarPasajero}
Criterio de corrección: Se logra el objetivo si se realiza correctamente todo lo
solicitado en las tres secciones de la pregunta, debe utilizar manejo dinámico de
memoria y la estructura de listas enlazadas.
MOD. II, UND. 3, OBJ. 3
CRITERIO DE DOMINIO 1/1
3.- Operación con un árbol binario.
program arboleda; { Se extraen números de una matriz NxN y se insertan en un árbol de
búsqueda}
uses WinCrt;
const N=3;
Type
TipoDato= integer;
Puntero = ^TipoBase;
TipoBase = record
dato: integer ;
hijoIzq: Puntero;
hijoDer: Puntero;
end;
{ El puntero al tipo base }
{ El tipo base en sí: }
{ - un dato numérico}
{ - puntero a su hijo izquierdo }
{ - puntero a su hijo derecho }
TArr = array[1..N,1..N] of TipoDato;
procedure Colocar(var punt: puntero; x: TipoDato);
var AUX, AUX1, NUEVO : puntero;
Especialista: Nelly Escorcha
Ingeniería de Sistemas
Evaluador: Carmen Velásquez
324 MR
Versión 1
2° Prueba Integral
Lapso 2012-1
6/6
begin
AUX := punt;
AUX1 := punt;
while (AUX <> nil) do
begin
AUX1 := AUX;
if x= AUX^.dato then writeln('Número Duplicado:', x);
if (x < AUX^.dato) then AUX := AUX^.hijoIzq
else AUX := AUX^.hijoDer
end;
NUEVO := NuevoNodo(x);
if (punt = nil) then punt := NUEVO { caso raiz}
else if (x <= AUX1^.dato) then AUX1^.hijoIzq := NUEVO
else if (x >= AUX1^.dato) then AUX1^.hijoDer := NUEVO
end;
Criterio de corrección: Se logra el objetivo si se resuelve el problema
planteado empleando una estructura de árbol binario. Se debe especificar la
estructura de datos empleada.
FIN DEL MODELO
Especialista: Nelly Escorcha
Ingeniería de Sistemas
Evaluador: Carmen Velásquez
Descargar