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;