Kod: Zaznacz cały
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 Rok_Przestepny IS
Rok: Integer;
Numer: Integer RANGE 1..12;
TYPE Miesiac IS (Sty, Lut, Mar, Kwi, Maj, Cze, Lip, Sie, Wrz, Paz, Lis, Gru);
M: Miesiac;
BEGIN
Put("Podaj numer miesiaca, ktory Cie interesuje (1-12): ");
Get(Numer);
M := Miesiac'Val(Numer-1);
CASE M IS
WHEN Sty | Mar | Maj | Lip | Sie | Paz | Gru =>
Put("Podany miesiac liczy 31 dni");
WHEN Lut =>
Put("Podaj numer roku w ktorym wystepuje ten miesiac: ");
Get(Rok); Skip_Line;
IF (Rok mod 400 =0) THEN
Put("Podany miesiac ma 29 dni... bo podzielny przez 400");
ELSIF (Rok mod 100 = 0) THEN
Put("Podany miesiac ma 28 dni...bo podzielny przez 100");
ELSIF (Rok mod 4 =0) THEN
Put("Podany miesiac ma 29 dni... bo podzielny przez 4");
ELSE
Put("Podany rok ma 28 dni... bo to tylko zostalo");
END IF;
WHEN OTHERS =>
Put("Podany miesiac ma 30 dni");
END CASE;
END Rok_przestepny;