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

  FORUM HardWare.fr
  Programmation
  Ada

  chaînes et pointeurs en ada

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

chaînes et pointeurs en ada

n°911940
vinoromano
saoule
Posté le 01-12-2004 à 12:40:51  profilanswer
 

Bonjour,
j'ai un souci de prog; en effet je veux mettre cette chaîne :  
(2+3*(5+6)+2-(2*5)); dans deux tableaux operateur et operande avec pour operande les chiffres et operateur les parenthèses et signes d'opération arithmétique.
   Merci beaucoup car c'est pour un projet en ada que je dois rendre dans 3 jours.


---------------
Merci
mood
Publicité
Posté le 01-12-2004 à 12:40:51  profilanswer
 

n°912011
blacksad98​8
Posté le 01-12-2004 à 13:54:45  profilanswer
 

et...
soit un peu plus explicite, il n'y a même pas un point d'interrogation...
 
Si tu veux qu'on te fasse ton prog, relis la charte du forum!
Si tu veux des reponses à des questions précises, formules-les!


Message édité par blacksad988 le 01-12-2004 à 13:55:22
n°912014
blacksad98​8
Posté le 01-12-2004 à 13:58:05  profilanswer
 

qu'elle est le but de ton programme?
simplement classer les caracteres en fonction de leur rôle (operande/operateur) ou bien calculer la valeur de l'expression saisie par l'utilisateur?

n°912394
vinoromano
saoule
Posté le 01-12-2004 à 19:49:27  profilanswer
 

Bonsoir,  
excuse... je suis nouvelle et n'a pas eu le temps de lire la charte; pardon.
  En fait le programme prend en paramètre une chaîne de caractère comme  précedemment citée et ensuite mais dans deux piles, l'une opérateur, l'autre opérande, puis donne en fin de procedure le résultat de la valeur arithmétique entrée. j'èspère que je me suis un peu mieux exprimée.  
   Merci


---------------
Merci
n°912627
blacksad98​8
Posté le 02-12-2004 à 00:28:28  profilanswer
 

vraiment pas evident à premiere vue!
 
1)la partie repartition des elements semble assez basique,(mais c'est peut là qu'est le piege)
 
tu balayes ta chaine de caracteres avec un  
"for i in 1..chaine'lenght loop"
puis tu verifie l'appartenance:
 
if chaine(i)>='0' and chaine(i)<='9'
then
"Traitement des nombres"
else
"traitement des operateurs
end if;
end loop;
 
la partie traitement des operateurs consiste simplement à les "empiler" dans ton tableau operateur
 
la partie traitement des nombres est identique sauf dans le cas ou les nombres sont admis (ex:125). dans ce cas elle consiste à "reunir les chiffres qui se suivent pour reformer le nombre:
-----------
n:=0;
nb:=0;
while chaine(i)>='0' and chaine(i)<='9' loop
nb:=nb + "valeur de chaine(i)"*10^n;
n:=n+1;
end loop;
"empiler" (nb);
-------------
 
(je ne me souviens plus comment on fait pour recuperer la valeur entiere correspondant à un caractere) ca dois etre du style ada.integer'value(chaine(i));
pareil pour les puissances (là une petite procedure est assez simple à faire au cas où...)
 
 
2) la partie calcul du resultat est beaucoup plus complexe (à mon pauvre niveau)
 
si je reprend ton exemple (2+3*(5+6)+2-(2*5)) la repartition basique donnera:
 
tableau1: (+*(+)+-(*))
tableau2: 2 3 5 6 2 2 5
et là... ???
 
 
disons qu'une premiere piste serait peut-etre de stocker inteligement les nombres et operandes dans les tableaux: fais une recherche sur "systeme polonais inversé" ou notation postfixée
 
sinon peut etre deux tableaux dynamiques
tu traites (à la maniere du calcul post fixé) les calculs par ordre de priorité. le resultat serait un truc du style:
 
 
tableau1: (+*(+)+-(*))
tableau2: 2 3 5 6 2 2 5
 
puis
 
tableau1: (+*+-)
tableau2: 2 3 11 2 10
 
puis
 
tableau1: (++-)
tableau2: 2 33 2 10
 
.
.
.
 
puis finalement
 
tableau1: ()
tableau2: 27
 
 
 
 
 
j'espere que ca t'aideras un peu quand meme!


Message édité par blacksad988 le 02-12-2004 à 00:39:53
n°912795
vinoromano
saoule
Posté le 02-12-2004 à 12:02:23  profilanswer
 

  Cool, c'est vraiment sympa de ta part. je t'enverrai le code dès que ça marche.
   Merci beaucoup


---------------
Merci

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

  chaînes et pointeurs en ada

 

Sujets relatifs
utilisation des pointeurs pour des matrices 2*2[ksh] contaténation de chaines pour accéder à une variable
[batch DOS] Parcourir un fichier et chaines videsJ'ai du mal avec les struct et les pointeurs ensemble !
Petit probleme de pointeurs sur des tableaux d'une structure[C]Pointeurs
Templates et pointeurs de fonctions membres?Question pointeurs
debug : evolution des pointeursformattage de chaines de caractères
Plus de sujets relatifs à : chaînes et pointeurs en ada


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