Generalitat de Catalunya Departament d’Educació Institut d’Educació Secundària Carles Vallbona C/ Camp de les moreres, 14 08401 Granollers Tel. 93 860 00 21 Fax 93 879 19 81
PRÀCTICA 1: Agents bacterians
Descripció del context de la pràctica Un equip de biòlegs ha descobert el funcionament d'un conjunt d'agents bacterians de diferents tipus que pertanyen a una família: els bactasi2. Aquesta família d'agents bacterians disposa de N subfamílies. Els experts han ordenat les subfamílies donantles un identificador de perillositat (0 el menys perillós, N-1 el més perillós). Els agents de la família bactasi2 s'organitzen en cadenes homogènies de M o menys agents d'una mateixa subfamília. Cada agent bactasi2 disposa d'un valor natural (estrictament més gran que 0, per tant) que determina la seva potència infecciosa. Les cadenes d'agents bactasi2 es mouen a través dels organismes de forma lineal. Quan dues cadenes es troben, els agents de la família bactasi2 reaccionen de la manera següent: ●
Si els agents de les dues cadenes són de la mateixa subfamília actua la llei de selecció natural: els agents de major potència eliminen aquells de menor potència fins que queden agrupats a una nova cadena de M agents (per tant, només sobreviuen els M de major potència).
●
Si són de diferent subfamília, es produeix una reacció. En aquesta reacció hi ha una lluita dels agents de les dues cadenes. Els experts han descobert que aquesta lluita es produeix segons les normes següents. ○
Si una de les cadenes té, en suma, més potència que l'altra, aquesta serà la vencedora. La cadena guanyadora perdrà potència com a resultat de la lluita. En concret cada agent perdrà un punt de potència.
○
Si les dues cadenes tenen la mateixa potència, guanyarà aquella que tingui l'identificador de perillositat més alt. Després d'aquesta lluita, cadascun dels agents de la cadena guanyadora perdrà un punt de potència.
Si algun dels agents, com a resultat d'una lluita perd tota la seva potència (és a dir, la seva potència passa a valer 0) la cadena continuarà el seu desplaçament.
EDD Versió 1.0
13 d'octubre de 2008
EDD
Pàgina 1 de 6 José Luis Antúnez
Generalitat de Catalunya Departament d’Educació Institut d’Educació Secundària Carles Vallbona C/ Camp de les moreres, 14 08401 Granollers Tel. 93 860 00 21 Fax 93 879 19 81
Enunciat de la pràctica L'equip d'experts està realitzant un experiment. Aquest experiment consisteix en situar una cadena d'agents bactasi2 a diverses parts d'un organisme determinat. Per a simplificar el cas d'estudi han acordat que el nombre de cadenes que intervindran serà potència de dos i la seva organització s'ha fet de tal manera que la lluita es faci dos a dos seguint l'esquema següent:
El que vol saber l'equip d'experts serà el contingut i l'identificador de perillositat de la cadena que surti guanyadora absoluta del conjunt de reaccions.
EDD Versió 1.0
13 d'octubre de 2008
EDD
Pàgina 2 de 6 José Luis Antúnez
Generalitat de Catalunya Departament d’Educació Institut d’Educació Secundària Carles Vallbona C/ Camp de les moreres, 14 08401 Granollers Tel. 93 860 00 21 Fax 93 879 19 81
Codi font ●
S'entregarà un únic arxiu .c de la pràctica i aquest haurà d'anomenar-se practica.c.
●
El fitxer de codi C haurà estar degudament comentat. En concret caldrà comentar la utilitat de cadascuna de les funcions que creeu i explicar aquells blocs de codi que cregueu convenient explicar. No cal que comenteu el codi línia a línia, per blocs és suficient. Els noms de variables i funcions que utilitzeu hauran de ser autoexplicatius.
●
La programació haurà de ser modular, fent ús del nombre de funcions que estimeu convenients.
●
En aquesta pràctica s'haurà de fer ús de vectors, matrius i/o registres. Consulteu al professor si necessiteu utilitzar altre tipus d'estructures.
Documentació de la pràctica Juntament amb l'arxiu C caldrà que entregueu un petit document on hi apareguin els punts següents: ●
Portada amb el nom i cognoms de l'alumne.
●
Un petit índex de continguts
●
Una explicació general de la vostra pràctica i la solució per la qual heu optat.
●
Una selecció de les operacions més importants de la vostra pràctica (expliqueu el main). En aquesta explicació podeu utilitzar tant el codi C com el pseudocodi. Es valorarà la utilització de gràfics per a justificar l'algorisme dissenyat.
Condicions d'entrada i sortida ●
●
El programa principal esperarà tres arguments: ➔
N: que indicarà el nombre de subfamílies diferents que podran introduir-se al sistema.
➔
M: que indicarà la longitud de les cadenes d'agents.
➔
X: el nombre de cadenes que s'introduiran al sistema.
Després d'executar la comanda, caldrà introduir cadascuna de les X cadenes d'agents de longitud M. Les cadenes s'introduiran seguint el mecanisme següent: ➔
S'introduirà l'identificador de perillositat (de 0 a N-1) de la subfamília seguit de cadascun dels valors de potència dels M agents infecciosos d'aquella cadena. Si aquella cadena té menys d'M agents infecciosos, s'entrarà un 0 per cadascun dels llocs buits fins a completar les M posicions. Després de EDD Versió 1.0
13 d'octubre de 2008
EDD
Pàgina 3 de 6 José Luis Antúnez
Generalitat de Catalunya Departament d’Educació Institut d’Educació Secundària Carles Vallbona C/ Camp de les moreres, 14 08401 Granollers Tel. 93 860 00 21 Fax 93 879 19 81
cada cadena s'introduirà un salt de línia per a indicar que s'introduirà la següent cadena d'agents. ●
Un cop introduïdes totes les cadenes el programa haurà de realitzar les operacions necessàries per tal d'acabar mostrant en una única línia el resultat de la cadena guanyadora de la lluita: el seu identificador de perillositat i el conjunt de potències resultants.
●
NO S'HAURÀ DE MOSTRAR CAP MISSATGE PER PANTALLA, TOT I QUE PODEU ACTIVAR-LOS MENTRE DESENVOLUPEU EL PROGRAMA I DEIXAR-LOS COMENTATS (la correcció es farà de forma automàtica comparant el resultat obtingut i l'esperat).
Precondicions ●
X serà potència de 2.
●
L'entrada de paràmetres POT NO SER CORRECTA!
●
L'entrada de cadenes serà SEMPRE correcta.
Jocs de proves ●
Se us proporcionarà un joc de proves públic: un fitxer d'entrada i un de sortida. Amb la introducció exacta del fitxer d'entrada amb els paràmetres indicats la sortida haurà de ser exactament la indicada.
●
Us poden ser útils els caràcters < i > de Unix per a l'entrada i sortida de consola a fitxer.
●
Per a comprovar que la sortida del programa és idèntica a la del joc de proves proporcionat utilitzeu la comanda diff -b arxiu1.c arxiu2.c.
●
Pot ser molt interessant quan tingueu la pràctica acabada que compareu les vostres sortides amb les d'altres companys (mitjançant la creació de jocs de proves) ja que, si dos programes són correctes, ambdues sortides hauran de ser idèntiques. No compareu el codi font, compareu les sortides.
Qualificació de la pràctica La qualificació de la pràctica tindrà en compte dos aspectes molt importants: ●
Documentació: haurà d'entregar-se en paper i no podrà excedir l'extensió de 6 fulls sense comptar la portada i l'índex. Dins aquest apartat és tindrà en compte la idoneïtat de la solució escollida així com la seva eficiència (espai addicional emprat i temps). Tindrà un pes del 40%.
EDD Versió 1.0
13 d'octubre de 2008
EDD
Pàgina 4 de 6 José Luis Antúnez
Generalitat de Catalunya Departament d’Educació Institut d’Educació Secundària Carles Vallbona C/ Camp de les moreres, 14 08401 Granollers Tel. 93 860 00 21 Fax 93 879 19 81
●
Programa: el programa es corregirà mitjançant l'aplicació de dos jocs de proves privats i el públic indicat al punt anterior. Aquests jocs de proves hauran de passar-se de forma exhaustiva i tindran un pes del 20% cadascun. La correcció es farà de forma automatitzada (comparant entrades i sortides).
●
Si dos o més programes presenten massa similituds es consideraran com a copiats, la qual cosa implicarà un 0 en la qualificació de la pràctica. És obligatori fer la pràctica de forma individual.
●
Aquesta pràctica tindrà un pes important (encara no determinat) de la nota final.
Calendari ●
14 d'octubre: presentació de la pràctica.
●
Setmana del 20 al 26 d'octubre: entrega del joc de proves públic.
●
3 de novembre (abans de les 12 de la nit): entrega de l'arxiu .c corresponents a la pràctica.
●
4 de novembre: entrega de la documentació (en paper) de la pràctica
●
Durant les sessions de classe no es dedicarà temps a aquesta pràctica i la realització d'aquesta serà treball personal. En cas de dubte caldrà adreçar-se per correu electrònic, missatges moodle o cita durant les hores de consulta establertes. El desenvolupament de les classes durant el període de realització de la pràctica seguirà el curs normal.
Enunciat obert Aquest enunciat pot ser que deixi algun dubte generalitzat. Per aquest motiu aquest document queda obert als aclariments que s'estimin necessaris.
EDD Versió 1.0
13 d'octubre de 2008
EDD
Pàgina 5 de 6 José Luis Antúnez
Generalitat de Catalunya Departament d’Educació Institut d’Educació Secundària Carles Vallbona C/ Camp de les moreres, 14 08401 Granollers Tel. 93 860 00 21 Fax 93 879 19 81
Exemple d'entrada i sortida
./practica 5 3 4 //esperarà 4 cadenes de longitud 3 (o menys) de, com a màxim, 5 tipus de subfamílies diferents.
1 1 2 3 //cadena a: subfamília 1, elements 1, 2, 3 2 2 0 4 //cadena b: subfamília 2, elements 2, 0, 4 2 0 3 6 //cadena c: subfamília 2, elements 0, 3, 6 3 1 1 1 //cadena d: subfamília 3, elements 1, 1, 1 /* Ara dins el codi es produeix la lluita: 1a lluita: Cadena a VS Cadena b Tenen la mateixa suma de valors així que guanya la que té l'identificador de perillositat de subfamília més alt: la b. Com a resultat de la lluita b veu reduïda la potència dels seus agents en un punt, per tant: 1 0 3 (subfamília 2)
2a lluita: Cadena c VS Cadena d Per suma de valors guanya la cadena c. Com a resultat de la lluita, c veu reduïda la potència dels seus agents en un punt, per tant: 0 2 5 (subfamília 2)
3a lluita: guanyadores del primer nivell Les dues cadenes són de la mateixa subfamília, sobreviuen els més forts: 2 3 5 (subfamília 2).
Per tant la sortida del programa serà: */
2235
EDD Versió 1.0
13 d'octubre de 2008
EDD
Pàgina 6 de 6 José Luis Antúnez