Sie sind auf Seite 1von 8

Digitalizado por Igor Duran para www.admycontuna.mforos.

com

m
co
s.
ro
fo
.m
na
tu
on
yc
dm
.a
w
w
w

Digitalizado por Igor Duran para www.admycontuna.mforos.com


Digitalizado por Igor Duran para www.admycontuna.mforos.com

m
co
s.
ro
fo
m
a.
t un
on
yc
dm
.a
w
w
w

Digitalizado por Igor Duran para www.admycontuna.mforos.com


Digitalizado por Igor Duran para www.admycontuna.mforos.com

324 - MR Versión 1 Primera Integral 1/6


Lapso 2005/1

UNIVERSIDAD NACIONAL ABIERTA


VICERRECTORADO ACADÉMICO
ÁREA INGENIERÍA

MODELO DE RESPUESTA

ASIGNATURA: Computación II CÓDIGO: 324


MOMENTO: Primera Integral VERSIÓN:1
FECHA DE APLICACIÓN: 23/04/04; LAPSO 2005-1

MOD. I, UND. 1, OBJ.1 CRITERIO DE DOMINIO 1/1

om
1- Tipo Abstracto de Datos

s .c
a- Un esquema ajustado a la situación, es el siguiente :

ro
fo
.m
Estructura de
TAD CONJUNTO datos
na
tu
on
yc

Operaciones
Eliminar Agregar Pertenecer Es vacío
dm
.a
w

Aquí se presenta como un tipo de dato conjunto, con las operaciones que se
w

deben considerar de acuerdo a la situación. Las operaciones contempladas


w

son:
Eliminar: Elimina un elemento dado del conjunto.
Agregar: Incluye un nuevo elemento. Si el elemento que se desea agregar
ya está en el conjunto, el mismo queda igual.
Pertenecer: Verifica si un elemento está o no en el conjunto
Es vacío: Verifica si el conjunto es o no vacío.

Además se podrían incluir otras operaciones como: Imprimir Conjunto, la cual


imprimiría todos los elementos del conjunto. Buscar elementos en el conjunto,
bajo una condición, etc.

Ingeniería de Sistemas

Digitalizado por Igor Duran para www.admycontuna.mforos.com


Digitalizado por Igor Duran para www.admycontuna.mforos.com

324 - MR Versión 1 Primera Integral 2/6


Lapso 2005/1

b- A continuación se presentan la definición de la estructura usada y la


operación Eliminar en PASCAL:
const
N = 20;
BLANCO = ' ';
type
cadena = string[12];
Tipo_fruta = array[1..N] of cadena;
var
Fruta_trop : Tipo_fruta;

om
procedure Eliminar(x : cadena; var S : Tipo_fruta) ;
var

.c
ESTA : boolean;

s
i : integer;
begin
ro
fo
ESTA := false;
.m

i := 1;
While not ESTA and (i < N) do
na

begin
tu

if (S[i] = x) then
on

begin
S[i] := BLANCO;
yc

ESTA := true;
dm

end
else i := i + 1;
.a

end;
w

if not ESTA then


w

writeln('El elemento ', x,' no está');


w

end; {Eliminar}

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 las operaciones mencionadas. Con respecto a la sección
b) el tipo de dato empleado puede ser un arreglo (array) o el tipo de dato conjunto(
set of). La utilización del tipo de datos array posee la dificultad de ser estática,
por lo tanto si se tiene una colección con un mayor número de objetos habría que
cambiar la dimensión del arreglo (N) que en este caso es igual a 20. La dificultad
que presenta el tipo de dato Set es que no se puede imprimir los elementos que
conforman el conjunto a partir del mismo.

Ingeniería de Sistemas

Digitalizado por Igor Duran para www.admycontuna.mforos.com


Digitalizado por Igor Duran para www.admycontuna.mforos.com

324 - MR Versión 1 Primera Integral 3/6


Lapso 2005/1

MOD. I, UND. 2, OBJ. 2 CRITERIO DE DOMINIO 1/1

2- a) La estructura de datos apropiada debe ser flexible para que facilite mantener
de manera eficiente la data de cada polinomio, es decir coeficientes y
exponente de cada término. Al operar dos polinomios, el polinomio resultante
puede tener más términos que cada polinomio separadamente.

Analizando esta situación, deducimos que debemos crear una estructura de


datos que permita almacenar información sobre cada polinomio y soportar
todas las operaciones aritméticas, una estructura adecuada puede ser una

om
LISTA LINEAL ENLAZADA, con manejo dinámico de memoria.
Cada nodo almacena un término del polinomio, una posible estructura del nodo

.c
es la siguiente:

s
COEFICIENTE E
ro
fo
N
.m

