Précédent   Forum des professionnels en informatique > Autres langages > Autres langages > Ada
Ada Forum d'entraide sur la programmation en langage Ada
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2011, 19h07   #1
Invité régulier
 
Bérénice Fiant
Inscription : avril 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Bérénice Fiant

Informations forums :
Inscription : avril 2010
Messages : 43
Points : 5
Points : 5
Par défaut comparaison & affichage de generique

Bonjour,

Je cherche à retourner le minimum d'une simple liste chaînée avec des éléments génériques (int ou string).

Les fichiers sont définis comme ceci :
ensemble.ads
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
generic
	type element is private;

package ensemble is 

	type Liste is private;
	[…]

	private
	type Cellule;
	type Liste is access Cellule;
	type Cellule is record 
		I:element;
		next:Liste;
	end record;
	
end ensemble;
le fichier ensemble.adb correspondant

main.adb
Code :
1
2
3
4
5
6
7
8
9
10
11
procedure main is 
	type mot is new String(1..4);
	package ensemble_string is new ensemble(mot);
	use ensemble_string;
	recup1:mot := "toto";
	recup2:mot := "tata";
begin 
	if recup1>recup2 then put (recup1);
	else put (recup2);
	end if;
end main;
En gros, le compilateur me renvoie 2 erreurs : il ne peut pas afficher les éléments et il ne peut pas les comparer non plus.
Et impossible de trouver comment faire… HELP ! >_<
Merci pour votre aide !

PS : si quelqu'un savait aussi comment définir un string de longueur variable, ce serait génial !
bebediddl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 09h43   #2
Futur Membre du Club
 
Homme
Inscription : avril 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 9
Points : 15
Points : 15
Par défaut Importer les bons packages

En Ada il est bon de connaître les packages de base du système et importer ceux dont on a besoin. Les chaines de caractères de longueurs variables quelconques sont les unbounded_string en Ada (attention il faut là aussi importer les bon packages).
Le code suivant compile et s'exécute bien.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
With Ada.Text_Io;
Use Ada.Text_Io;

Procedure Main Is
  Generic
    Type Element Is Private;

  Package Ensemble Is
    Type Liste Is Private;
  Private
    Type Cellule;
    Type Liste Is Access Cellule;
    Type Cellule Is
    Record
      I:Element;
      Next:Liste;
    End Record;
  End Ensemble;
  
  Type Mot Is New String(1..4);
  Package Ensemble_String Is New Ensemble(Mot);
  Use Ensemble_String;
  Recup1 : Mot := "toto";
  Recup2 : Mot := "tata";
Begin
  If Recup1>Recup2 Then
    Put (string(Recup1));
  Else
    Put (string(Recup2));
  End If;
End Main;
RedBlackTree est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h44.


 
 
 
 
Partenaires

Hébergement Web