324 MR Versión 1 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA 2° Prueba Integral Lapso 2013-1 1/5 Semana 18 MODELO DE RESPUESTA ASIGNATURA: Computación II MOMENTO: Segunda Integral FECHA DE APLICACIÓN: 04/05/2013 MOD. I, UND. 1, OBJ.1 1.- Solución. a) • • • • 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: Eliminar: elimina un estado por su nombre. Buscar: busca un estado por región. Localizar: obtiene la región del estado. Figura 1. Esquema de la matriz Estado de Venezuela Región b) Tipo de Dato (PASCAL): const N = 23; TYPE cadena=string[15]; TArr = ARRAY[1..N,1..N] OF cadena; var matriz : TArr; estado: cadena; region: cadena; ch : char; Especialista: Nelly Escorcha Ingeniería de Sistemas Evaluador: Carmen Velásquez 324 MR Versión 1 2° Prueba Integral Lapso 2013-1 2/5 Procedure BuscarRegion(var m: TArr;region:cadena); var i : integer; Encontrado : boolean; begin i:=1; Encontrado:=false; While not Encontrado and (i <= N) do begin if (region = m[i,2]) then begin writeln ('Estados: ',m[i,1]); Encontrado:= true; end; i:=i+1; end; if (not Encontrado) then writeln('Region no encontrada '); 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 BuscarRegion. 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 figura 2: Especialista: Nelly Escorcha Ingeniería de Sistemas Evaluador: Carmen Velásquez 324 MR Versión 1 2° Prueba Integral Lapso 2013-1 3/5 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 tiene valor null. c) Especificación de las estructuras de datos y procedimiento ImprimirLista que consiste en imprimir la lista de proveedores por zona. Type tipo_cod_prov = string[5]; tipo_nom_prov = string[30]; tipo_dir = string[60]; tipo_zona = string[5]; apunt_nodo_lista = ^nodo_lista; nodo_lista = record codigo : tipo_cod_prov; nombre : tipo_nom_prov; direccion : tipo_dir; zona_region : tipo_zona; Especialista: Nelly Escorcha Ingeniería de Sistemas Evaluador: Carmen Velásquez 324 MR Versión 1 2° Prueba Integral Lapso 2013-1 4/5 prox_elemento : apunt_nodo_lista; end; var L,AP : apunt_nodo_lista; cod : tipo_cod_prov; nombre : tipo_nom_prov; direcc : tipo_dir; zona : tipo_zona; ch : char; procedure ImprimirLista(AP : apunt_nodo_lista); var AUX : apunt_nodo_lista; begin AUX := AP; if AUX = nil then writeln(' Lista Vacia ') else begin writeln('Lista De Proveedores'); while (AUX <> nil) do begin write(AUX ^.codigo,' ' ); write(AUX ^.nombre,' ' ); write(AUX ^.direccion,' ' ); write(AUX ^.zona_region,' ' ); writeln; AUX := AUX ^.prox_elemento; end; end; end; {IMPRIMIR } 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.- Recorrido de un árbol binario: En Orden, Preorden, Postorden. Especialista: Nelly Escorcha Ingeniería de Sistemas Evaluador: Carmen Velásquez 324 MR Versión 1 2° Prueba Integral Lapso 2013-1 5/5 type info =integer; ptr=^nodo; Nodo=record Eldato :info; Ida:Ptr; Dcha:ptr; end; var raiz:ptr; nodo1:nodo; datos:info; op:char; siga:boolean; Procedure Preorden (P:ptr); begin if P<>nil then begin write(P^.Eldato:6); Preorden (P^.Ida); Preorden(P^.Dcha); delay(3000) end end; Procedure Inorden (P:Ptr); begin if P<> nil then begin Inorden (P^.Ida); Write(P^.Eldato:6); Inorden(P^.Dcha); delay(3000) end end; Procedure Postorden (P:ptr); begin if p<>nil then begin Postorden (P^.Ida); Postorden (P^.Dcha); writeln (P^.Eldato:6); delay(3000) end 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