Examen Parcial Otoño 2010 (3) (2010)

Examen Español
Universidad Universidad Politécnica de Cataluña (UPC)
Grado Ingeniería de Sistemas de Telecomunicación - 1º curso
Asignatura Fonamentos de Ordenadores
Año del apunte 2010
Páginas 2
Fecha de subida 12/11/2014
Descargas 0
Subido por

Vista previa del texto

Departamento de Arquitectura de Computadores Control 1 FO. Cuatrimestre 1A (09/11/2010) La perrera municipal La perrera municipal quiere implementar una aplicación informática que le permita obtener información de los perros que actualmente tiene en acogida. En este sentido te han encomendado la labor de: 1) Definir los tipos de datos estructurados que consideres necesarios, para guardar la siguiente información: − − − − Raza del perro (puede incluir hasta un máximo de 15 caracteres).
Nombre del perro (tendrá hasta un máximo de 10 caracteres).
Edad del perro.
Fecha de ingreso del perro a la perrera.
NOTA: Suponga que la perrera puede albergar hasta 500 perros.
2) Suponiendo que las estructuras de datos definidas en 1) están inicializadas (no tienes que inicializarlas sino declararlas) con la siguiente información: 4 perros Perro 1.
Perro 2: Perro 3: Perro 4: Raza:Caniche, Nombre:Mou, Edad:3, Fecha ingreso:12/12/2007 Raza:Dálmata, Nombre:Chiqui, Edad:10, Fecha ingreso:04/11/2009 Raza:Boxer, Nombre:Perucho, Edad:10, Fecha ingreso:03/11/2010 Raza:Caniche, Nombre:Laica, Edad:6, Fecha ingreso:17/09/2009 Nota: Declara e inicializa otras variables que consideres necesarias para implementar 2.1) y 2.2. Por ejemplo, variables de los bucles o alguna variable auxiliar.
Escribe un programa en Lenguaje C utilizando los tipos de datos definidos en el apartado 1) que permita: 2.1) Imprimir por pantalla los datos del perro (raza, nombre, edad y fecha de ingreso) que tiene más edad.
Nota: Si hay mas de un perro que sea el mas viejo, imprime la información del último perro considerando el orden de almacenamiento de la información en la estructura de datos. Por ejemplo: En la inicialización anterior el perro 2 y el perro 3 son los más viejos. El programa deberá imprimir la información del perro 3.
2.2) Imprimir los datos de todos los perros (raza, nombre, edad y fecha de ingreso) de raza “Caniche”. Considerando la inicialización anterior el programa imprimirá la información del perro 1 y del perro 4.
Nota: Si no hay perros en la perrera el programa debe contemplarlo e indicar que la perrera esta vacía (todos los perros han sido adoptados).
1 Solución: 1) #define MPAL 11 #define MFRA 16 #define MAX 500 typedef struct{ int dia; int mes; int anyo; }Tfecha; typedef struct{ char raza[MFRA]; char nom[MPAL]; int edad; Tfecha ingreso; }Tperro; typedef struct{ int numperros; Tperro perros[MAX]; }Tperrera; 2) void main(){ int i, j, pos, edad = 0; char raza[MFRA]="Caniche"; Tperrera perrera={{4},{{"Caniche","Mou",3,{12,12,2007}}, {"Dalmata","Chiqui",10,{04,11,2009}}, {"Boxer","Perucho",10,{03,11,2010}}, {"Caniche","Laica",6,{17,9,2009}}}}; if (perrera.numperros == 0) printf(“La perrera esta vacia, todos los perros han sido adoptados\n"); else { 2.1) for (i=0;i<perrera.numperros;i++){ if (perrera.perros[i].edad>=edad){ edad = perrera.perros[i].edad; pos = i; } } printf("El perro con mas edad es de raza %s.\n", perrera.perros[pos].raza); printf("Tiene por nombre %s.\n", perrera.perros[pos].nom); printf("Tiene %d anyos e ingreso a la perrera el dia %d/%d/%d.\n\n", perrera.perros[pos].edad, perrera.perros[pos].ingreso.dia, perrera.perros[pos].ingreso.mes,perrera.perros[pos].ingreso.anyo); 2.2) for (i=0;i<perrera.numperros;i++){ j=0; while(((perrera.perros[i].raza[j])==raza[j]) && (j<=7)){ j++; } if (j>7){ printf("%s:%s:%d:%d/%d/%d\n",perrera.perros[i].raza, perrera.perros[i].nom, perrera.perros[i].edad, perrera.perros[i].ingreso.dia, perrera.perros[i].ingreso.mes, perrera.perros[i].ingreso.anyo); } } } /*Cierra el else */ }/*Cierra el main*/ 2 ...