Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1312 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  Affichage sans "put"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Affichage sans "put"

n°1951914
ghuighui
Posté le 20-12-2009 à 22:22:44  profilanswer
 

Bonjour,
 
J'ai un tableau d'entiers en variable. Je dois afficher ce tableau à l'aide d'une procédure que je dois écrire dans un package, sans utiliser de put ni de put_line. Je sais que c'est possible car j'ai déjà vu un exemple.
Le problème c'est que je ne sais plus trop à quoi ça ressemble. Je me rappelle juste avoir vu un "Unbounded string" dans le code, qui ne faisait que quelques lignes pour afficher quelques caractères.
 
C'était une fonction qui retournait "je sais pas quoi" convertit en string. return(to_string(truc)) je crois.
 
Merci

mood
Publicité
Posté le 20-12-2009 à 22:22:44  profilanswer
 

n°1951917
Profil sup​primé
Posté le 20-12-2009 à 22:46:33  answer
 

Interfaces.C.Streams peut être ?

n°1951919
ghuighui
Posté le 20-12-2009 à 22:54:32  profilanswer
 

peut-être ^^
 
Mais je débute, j'aurai besoin d'un exemple pour savoir si c'est ça. Et puis au pire, si c'est pas ça et que ça marche, tant mieux. L'idée c'est de faire un Put(Fonction(truc)) dans la procédure principale, sans faire d'entrée/sortie dans "Fonction".

n°1951922
Profil sup​primé
Posté le 20-12-2009 à 23:10:15  answer
 

Ahlala, c'est pas du tout ce que tu veux dans le premier message.
 
Parce que là, tu fais bien "put", alors, une fonction qui fait Put(fonction(Truc_a_afficher));
C'est simplement une fonction :

Code :
  1. function (Truc : in T_Truc) return T_Truc_Qui_S_Affiche;


T_Truc, c'est n'importe quoi et T_Truc_Qui_S_Affiche c'est tout ce qui est affichable.
 

n°1951924
ghuighui
Posté le 20-12-2009 à 23:16:04  profilanswer
 

Oui, j'ai eu l'impression d'(être plus clair dans mon second post :)  
 
Dans ce cas, comment faire pour enregistrer plusieurs variables dans T_Truc ? exemple :
"Tableau : 1,5,4,8,9,10
Nombre d'elements : 6"

n°1951928
Profil sup​primé
Posté le 20-12-2009 à 23:23:03  answer
 

ghuighui a écrit :

Oui, j'ai eu l'impression d'(être plus clair dans mon second post :)  
 
Dans ce cas, comment faire pour enregistrer plusieurs variables dans T_Truc ? exemple :
"Tableau : 1,5,4,8,9,10
Nombre d'elements : 6"


 
Tu veux l'afficher ou l'enregistrer ?
 
 
Je pense que tu dois réécrire "put" pour afficher ou utiliser Ada.Stream.Stream_Io pour enregistrer.


Message édité par Profil supprimé le 20-12-2009 à 23:23:44
n°1951930
ghuighui
Posté le 20-12-2009 à 23:28:50  profilanswer
 

Je veux l'enregistrer dans le "return" de la fonction, pour l'afficher ensuite dans la procédure principale grâce à put.

n°1951932
Profil sup​primé
Posté le 20-12-2009 à 23:31:26  answer
 

ghuighui a écrit :

Je veux l'enregistrer dans le "return" de la fonction, pour l'afficher ensuite dans la procédure principale grâce à put.


 
tu peux pas !

n°1951936
ghuighui
Posté le 20-12-2009 à 23:36:26  profilanswer
 

Je l'ai pourtant vu :p
Mais le code était spécial, c'était pas des affectations.
 

Citation :

L'idée c'est de faire un Put(Fonction(truc)) dans la procédure principale, sans faire d'entrée/sortie dans "Fonction".


Donc y'a pas moyen d'afficher le texte que je viens de montrer en procédant comme ça ? C'est le retour à la ligne qui dérange ?

n°1951937
Profil sup​primé
Posté le 20-12-2009 à 23:37:40  answer
 

ghuighui a écrit :

Je l'ai pourtant vu :p
Mais le code était spécial, c'était pas des affectations.
 

Citation :

L'idée c'est de faire un Put(Fonction(truc)) dans la procédure principale, sans faire d'entrée/sortie dans "Fonction".


Donc y'a pas moyen d'afficher le texte que je viens de montrer en procédant comme ça ? C'est le retour à la ligne qui dérange ?


 
Woai ! C'est un type composé, et faut composer la procédure put qui va avec !

Message cité 1 fois
Message édité par Profil supprimé le 20-12-2009 à 23:37:51
mood
Publicité
Posté le 20-12-2009 à 23:37:40  profilanswer
 

n°1951938
Profil sup​primé
Posté le 20-12-2009 à 23:39:36  answer
 


 
D'ailleurs même pour le tableau, faut écrire une procédure ad'oc.


Message édité par Profil supprimé le 20-12-2009 à 23:39:50
n°1951939
ghuighui
Posté le 20-12-2009 à 23:44:45  profilanswer
 

