Esta es la pauta del certamen recuperativo

Anuncio
Universidad del Bío Bío
Facultad de Ciencias Empresariales
Departamento de Sistemas de Información
Campus Concepción
CERTAMEN RECUPERATIVO
ASIGNATURA . DISEÑO Y CONSTRUCCIÓN DE ALGORITMOS
CARRERAS
. INGENIERÍA CIVIL EN INFORMÁTICA
INGENIERÍA EJECUCIÓN EN COMPUTACIÓN E INFORMÁTICA
PROFESORES . CLAUDIO GUTIÉRREZ SOTO
FECHA
. 14 de Diciembre del 2009
ALUMNO:
# HOJAS:
NOTA:
Instrucciones



Lea bien antes de responder cada pregunta.
Escriba su nombre y rut en cada hoja que utilice para responder.
Tiempo máximo: 100 minutos.
PREGUNTA 1- ESTRUCTURAS
Dadas las siguientes estructuras, las cuales se encuentran con datos, se pide
struct Datos_Personales{
char nombre[20];
char rut[12];
int edad;
char direccion[30];
}Alumnos[30];
Struct Ramo{
char NombreRamo[30];
char anho[4];
int Semestre;
char codigo_ramo[10]; // el código de ramo es distinto para cada versión de 1
asignatura
char Nombre_Carrera[10];
};
struct Notas{
char rut[12];
struct Ramo ramo_;
float Notas[3]; //notas parciales
float promedio; //promedio final incluido examen
}Notas_[150];
Pregunta 1.1
Crear una función que recibe como parámetro, el nombre del alumno, y el año; muestre todas las
asignaturas (nombre) aprobadas, así como el promedio.
(25 PUNTOS)
Universidad del Bío Bío
Facultad de Ciencias Empresariales
Departamento de Sistemas de Información
Campus Concepción
Pregunta 1.2
Crear una función que recibe como parámetro el nombre del ramo, la carrera, el año y semestre.
La función debe mostrar todos los alumnos (el nombre) que aprobaron el ramo en el examen,
(25 PUNTOS)
PREGUNTA 2- RECURSIVIDAD
Pregunta 2.1
Crear una función recursiva que ordene de manera ascendente el arreglo Notas_[150], (por el
promedio) correspondiente a las estructuras de la parte 1 de este certamen. La función recibe
como parámetro el nombre del ramo, el año y el semestre.
(25 PUNTOS)
PREGUNTA 3- PUNTEROS
3.1.- ¿ Cuáles son los valores que se imprimen en cada caso?
a) int *p, papa[4],i=5,*ptro=&papa,*ptro2; //
(10 puntos)
papa[4]={1,2,3,4};
p=&i;
*p=*p-*(ptro+3);
printf(“%d”, *p);
ptro2=ptro+2;
ptro++;
i=i+*(papa+2);
printf(“%d %d \n”,i,*p);
*(ptro+3)=*(ptro2+*p)+*ptro;
printf(“d\n”,papa[3]);
b) 15 puntos
typedef struct{
int anhos_servicio;
int mes;
int dia;
int anio;
}fecha;
struct Cuenta{
int *no_cuenta;
char *tipo_cuenta[5];
char *nombre;
float *saldo;
fecha anhos;
}cliente,*pc=&cliente;
main(){
int n,*p=&n;
char papa[4]={‘A’,’b’,’c’,’d’},*c=&papa[0];
float b,*f=&b;
*p=10;*f=(11.0+*p);
cliente.no_cuenta=p;
cliente.tipo_cuenta=c+2;
cliente.nombre=“Lázaro”;
cliente.saldo=&b;
printf(“%d %c %s %.2f”,*cliente.no_cuenta,*cliente.tipo_cuenta,
cliente.nombre,*cliente.saldo);
printf(“%d %c %s %.2f \n”,*pc->no_cuenta,*pc->tipo_cuenta, pc>nombre,*pc->saldo);
}
Universidad del Bío Bío
Facultad de Ciencias Empresariales
Departamento de Sistemas de Información
Campus Concepción
RESPUESTA PREGUNTA 1.1
ALUMNO:
SECCIÓN
PUNTAJE
void AsignaturaAprob(char nombre[ ],char anho[ ])
{
int i,j;
for(i=0;i<30;i++)
{
if(!strcmp(nombre,Alumnos[i].nombre)) // 05 primer for y el nombre
{
for(j=0; j<150 ; j++) // 08 puntos el segundo for y los comparadores
{ if(!strcmp(Alumnos[i].rut,Notas_[j].rut) && !strcmp(Notas_[j].ramo_.anho, anho) &&
Notas_[j].promedio>=60)
printf(“%s %d\n”, Notas_[j].ramo_.NombreRamo, Notas_[j].promedio); //04 impresión
else continue;
}
}
else continue;
}
}
// 08 puntos el funcionamiento correcto
Universidad del Bío Bío
Facultad de Ciencias Empresariales
Departamento de Sistemas de Información
Campus Concepción
RESPUESTA PREGUNTA 1.2
ALUMNO:
SECCIÓN
PUNTAJE
void AprobaronExamen(char NombreRamo[ ],char carrera[ ],char anho[ ],int Semestre)
{
int i,j;
for(i=0;i<150;i++) // 08 puntos el for y los comparadores
{
if(!strcmp(NombreRamo,Notas_[i].ramo_.NombreRamo) &&
!strcmp(anho,Notas_[i].ramo_.anho) &&
!strcmp(carrera,Notas_[i].ramo_.Nombre_Carrera) &&
Semestre==Notas_[i].ramo_.Semestre && Notas_[i].promedio>=60 )
{
If(((Notas_[i].Notas[0]+Notas_[i].Notas[1]+Notas_[i].Notas[2])/3)<60)
{ // 05 puntos el calculo de la nota de presentación
for(j=0;j<30;j++)
{
if(!strcmp(Notas_[i].rut,Alumnos[j].rut)) // 04 puntos impresión
printf(“%s %d\n”, Alumnos[j].nombre);
else continue;
}
}
else continue;
}
else continue;
}
// 08 puntos el funcionamiento correcto
Universidad del Bío Bío
Facultad de Ciencias Empresariales
Departamento de Sistemas de Información
Campus Concepción
RESPUESTA PREGUNTA 2.1
ALUMNO:
SECCIÓN
PUNTAJE
void Ordenar(Struct Notas Notas[], int inic, char NombreRamo[ ], char anho[ ],int Semestre)
{
int i,j,Mayor;
Struct Notas Aux;
for(i=Inic.,j=0;i<150 ;i++)
{
if(!strcmp(NombreRamo,Notas_[i].ramo_.NombreRamo) &&
!strcmp(anho,Notas_[i].ramo_.anho) &&
Semestre==Notas_[i].ramo_.Semestre )
{
If(j==0)
{ // 05 puntos encontrar el mayo
Mayor=i;
j=1;
}
else if(Notas_[i].promedio>Notas[Mayor].promedio)
Mayor=i;
}
else continue;
} // fin del for
If(j==1)
{// 05 puntos el intercambio
Aux=Notas_[Inic.];
Notas_[Inic.]=Notas_[Mayor];
Notas_[Mayor]=Aux;
}
Ordenar(Notas_,Inic+1,NombreRamo, anho, Semestre);
// Adecuada llamada 05 puntos
}
// 10 puntos el funcionamiento correcto
Universidad del Bío Bío
Facultad de Ciencias Empresariales
Departamento de Sistemas de Información
Campus Concepción
RESPUESTA PREGUNTA 3
ALUMNO:
SECCIÓN
a)
Imprime 1
Imprime 4, 4 y una dirección de memoria si esta es menor que 64k
b)
Imprime 10, c, Lazaro, 21.0
Imprime 10, c, Lazaro, 21.0
PUNTAJE
Documentos relacionados
Descargar