Составьте программу, которая, учитывая наименование года и день недели соответствующий 1...

0 голосов
28 просмотров

Составьте программу, которая, учитывая наименование года и день недели соответствующий 1 января, выводит на экран наименования месяцев в которых число 13 выпадет на пятницу (программа pascal abc) срочно надо, не понимаю как составить(


Информатика (28 баллов) | 28 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

//Можно и без дня недели пятницы
//PascalABC.NET 3.2 сборка 1318

//PascalABC вариант

Var
  Year,YearCode:integer;
begin
readln(Year);
  case(Year div 100 mod 4) of 
 0:YearCode:=6;
  1:YearCode:=4;
  2:YearCode:=2;
  3:YearCode:=0;
  end;
YearCode:=(YearCode+Year mod 100+ Year mod 100 div 4) mod 7;
if Year mod 4<>0 then
  begin
    if (13+1+YearCode) mod 7=6 then writeln('Январь');
  end
else
    if (13+1+YearCode) mod 7=0 then writeln('Январь');
if Year mod 4<>0 then
  begin
    if (13+4+YearCode) mod 7=6 then writeln('Февраль');
  end
else
    if (13+4+YearCode) mod 7=0 then writeln('Февраль');
if (13+1+YearCode) mod 7=6 then writeln('Октябрь');
if (13+2+YearCode) mod 7=6 then writeln('Май');
if (13+3+YearCode) mod 7=6 then writeln('Август');
if (13+4+YearCode) mod 7=6 then writeln('Март');
if (13+4+YearCode) mod 7=6 then writeln('Ноябрь');
if (13+5+YearCode) mod 7=6 then writeln('Июнь');
if (13+6+YearCode) mod 7=6 then writeln('Декабрь');
if (13+6+YearCode) mod 7=6 then writeln('Сентябрь');
if (13+0+YearCode) mod 7=6 then writeln('Апрель');
if (13+0+YearCode) mod 7=6 then writeln('Июль');
end.

//.NET вариант

uses
  system;

  const
  Day=13;
  n=12;

  Var
  Year,i:integer;
  ars:array[1..n] of string:=('Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь');
  ard:array[1..n] of DateTime;
begin
readln(Year);
for i:=1 to n do
  begin
    ard[i]:=ard[i].AddDays(Day-1);
    ard[i]:=ard[i].AddMonths(i-1);
    ard[i]:=ard[i].AddYears(Year-1);
    if ard[i].DayOfWeek.ToString='Friday' then writeln(ars[i]);
  end;
end.

Пример ввода:
2016
Пример вывода:
Май

(38.6k баллов)
0

огромное спасибо)