Bizarre. Je me rappelle du code, ça tenait sur 10 lignes, il n'y avait qu'une seule fonction. On retournait la variable après l'avoir convertit en string (fonction to_string je crois)

n°1951941
Profil sup​primé
Posté le 20-12-2009 à 23:47:54  answer
 

ghuighui a écrit :

Bizarre. Je me rappelle du code, ça tenait sur 10 lignes, il n'y avait qu'une seule fonction. On retournait la variable après l'avoir convertit en string (fonction to_string je crois)


 
Ce que tu peux faire là, c'est :
 

Code :
  1. function Table_To_String(Table : in T_Table) return string is
  2.  Table_String : unbounded_String :=  To_Unbounded_String("Elements de la table ::= " );
  3. begin
  4.  if Table.Nb_Element < Table.Elements'first or
  5.     Table.Nb_Element > Table.Elements'length then
  6.       return "Nombre d'élément invalide";
  7.  end if;
  8.  for in in 1..Table.Nb_Element loop
  9.      Table_String := Table_String & To_Unbounded_String(integer'image(Table.Elements(I) & ", " ));
  10.  end loop;
  11.   return To_String(Table_String);
  12. end To_String;


Message édité par Profil supprimé le 20-12-2009 à 23:57:49
n°1951942
ghuighui
Posté le 20-12-2009 à 23:48:58  profilanswer
 

Merci
 

Citation :

Table_String := Table_String & To_Unbounded_String(integer'image(Table.Elements(I) & ", " ));


Ca ressemblait à ça !
 
edit :
Je pourrais simplement savoir comment ajouter un New_line si c'est possible ? merci


Message édité par ghuighui le 21-12-2009 à 00:06:10
n°1951946
Profil sup​primé
Posté le 21-12-2009 à 00:09:55  answer
 

Code :
  1. with Ada.Strings.Unbounded;
  2. use Ada.Strings.Unbounded;
  3. with Ada.Text_Io;
  4. use Ada.Text_Io;
  5. procedure Main is
  6.  
  7.   type T_Elements is array (Integer range <> ) of integer;
  8.  
  9.      type T_Table is
  10.         record
  11.            Nb_Element : Natural;
  12.            Elements : T_Elements(-1..3);
  13.         end record;
  14.  
  15.  
  16.      function Table_To_String(Table : in T_Table) return string is
  17.         Table_String : unbounded_String :=  To_Unbounded_String("Elements de la table ::= " );
  18.      begin
  19.         if Table.Nb_Element = 0 or
  20.           Table.Nb_Element > Table.Elements'length then
  21.            return "Nombre d'élément invalide";
  22.         end if;
  23.         for I in 1..Table.Nb_Element loop
  24.            Table_String := To_Unbounded_String(To_String(Table_String) & integer'image(Table.Elements(Table.Elements'first+I)) & ", " );
  25.         end loop;
  26.         return To_String(Table_String) & character'val(13);
  27.      end Table_To_String;
  28.  
  29.  
  30.      Table : T_Table := (2, (-1, 0, 1, 2, 3));
  31.  
  32.    begin
  33.       Put(Table_To_String(Table));
  34.    end Main;


Message édité par Profil supprimé le 21-12-2009 à 00:21:50
n°1951947
ghuighui
Posté le 21-12-2009 à 00:18:09  profilanswer
 

Citation :

invalid operand types for operator "&"


Ca me met ça pour le "&" qui se trouve juste avant la virgule : ", "

n°1951948
Profil sup​primé
Posté le 21-12-2009 à 00:19:43  answer
 

ghuighui a écrit :

Citation :

invalid operand types for operator "&"


Ca me met ça pour le "&" qui se trouve juste avant la virgule : ", "


 
J'ai fini de corriger.

n°1951949
ghuighui
Posté le 21-12-2009 à 00:21:32  profilanswer
 

D'accord.
 
Sinon dernière question, à quoi sert ceci :
 & character'val(13);

n°1951950
Profil sup​primé
Posté le 21-12-2009 à 00:23:21  answer
 

ghuighui a écrit :

D'accord.
 
Sinon dernière question, à quoi sert ceci :
 & character'val(13);


 
Pardon, j'avais oublié un truc, maintenant, c'est correct. A peu près.
 
Le charcater val 13 est le retour à la ligne, 10 ou 13, ça dépend des système d'exploitation.
 
Tu peus mettre Latin_1.asci.cr peut-être à la place.


Message édité par Profil supprimé le 21-12-2009 à 00:24:18
n°1951951
ghuighui
Posté le 21-12-2009 à 00:26:06  profilanswer
 

D'accord merci :)

n°1951952
Profil sup​primé
Posté le 21-12-2009 à 00:26:46  answer
 

ghuighui a écrit :

D'accord merci :)


De rien !  :hello:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  Affichage sans "put"

 

Sujets relatifs
changer un ordre d'affichageProgramme d'affichage dynamique
probleme avec dreamweaver en mode affichage creéationprobleme affichage suite a une requete
Affichage Loader et bouclage d'animationstockage et affichage d'une image dans une variable php
affichage de texte en javascriptaffichage débile en fonction des navigateurs...mais indescriptible qua
pb affichage avec safaripb affichage ie7
Plus de sujets relatifs à : Affichage sans "put"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR