324 MR Versión 1 Prueba Integral 1/3 Semana 10

Anuncio
324 MR
Versión 1
Semana 10
Prueba Integral
Lapso 2015-2
1/3
UNIVERSIDAD NACIONAL ABIERTA
VICERRECTORADO ACADÉMICO
ÁREA INGENIERÍA
MODELO DE RESPUESTA
ASIGNATURA: Computación II
MOMENTO: Prueba Integral
FECHA DE APLICACIÓN: 05-03-2016
MOD. I, UND. 1, OBJ.1
CÓDIGO:
324
CRITERIO DE DOMINIO 1/1
1- a) TAD: Para representar cada cadena de dígitos binarios se propone el uso del
TAD cadena de caracteres o string. Otra manera de representar a cada
cadena
es empleando una estructura de vector unidimensional de
caracteres cuyos únicos caracteres son ceros y unos.
b) Operación Gray
void gray(string cad, string &cadnueva)
{
int i;
cadnueva[0] = cad[0];
for(i=1; i < N;i++)
cadnueva[i] = Xor(cad[i-1], cad[i]);
}
Criterio de corrección: Se logra el objetivo si se construye un TAD semejante,
considerando operaciones apropiadas. Es obligatorio elaborar correctamente la
especificación del TAD y la operación Gray en lenguaje C++.
Especialista: María E. Mazzei
Ingeniería de Sistemas
Evaluador: Sandra Sánchez
324 MR
Versión 1
Semana 10
Prueba Integral
Lapso 2015-2
MOD. I, UND. 2, OBJ. 2
2/3
CRITERIO DE DOMINIO 1/1
2- TAD lista circular
a- Codificación de la estructura:
btypedef struct nodo
{ //tipo Nodo
int numero;
int dist ;
struct nodo* sig; //apuntador al nodo sig
}nodo;
typedef
nodo *apunt;
//tipo apuntador
b- Operación Recorrido de la lista circular con cálculo de la distancia
recorrida
void Recorrido( apunt L)
{
apunt ptaux;
int acumdista;
bool no_destino;
acumdista = 0;
no_destino = true;
if (L == NULL)
{
cout <<"Lista Vacia" << endl;
}
else
{
ptaux = L;
while (no_destino)
{
acumdista= ++ ptaux->dist;
printf("\n Visito ciudad %d",ptaux -> numero);
ptaux = ptaux->sig;
if (ptaux == L) no_destino = false;
}
printf("\n La distancia recorrida es%d",acumdista);
}
}
Criterio de corrección: Se logra el objetivo si se elabora correctamente la
estructura de datos tipo lista circular con manejo dinámico de memoria y se
elabora correctamente la función en C++ denominada Recorrido que visita cada
nodo y acumula la distancia recorrida.
Especialista: María E. Mazzei
Ingeniería de Sistemas
Evaluador: Sandra Sánchez
324 MR
Versión 1
Semana 10
Prueba Integral
Lapso 2015-2
MOD. I, UND. 3, OBJ. 3
3/3
CRITERIO DE DOMINIO 1/1
3- TAD cola
i) Función de distribución en tres colas
void Distribuir(apunt &C, apunt &F, apunt &C1, apunt &F1,
apunt &C2, apunt &F2, apunt &C3, apunt &F3)
{
apunt pt, ptaux;
int a,b;
if (ColaVacia(C)== false)
{
pt = C;
while (pt != NULL)
{
Extrae nodo a la cabeza de la cola
ptaux = EliminarEnCola(C,F);
general
a = ptaux-> numero;
b = ptaux-> operacion;
if ((b >=1)&&(b <= 3))
InsertarEnCola(C1,F1,a,b);
else if ((b >= 4)&&(b <= 6))
InsertarEnCola(C2,F2,a,b);
else
InsertarEnCola(C3,F3,a,b);
delete ptaux;
pt = C;
Inserta en Cola 1
Inserta en Cola 2
Inserta en Cola 3
}
}
}
ii) Estructura de datos
typedef struct nodo
//tipo Nodo
int numero;
int operacion ;
struct nodo* sig;
}nodo;
{
typedef
nodo *apunt;
// apuntador al nodo siguiente
//tipo apuntador
Criterio de corrección: Se logra el objetivo si se elabora correctamente la
estructura de datos tipo cola con manejo dinámico de memoria y se elabora
Especialista: María E. Mazzei
Ingeniería de Sistemas
Evaluador: Sandra Sánchez
324 MR
Versión 1
Semana 10
Prueba Integral
Lapso 2015-2
4/3
correctamente la función Distribuir, en C++, que reparte los clientes en 3 colas
según el tipo de operación que van a realizar.
MOD. II, UND. 4, OBJ. 4
CRITERIO DE DOMINIO 1/1
4- TAD árbol
Función recursiva Grado
void Grado(apunt pt, int &grado)
{
if ((pt->izq == NULL)&&(pt->der == NULL))
grado = 0;
else if((pt->izq == NULL)||(pt->der == NULL))
grado = 1;
else
grado = 2;
}
Esta función será invocada desde la función recursiva HalleElemento, que
busca el elemento en cuestión. El indicador ind se emplea para informar desde
el programa principal si el elemento no está en el árbol y emitir el mensaje.
void HalleElemento(apunt apt, int numero, bool ind)
{
int grado;
if (apt != NULL)
{
if (numero == apt-> num)
{
Grado(apt,grado);
printf("\n El grado del nodo es %d ", grado);
ind = true;
apt = NULL;
}
else
{
HalleElemento(apt-> izq,numero, ind);
HalleElemento(apt-> der,numero, ind);
}
}
}
Especialista: María E. Mazzei
Ingeniería de Sistemas
Evaluador: Sandra Sánchez
324 MR
Versión 1
Semana 10
Prueba Integral
Lapso 2015-2
5/3
Estructura de datos
typedef struct nodoarbol
{ //tipo Nodo
int num ;
struct nodoarbol* izq;
struct nodoarbol* der;
}nodoarbol;
typedef
nodoarbol *apunt;
// apuntador al nodo izquierdo
//tipo apuntador
Criterio de corrección: Se logra el objetivo si se elabora correctamente la
estructura de datos tipo árbol con manejo dinámico de memoria y se elabora
correctamente una función en C++ que halle un elemento dado en un árbol de
búsqueda y el grado del nodo en donde se encuentra.
Nota: Para codificar, compilar y posteriormente ejecutar los algoritmos diseñados
en C++, se empleó Dev C++.
FIN DEL MODELO DE RESPUESTA
Especialista: María E. Mazzei
Ingeniería de Sistemas
Evaluador: Sandra Sánchez
Descargar