L
A
na

X Y Z C
tu

E
on
yc
dm

Los elementos del nodo son:


♦ El coeficiente del término.
.a

♦ X: exponente de X en el término (un exponente igual a cero significa


w

que la variable x no forma parte del término). Y y Z se definen


w

idénticamente.
w

♦ Enlace: dirección del próximo nodo.

Como el polinomio está formado por un conjunto de términos, en cada nodo


alojamos un término. Cada lista lineal enlazada contiene un polinomio.

También se podría definir una estructura más general en donde se considere un


mayor número de variables: x, y, z, w, etc.

b) TAD Polinomio

Ingeniería de Sistemas

Digitalizado por Igor Duran para www.admycontuna.mforos.com


Digitalizado por Igor Duran para www.admycontuna.mforos.com

324 - MR Versión 1 Primera Integral 4/6


Lapso 2005/1

TAD POLINOMIO

om
Sumar Restar Multiplicar Derivar Evaluar

s .c
ro
fo
Se pueden considerar también operaciones como la determinación del grado del
polinomio.
.m
na

c) Operación evaluación de un polinomio de tres variables:


tu
on

Type
yc

apunt_nodo_lista = ^nodo_lista;
dm

nodo_lista = record
coef: real;
.a

expx: integer;
w

expy: integer;
w

expz: integer;
w

prox_elemento: apunt_nodo_lista;
end;

function EvalPoli(t: apunt_nodo_lista; x,y,z: real): real;


var
aux : apunt_nodo_lista;
res : real;

begin
res := 0;
aux := t;
while aux <> nil do

Ingeniería de Sistemas

Digitalizado por Igor Duran para www.admycontuna.mforos.com


Digitalizado por Igor Duran para www.admycontuna.mforos.com

324 - MR Versión 1 Primera Integral 5/6


Lapso 2005/1

begin
res := res + (aux^.coef) * potencia(x, aux^.expx)* potencia(y, aux^.expy)*
potencia(z, aux^.expz);
aux := aux^.prox_elemento;
end;
EvalPoli := res;

end; {EvalPoli}

La función potencia calcula la potencia de un número, recibe como parámetros el

om
número y el exponente.

.c
Criterio de corrección: Se logra el objetivo si se realiza lo solicitado en las tres

s
secciones. En esta situación se recomienda el empleo de una estructura de datos

ro
lineal para manipular el TAD polinomio. Es obligatorio presentar una descripción
fo
de la estructura de datos a emplear en PASCAL, equivalente a la mostrada en este
.m
modelo.
na

MOD. II, UND. 3, OBJ. 3 CRITERIO DE DOMINIO 1/1


tu

3- Árboles binarios
on

En esta situación se diseñará un procedimiento que realice la operación


yc

búsqueda, tal que a través del programa del programa principal se envíe el
apuntador a la raíz de cada árbol (ORO, PLATA y BRONCE), si el nombre está
dm

en algún árbol se imprime el mensaje, si no está igualmente se imprime el


mensaje ´El atleta x no está en ORO, PLATA y BRONCE’
.a
w

Type
w

tipo_nomb = string[30];
w

tipo_comp = string[40]; Tipos de


apunt_arbol = ^nodo_arbol; datos
nodo_arbol = record definidos
nombre: tipo_nomb;
competencia: tipo_comp;
izq,der: apunt_arbol
end;

var
Declaración de
ORO, PLATA, BRONCE : apunt_arbol; variables desde el
Esta : boolean; programa principal

Ingeniería de Sistemas

Digitalizado por Igor Duran para www.admycontuna.mforos.com


Digitalizado por Igor Duran para www.admycontuna.mforos.com

324 - MR Versión 1 Primera Integral 6/6


Lapso 2005/1

Procedure Busqueda(apunt:apunt_arbol;n : tipo_nomb; var Esta : boolean);


begin
if (apunt <>nil) then
begin
if (apunt^.nombre = n) then Esta := true
else
begin
busqueda( apunt^.izq, n, Esta );
busqueda( apunt^.der, n, Esta );

om
end;
end;

.c
end;

s
ro
fo
Criterio de corrección: el objetivo se logra si:
.m

♦ Se desarrolla un procedimiento recursivo en PASCAL, que resuelva el


na

problema planteado. Al respecto deberá establecer cómo hará la búsqueda en


tu

los tres árboles.


♦ Se describen correctamente en PASCAL, las variables y estructuras de datos
on

empleadas.
yc
dm

FIN DEL MODELO


.a
w
w
w

Ingeniería de Sistemas

Digitalizado por Igor Duran para www.admycontuna.mforos.com

Das könnte Ihnen auch gefallen