[ada95] comment afficher une matrice?

comment afficher une matrice? [ada95] - Programmation

Marsh Posté le 11-05-2001 à 16:19:08    

voilà je n'arrive pas à ecrire une fonction.
l'énoncé est le suivant :
 
type matrice is array(natural range <>, natural range <> ) of COEFFICIENT ;
 
function image(m : matrice) return string ;
 
si vous savez ecrire cette fonction...
merci :)

Reply

Marsh Posté le 11-05-2001 à 16:19:08   

Reply

Marsh Posté le 11-05-2001 à 16:40:45    

il a quelle gueule ton type COEFFICIENT ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 11-05-2001 à 17:00:50    

les coeffs sont des rationnels
type rationnel is record
num,den : natural;
signe : boolean;
e

Reply

Marsh Posté le 11-05-2001 à 17:09:27    

et ... tu passes une matrice en parametre et ca te renvoit une string ... tu debuttes en prog ou pas ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 11-05-2001 à 17:10:23    

sous entendu il faut une solution élaborée ou qui marche juste ;)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 11-05-2001 à 17:37:32    

bon je dois y aller, alors je te dis ce que je sens ;)
tu fais une variable string temporaire
une string qui sera le resultat renvoyé
 
tu parcours chaque element de la matrice, ligne par ligne
pour chaque COEFFICIENT,
tu cree le nombre auquel il correspond via ta chaine temporaire
 
utilise 'image pour convertir un natural (ou integer ...) en string
 
buffer : string(1..100); -- c'est bien ca la syntaxe ? :D
 
parcours la matrice et à chaque fois recupere le coef
if coef.signe = true then
    buffer(1) := '+';
else
    buffer(1) := '-';
end if;
 
puis
 
buffer := buffer & coef.num'image ;
buffer := buffer & "/"
buffer := buffer & coef.den'image;
 
et tu concatene ca avec ta string que tu renverras a la fin
tu concatene avec un espace aussi pour que ce soit lisible
tu fais ca pour chaque element de la matrice
quand tu vas à une ligne suivante, tu peux aussi concanténer avec les carateres 13 et 10 (ASCII) afin que quand t'affiche ta chaine (mode console ou pas) ca aille aussi à la ligne.
je me souviens plus comment on fait ca ... il doit y avoir une fonction pour renvoyer le caractere correspondant à ces nombres.
 
y'a surement des erreurs dans ce que j'ai ecrit mais moi l'ADA c loin et c'est juste pour essayé de te guider vu que apparement personne n'est cho pour te répondre ;)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 11-05-2001 à 20:39:50    

merci bien
je devrais réussir à me débrouiller avec tes explications.

Reply

Marsh Posté le 12-05-2001 à 04:18:14    

Et puis un petit :

Code :
  1. for i in m'Range(0) loop
  2.     for f in m'Range(1) loop
  3.         ....
  4.     end loop;
  5. end loop;


pour parcourir la matrice ! :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed