with Ada.Text_Io, Ada.Integer_Text_Io;
use Ada.Text_Io, Ada.Integer_Text_Io;
-- Affichage matrice anti-diagonale
procedure Ex02b is
N : Natural;
D : Natural;
begin
-- saisie
Put("Veuillez rentrer un nombre > 0 : ");
Get(N);
-- Algo 1
for I in 1 .. N loop
for J in 1 .. N - I loop
Put(0, 2);
end loop;
Put(1, 2); -- colonne N - I + 1
for J in N - I + 2 .. N loop
Put(0, 2);
end loop;
New_Line; -- à la fin de chaque ligne, nous sautons à la ligne
end loop;
New_Line;
------------------------------------------------------------------
-- Algo 2
D := N;
for I in 1 .. N loop
for J in 1 .. D - 1 loop
Put(0, 2);
end loop;
Put(1, 2); -- colonne D
for J in D + 1 .. N loop
Put(0, 2);
end loop;
New_Line; -- à la fin de chaque ligne, nous sautons à la ligne
D := D - 1;
end loop;
New_Line;
------------------------------------------------------------------
-- Algo 3
-- Pour toutes les lignes
for I in 1 .. N loop
-- Pour toutes les colonnes
for J in 1 .. N loop
if I = (N - J + 1) then -- Si nous sommes sur l'anti-diagonale
Put(1, 2);
else
Put(0, 2);
end if;
end loop;
New_Line; -- à la fin de chaque ligne, nous sautons à la ligne
end loop;
end;