Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Помогите кто-нибудь с Паскалем (http://www.tehnari.ru/f41/t63420/)

Катерюшка 01.02.2012 18:22

Помогите кто-нибудь с Паскалем
 
Никогда не сталкивалась с программированием, а тут поступила в универ и задали на Паскале задачку:
Даны целые числа day, month, year. Проверьте возможность существования этой даты и в случае положительного результата выведите ее в виде "число название месяц год".

Vladimir_S 01.02.2012 20:35

Цитата:

Сообщение от Катерюшка (Сообщение 665781)
Никогда не сталкивалась с программированием, а тут поступила в универ и задали на Паскале задачку:
Даны целые числа day, month, year. Проверьте возможность существования этой даты и в случае положительного результата выведите ее в виде "число название месяц год".

Легко.
Только вот два замечания.
1. Вы не указали тип Паскаля (они разные бывают). Программа написана для Turbo. Если же нужно для АВС, каковой типизированных констант понимать не изволит, то помочь не могу - я с этим извращением дела не имею.
2. На допустимый диапазон лет наложено только одно ограничение: номер года должен быть больше 1582 (год принятия Григорианского календаря).
Код:

CONST
 Month_Name:Array[1..12] of String=('January','February','March','April',
                              'May','June','July','August',
                              'September','October','November','December');
 Days_in_Months_not_bis:Array[1..12] of Byte=(31,28,31,30,31,30,
                                              31,31,30,31,30,31);
 Days_in_Months_bis:Array[1..12] of Byte=(31,29,31,30,31,30,
                                          31,31,30,31,30,31);
VAR
 Year_Type:Byte;
 Day,Month,Year:Integer;
 B:Boolean;
 i,j,N,Days:Integer;

BEGIN
 Write('Day= ');
 Readln(Day);
 Write('Month= ');
 Readln(Month);
 Write('Year= ');
 Readln(Year);
 B:=True;
 If Year<1583 then B:=False;
 If B then
  Begin
  If (((Year mod 4)=0) and ((Year mod 100)>0)) or
      (((Year mod 100)=0) and ((Year mod 400)=0))  then
      Year_Type:=1 else Year_Type:=0;
  If (Month<0) or (Month>12) or (Day<1) then B:=False;
    If B then
    begin
      If ((Year_Type=0) and (Day>Days_in_Months_not_bis[Month])) or
        ((Year_Type=1) and (Day>Days_in_Months_bis[Month])) then B:=False;
    end;
  End;
 Writeln;
 If B then
  Writeln(Day,', '+Month_Name[Month]+', ',Year)
 else
  Writeln('Incorrect!');
 Readln
END.


Катерюшка 01.02.2012 22:20

Огромное спасибо, то что нужно, как раз на турбо паскаль)))))))


Часовой пояс GMT +4, время: 11:30.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.