23/03/2013 - CiberEsquina - Universidad Nacional Abierta

Anuncio
324 MR
Versión 1
UNIVERSIDAD NACIONAL ABIERTA
VICERRECTORADO ACADÉMICO
ÁREA INGENIERÍA
1° Prueba Integral
Lapso 2013-1
1/6
Semana 12
MODELO DE RESPUESTA
ASIGNATURA: Computación II
MOMENTO: Primera Integral
FECHA DE APLICACIÓN: 23/03/2013
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 cédula
del alumno (clave), Apellido, Nombre, Grado, sección, materia, nota en la
matriz.
Eliminar: elimina un Alumno por la clave.
Buscar: busca un alumno por la clave.
Localizar: obtiene los datos del alumno por la clave.
Figura 1. Esquema de la matriz
b) Tipo de Dato (PASCAL):
const
N = 2;
M = 10;
Especialista: Nelly Escorcha
Ingeniería de Sistemas
Evaluador: Carmen Velásquez
324 MR
Versión 1
1° Prueba Integral
Lapso 2013-1
2/6
TYPE
cadena=string[15];
TArr = ARRAY[1..N,1..4] OF cadena;
TArr1 = ARRAY[1..N,1..3] OF cadena;
var
matriz : TArr;
matriz1 : TArr1;
dato: cadena;
ch
: char;
Procedure Construir(var m : TArr);
var
i
: integer;
dato : cadena;
BEGIN
i:=1;
WRITELN('<< Carga de Matriz >>');
WHILE i<=N DO
BEGIN
{CLRSCR;}
WRITE('Ingrese cedula ');
READLN(dato);
m[i,1]:= dato;
WRITE('Ingrese Apellido ');
READLN(dato);
m[i,2]:= dato;
WRITE('Ingrese Nombre ');
READLN(dato);
m[i,3]:= dato;
WRITE('Ingrese Sección ');
READLN(dato);
m[i,4]:= dato;
i:=i+1;
END;
END;
Procedure ConstruirMatria (var l : TArr1);
var
k
: integer;
dato : cadena;
BEGIN
k:=1;
WRITELN('<< Carga de Matriz de Notas >>');
WHILE k<=M DO
Especialista: Nelly Escorcha
Ingeniería de Sistemas
Evaluador: Carmen Velásquez
324 MR
Versión 1
1° Prueba Integral
Lapso 2013-1
3/6
BEGIN
{CLRSCR;}
l[k,1]:= dato;
WRITE('Ingrese Materia ');
READLN(dato);
l[k,2]:= dato;
WRITE('Ingrese Nota ');
READLN(dato);
l[k,3]:= dato;
k:=k+1;
END;
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 Construir.
MOD. I, UND. 2, OBJ. 2
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:
Fig. N°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
Especialista: Nelly Escorcha
Ingeniería de Sistemas
Evaluador: Carmen Velásquez
324 MR
Versión 1
1° Prueba Integral
Lapso 2013-1
4/6
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
tiene valor null.
c) Especificación de las estructuras de datos y procedimiento CrearListaBarcos,
que consiste en crear una lista de barcos por Nº de entrada al puerto.
program listas;
uses WinCrt;
const N= 2;
Type
tcadena = string[30];
tent = string[4];
tlista = ^nodo;
nodo = Record
nom_bre : tcadena;
hinter_land : tcadena;
fore_land : tcadena;
conte_nedor : tcadena;
sig
: tlista;
end;
cabecera = Record
num_ent : tent;
fecha : tcadena;
prox : tlista;
end;
control_lista = ARRAY[1..N] OF cabecera;
var
cabecera_vuelo: control_lista;
Procedure CrearListaBarcos( var A: control_lista);
var
entrada: tent;
nom, fore,hinte,conte : tcadena;
ch
: char;
i
: integer;
sw
: boolean;
Especialista: Nelly Escorcha
Ingeniería de Sistemas
Evaluador: Carmen Velásquez
324 MR
Versión 1
1° Prueba Integral
Lapso 2013-1
5/6
begin
ch := 'S';
WRITELN('<< Carga de listas >>');
while (ch = 'S') do
begin
WRITE('Ingrese No. de Entrada ');
READLN(entrada);
BuscarBarco(A, entrada, sw);
if sw=true then
begin
WRITE('Ingrese Nombre ');
READLN(nom);
WRITE('Ingrese Hinterland ');
READLN(hinte);
WRITE('Ingrese Foreland ');
READLN(fore);
WRITE('Ingrese Contenedor ');
READLN(conte);
CargaBarcos( A, i, nom, hinte, fore,conte);
end;
writeln( ' Hay mas barcos ?
readln(ch);
S/N');
end;
end; {CrearListaBarcos}
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 expresion; { Se extraen símbolos y números de una matriz NxN y se insertan en un
árbol de búsqueda}
uses WinCrt;
const N=2;
Type
TipoDato= integer;
Especialista: Nelly Escorcha
Ingeniería de Sistemas
Evaluador: Carmen Velásquez
324 MR
Versión 1
Puntero = ^TipoBase;
TipoBase = record
dato: integer ;
hijoIzq: Puntero;
hijoDer: Puntero;
end;
1° Prueba Integral
Lapso 2013-1
6/6
{ 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 Insertar(var punt: puntero; x: TipoDato);
var AUX, AUX1, NUEVO : puntero;
begin
AUX := punt;
AUX1 := punt;
while (AUX <> nil) do
begin
AUX1 := AUX;
if (x <= AUX^.dato) then AUX := AUX^.hijoIzq
else AUX := AUX^.hijoDer
end;
NUEVO := NuevoNodo(x);
if (punt = nil) then punt := NUEVO
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