В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
PolinaZinoviva
PolinaZinoviva
06.11.2020 12:21 •  Информатика

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

Показать ответ
Ответ:
sasha524856
sasha524856
04.10.2020 00:38
//Можно и без дня недели пятницы
//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
Пример вывода:
Май
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота