triangle de pascal

triangle de pascal - Ada - Programmation

Marsh Posté le 07-11-2005 à 14:49:47    

Il me faut écrire une procédure triangle_de_pascal1 qui calcule et affiche le triangle de pascal sachant sachant que tout nombre est la somme des deux du dessus :
ci,j = ci−1,j−1 + ci−1,j . Le premier élément est égal à 1. Il sera simplement affiché en première colonne (pas au centre de la ligne).
Pour cela, calculer une ligne (procédure calculer_ligne) puis l’afficher (procédure imprimer_ligne).
Imprimer la ligne élément par élément (procédure imprimer_element).
Fixer le nombre des lignes à 15 et le format des nombres à 5. Lors de l’appel, utiliser la
notation par position.
Le nom du fichier est dev2_1.adb.
 
Voici ce que j'ai fait, ça fonctionne mais j'ai utilisé une seule procédure :
 

with Ada.Integer_Text_Io, Ada.Text_Io;
-- Programme qui affiche le triangle de Pascal
procedure triangle_de_pascal is
   X:integer; -- Entier se situant au dessus à gauche
   Y:integer; -- Entier se situant au dessus
-- Tableau contenant une ligne du triangle de Pascal
   T : array (0 .. 14) of integer := (0 => 1, others => 0);
begin
-- Saisie de la puissance du triangle de Pascal
   ada.text_io.Put("Triangle de Pascal" );
   ada.text_io.new_line(2);
-- Calcul et affichage du triangle de Pascal
   for I in T'First .. 14 loop
   X :=0;
   for J in T'First .. I loop
      Y := T(J);
      T(J) := X + Y;
      ada.integer_text_io.Put(T(J), 5);
      X := Y;
   end loop;
   ada.text_io.New_Line;
   end loop;
end triangle_de_pascal;


 
Comment faire pour utiliser les 4 procédures?

Reply

Marsh Posté le 07-11-2005 à 14:49:47   

Reply

Marsh Posté le 09-11-2005 à 10:00:17    

J'ai essayer autre chose :
 

procedure Calculer_Ligne is
      i:integer;
   begin
      I:=T'First;
      for J in T'First..I loop
         Y := T(J);
         T(J) := X + Y;
         X := Y;
      end loop;
   end Calculer_Ligne;
   procedure Imprimer_Ligne is
   begin
      ada.integer_text_io.Put(T(J), 5);
   end Imprimer_Ligne;


 
Mon provblème ici c'est que dans ma deuxième procédure t(j) n'est pas connu.
Comment faire ?
 
Est il possible de faire ce programme sans utiliser de tableau?


Message édité par Profil supprimé le 09-11-2005 à 12:37:46
Reply

Marsh Posté le 06-12-2005 à 02:27:32    

Tableau multi dimentionnel et autant de boucles qu'il faut :)
Le tout dans une procédure sauf si exercice en demande plus :)
 
Suffit de faire le triangle dans le tableau, zut, faut réfléchir :P

Reply

Sujets relatifs:

Leave a Replay

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