Vista previa parcial del texto
¡Descarga Examen final Q2 2007 y más Exámenes en PDF de Fundamentos de la Informática solo en Docsity!
Fonaments d'Informática ET So i Imatge Segon Parcial, 18 de Juny de 2007 Temps máxim: 2 hores 30 minuts Feu un problema per full, mai dos problemes en el mateix full. Poseu el vostre nom i Venginyeria a tots els fulls. Revisió: 25 de Juny (consulteu els horaris al taulell de FD. Qualsevol hipútesi que feu sobre un problema 1'heu d'argumentar, en cas contrari no es tindrá en compte. Problema 1 [4 punts] Es disposa d'un programa informátic per emmagatzemar informació referent a les eleccions mumici- pals. El programa treballa amb la segúent estructura de dades: const int NUM_CANDIDATS=15; const int MAX _CANDIDATURES=20; const int MAX_COLEGIS ELECTORALS=50; const int MAX_TAULES_ELECTORALS=5; struct tCandidatura ( string sigles, nom; string noms_candidats [NUM_CANDIDATS]; y; struct tLlistaCandidatures ( int n_candidatures; tCandidatura candidatures[MAX_CANDIDATURES]; di struct tVot ( int cand; /f Índex a la llista de candidatures int num vots; // núm. de vots per a aquesta candidatura dl struct tLlistaVots ( int nvots; tVot vots [MAX CANDIDATURES]; d: struct tTaula ( string nom; int n votants; int nuls; // Número de vots nuls. int blancs; // Número de vots en blanc. tLlistaVots valids; // Vots valids Fonaments d'Informática ET Soi Imatge Segon Parcial, 18 de Juny de 2007 Temps máxim: 2 hores 30 minuts struct tTaulesElectorals | int n_taules; tTaula taules[MAX_TAULES _ELECTORALS]; y; struct tColegi ( string nom; tTaulesElectorals te; y struct tColegisElectorals ( int n colegis; tColegí colegis[MAX_COLEGIS_ELECTORALS]; d struct tMunicipi ( int n_habitants; tColegisElectorals ce; tLlistaCandidatures candidats; y; a) [1 punt] Dissenyeu una funció que, donada una taula electoral (un objecte de tipus tTaula) i una candidatura (un índex a la llista de candidatures), retorni els vots obtinguts per la candidatura en aquesta taula. b) [1.5 punts] Dissenyeu una funció que danat un col-legi electoral (un objecte de tipus tColegi) i una candidatura (un índex a la llista de candidatures), retoni el número de vots que ha rebut la candidatura en aquest coblegi. €) [1.5 punis] Dissenyeu una acció que, donat el municipi i una candidatura, retorni la llista de noms dels col-legis amb al máxim nombre de vots (n'hi pot haver més d'un) per a aquesta candidatura. Declareu les estructures necessáries i determincu els parámetres adients. Per implementar el que es demana podeu fer servir les funcions/accions d'apartats anteriors encara que no les hagueu implementat, Problema 2 [2 punts] En estadística, un histograma és una taula a on cada casella és un comptador, és a dir un nombre enter. Els histogrames, en general, permeten visualitzar la distribució de freqúéncia d'un conjunt d'events. Una emissora de rádio vol fer un histograma del nombre de vegades que ha sonat en antena un cert grup de música, ja que es pretén que es reparteixi el temps en antena de tots els grups equitativament. Es parteix d'una matriu R del repertori setmanal, que té 5 files (un per cada dia de programa) i 60 columnes (una per a cada cancó que ha sonat durant el programa). Cada casella d'aquesta matriv conté el codi d'un dels grups possibles (n'hi ha 100, amb codi de O fins a 99) i el títol de la cangó. Dissenyeu tols els tipus de dades necessaris per emmagatzemar la informació i una acció que calculi V'histograma partint de la matriu R. Fonaments d'Informática ET Soi Imatge Segon Parcial, 18 de funy de 2007 Temps máxim: 2 hores 30 minuts kt; ) void empr( const tPr£ P, tCmprá C ) 1 ánt k= 0, i=0; tl A; C.nc = 0; while ( k < MAX ) empr_u( P, k, A); C.11a[C.nel.1 = C.11s[C.nc].n = A.n; C.nc++; k=k3+An; ) void es[ const tCmprás €) t int k; for (k = 0; k < C.nc; k++ ) cout << C.lls[k].n << * * << C.11s[k].1 << endl; J int main() 1 tPr p; tCmpr c; le (p); ecmpr (p, e); es (a); , Responeu, doncs, a les segúents preguntes: a) Dibuixeu el disseny descendent de processos d'aquest programa. b) Digueu, amb la major precisió possible, quina será la sortida del programa (exactament qué es veurá a la pantalla) per als segúents cassos: e Entrada 1: anaabcecádefffg «* Entrada 2: xxyzzzz2llopgrst €) Descriviu, resumit en una frase, que fan les funcions/accions le, cmpr_u, empr jes. Digueu també si són una acció o una funció. d) Descriviu, resumit en una frase, qué fa aquesl programa.