Curset de C avancat: Enunciat de la pràctica

Pel que he vist hi ha molta gent perduda que va fent la practica amb filosofies molt poc ortodoxes. La culpa en part va ser nostra per explicar tant per damunt la practica pero en gran part vostra per no anar a l'explicacio de la practica que va fer l'Ester.

Sigui com sigui, mes val avisar-vos amb temps. Aqui teniu un petit enunciat de la practica amb uns quants requisits que molta gent ignora. Si us plau... Aviseu a la gent, per la vostra mare.


Heu de fer un modul (TAD) en C que implementi una llista generica. Tambe haureu d'implementar un modul (TAD) que implementi el tipus complexe i algunes operacions basiques amb ells. Aquest modul sera el que es fara servir al modul Main per provar la llista generica.

RECORDEU La finalitat no es implementar una llista de complexes si no de fer-ho de una forma determinada.

La vostra llista GENERICA haura de tenir els seguents REQUISITS:

  • Ha de ser posible generar varies llistes a l'hora i amb diferent tipus de dada. Aixo implica dues coses:

    • Res de variables globals per definir la llista.
    • El tipus de la llista ha de ser indeterminat en el moment de compilacio. Es defineix en el moment de execucio quan creem cada llista.
  • Ha de poder contenir qualsevol tipus de dada, no nomes complexos.

  • Fins i tot hauria de poder contenir UNA ALTRA LLISTA!!! o qualsevol tipus de dada estructural que no es crei amb un simple malloc.

  • Tot el codi que hi hagi dins del modul Llista ha de ser totalment transparent al tipus de dada.

  • El TAD llista i el TAD complexes han de ser completament independents, de forma que la unica conexio que hi hagi la pugui controlar el Main.

  • Totes les declaracions que necesiti la llista per ser compilada en un altre hipotetic programa han de estar incloses en el llista.h. Igualment ha de haver-hi un complexes.h amb totes les declaracions que necesites un hipotetic programa que el fes servir.

  • Com que el main es l'unic modul que fa servir directament les funcions dels altres dos moduls. QUEDA TERMINANTMENT PROHIBIT INCLOURE EL ARXIU LLISTA.H EN COMPLEXES.C O COMPLEXES.H EN EL LLISTA.C. Son independents l'un de l'altre, collons!

  • En el moment de l'entrega es demanara que es compili el programa amb un makefile i, de banda del fet que txuti, es tindra molt mes en compte quin mecanisme heu seguit per fer el programa.

Ja sabeu QUE heu de fer. En el fitxer 'practica' hi trobareu orientacions molt 'a sac' de COM fer-ho. Compte que si la vostra practica difereix molt del que es diu a 'practica' segurament l'esteu cagant. En algun dels punts que hi ha a dalt. Si es aixi no dubteu en dir-me alguna cosa.