with Ada.Text_Io, Ada.Integer_Text_Io;
use Ada.Text_Io, Ada.Integer_Text_Io;
-- Addition d'heures
procedure Ex01b is
H1, M1, S1 : Natural;
H2, M2, S2 : Natural;
H, M, S : Natural;
Total_S : Natural;
begin
-- saisies
Put("Veuillez rentrer une heure avec le format h m s : ");
Get(H1); Get(M1); Get(S1);
Put("Veuillez rentrer une seconde heure avec le format h m s : ");
Get(H2); Get(M2); Get(S2);
-- Algo
-- conversion des deux temps en s et addition des deux résultats
Total_S := H1 * (60 ** 2) + M1 * 60 + S1 + H2 * (60 ** 2) + M2 * 60 + S2;
-- conversion du résultat en H : M : S
--- H
H := Total_S / (60 ** 2);
Total_S := Total_S - (H * (60 ** 2));
--- M
M := Total_S / 60;
--- S
S := Total_S mod 60;
-- Affichage
Put(H1, 0); Put('h'); Put(M1, 0); Put('m'); Put(S1, 0); Put("s + ");
Put(H2, 0); Put('h'); Put(M2, 0); Put('m'); Put(S2, 0); Put("s = ");
Put(H, 0); Put('h'); Put(M, 0); Put('m'); Put(S, 0); Put('s');
end;