1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| with Ada.Integer_Text_Io; use Ada.Integer_Text_Io;
with Ada.Text_IO; use Ada.Text_IO;
procedure Pyramide is
procedure Affiche_Espace(Nb:in integer) is
begin
for X in 1..Nb loop
Put(" ");
end loop;
end;
procedure Affiche_Nombres_Croissants(From,To:in integer) is
Nb:integer:=0;
begin
for X in From..To loop
Nb:=X mod 10;
Put(Nb,2);
end loop;
end;
procedure Affiche_Nombres_Decroissants(From,To:in Integer) is
Nb:integer:=0;
begin
for X in reverse To..From loop
Nb:=X mod 10;
Put(Nb,2);
end loop;
end;
begin
for Y in 1..10 loop
Affiche_Espace(20-2*Y);
Affiche_Nombres_Croissants(Y,1+2*(Y-1));
Affiche_Nombres_Decroissants(2*(Y-1),Y);
new_line;
end loop;
end; |