comp.lang.ada
 help / color / mirror / Atom feed
* J'ai besoin d'aide avec un package generique
@ 1997-06-05  0:00 bert
  1997-06-05  0:00 ` John M. Mills
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: bert @ 1997-06-05  0:00 UTC (permalink / raw)



Vous devez ecrire un package generique ADA qui permet de faire la
gestion de listes chainees.  Chaque liste devra etre ordonnee de facon
ascendante selon une fonction fournie par l'utilisateur du package.

Votre package devra permettre a un programmeur de:

	- creer une liste a l'aide d'une fonction,
	- une fonction qui nous permet de verifier si la liste est
vide,
	- demander la valeur de l'element "courrant" de la liste,
	- fixer le pointeur courrant a l'element precedant de la
liste,
	- fixer le pointeur courrant a l'element suivant de la liste,
	- detruire l'element courrant de la liste,
	- ajouter un element a la liste,
	- detruire la liste,

Pour accomplir la tache, je vous suggere de creer une structure liste
qui aura comme champ une liste doublement chainee contenant un element
generique, un pointeur au debut de la liste et un pointeur a l'element
courrant de la liste.

	- pour creer une liste utiliser une fonction nommee
creer_liste
	  qui retourne une structure de liste.  La creation d'une
liste
	  doit se faire de la facon suivante:

		L: LISTE := CREER_LISTE;

		profil: function CREER_LISTE return LISTE;

	  Lorsque la liste est vide, le pointeur a l'element courrant
doit
	  etre nulle.

	- on demande la valeur de l'element courrant de la facon
suivante:

		ITEM := LISTE_COURRANT( L );

		profil: function LISTE_COURRANT( L : LISTE ) return
ELEMENT;

	- pour fixer le pointeur courrant a l'element suivant:

		LISTE_SUIVANT( L );

		profil: procedure LISTE_SUIVANT( L: in out LISTE );

	- pour fixer le pointeur courrant a l'element precedant:

		LISTE_PRECEDANT( L );

		profil: procedure LISTE_PRECEDANT( L: in out LISTE );

	- destruction de l'element courrant:

		LISTE_DETRUIT_ELEMENT( L );

		profil: procedure LISTE_DETRUIT_ELEMENT( L: in out
LISTE );

	  Apres la destruction de l'element courrant, le nouvel
element
	  courrant sera l'element qui suivait l'element detruit.  Si
on
	  detruit le dernier element de la liste, le nouvel element
courrant
	  est le dernier element de la liste.

	- ajout d'une element:

		LISTE_AJOUTER( L, I );

		profil: procedure LISTE_AJOUTER( L: in out LISTE; I:
ELEMENT );

	  apres un ajout dans la liste, l'element courrant est
l'element
	  ajoute.  N'oubliez pas que la liste doit etre ordonnee!!!

	- destruction de la liste:

		LISTE_DETRUIRE( L );

		profil: procedure LISTE_DETRUIRE( L: in out LISTE );

	  detruit la liste et tous les elements qui s'y trouvent.


Pour utiliser ce package, un programmeur doit indiquer le type
d'element
qui sera place dans la liste.  Puisque la liste doit etre ordonnee, le
programmeur doit aussi fournir une fonction de comparaison qui 
surchargera l'operateur "<".



Merci. (coug01@uqah.uquebec.ca)




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1997-06-06  0:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-06-05  0:00 J'ai besoin d'aide avec un package generique bert
1997-06-05  0:00 ` John M. Mills
1997-06-05  0:00 ` Gautier
1997-06-06  0:00 ` Arthur Schwarz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox