Download sujet2_ex3.adb


-- Correction proposée par Pierre-François Léon
-- pierrefrancois.leon@laposte.net - http://www.chezpifou.com/
-- relue et modifiée par Alexandre Dupas
-- dupas@sic.univ-poitiers.fr - http://www.adupas.org/

with Ada.Text_Io, Ada.Integer_Text_Io, Ada.Float_Text_Io;
use Ada.Text_Io, Ada.Integer_Text_Io, Ada.Float_Text_Io;

procedure Sujet2_Ex3 is

   -- Déclaration des contantes et types de données

   N : constant Integer := 6;
   type Tabt is array (1..N) of Integer;

   -- Déclaration de procédures et fonctions

   -- Procédure d'affichage pour vérifier l'algorithme (on est en TP,
   -- on en profite... C'est plus dur de faire ça sur une feuille de
   -- papier.
   procedure Put( T : in Tabt ) is
   begin
      for I in T'range loop
         
Put(T(I));
      end loop;
      New_Line;
   end Put;

   -- Déclaration des variables nécessaires à la boucle principale.

   T, Tab_Res : Tabt;
begin

   -- Initialisation de T avec des valeurs de test.
   T := (3,4,2,5,6,1);
   -- Affichage de T pour avoir une référence
   Put(T);
   -- Boucle répondant à la question posée
   -- On stocke dans la case N-I+1 du tableau  Tab_Res la valeur de
   -- la case I multipliée par l'indice I.
   for I in T'range loop
      
Tab_Res(t'last - i + 1) := t(i) * i;
   end loop;
   -- Affichage de T pour vérifier le résultat.
   Put(Tab_Res);

end Sujet2_Ex3;