Ada95 - program "Rok przestepny"

19Radek88
Użytkownik
Użytkownik
Posty: 105
Rejestracja: 2 lis 2007, o 21:01
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 14 razy
Pomógł: 4 razy

Ada95 - program "Rok przestepny"

Post autor: 19Radek88 »

Oto program, ktory kompiluje i sie i dziala prawidlowo. Czy jest on jednak napisany (jak na poczatkujacego) w sposob optymalny i najprostszy?

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;   
Awatar użytkownika
Undre
Użytkownik
Użytkownik
Posty: 1430
Rejestracja: 15 lis 2004, o 02:05
Płeć: Mężczyzna
Lokalizacja:
Podziękował: 3 razy
Pomógł: 92 razy

Ada95 - program "Rok przestepny"

Post autor: Undre »

Widzę, że na FTIMS dalej katują ludzi Adą

Imo przekombinowane z tym lutym.
Jeżeli rok mod 4 daje 0, to luty ma 29 dni, jeżeli inaczej to luty ma 28.
Xitami

Ada95 - program "Rok przestepny"

Post autor: Xitami »

... y#Algorytm
Awatar użytkownika
Undre
Użytkownik
Użytkownik
Posty: 1430
Rejestracja: 15 lis 2004, o 02:05
Płeć: Mężczyzna
Lokalizacja:
Podziękował: 3 razy
Pomógł: 92 razy

Ada95 - program "Rok przestepny"

Post autor: Undre »

hmm ... no ok, nigdy nie studiowałem zasady działania kalendarza, a przez tyle czasu ile sam żyję samo mod 4 działa świetnie

W takim razie najbliższy rok podzielny przez 4 a nie bedacy rokiem przestepnym to 2100 ? Jeżeli tak, to i tak nie dożyję więc mogę na to lać
ODPOWIEDZ