Программирование ** паскале. честно, не понимаю как это делать, вообще паскаль не знаю,...

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

Программирование на паскале.
честно, не понимаю как это делать, вообще паскаль не знаю, но домашку надо сдать помогите!!!((

Саше очень понравились задачи олимпиады по математике, поэтому он решил ходить на занятия кружка. Придя на первое занятие кружка, он узнал,что занятия будут проходить еженедельно в один и тот же день недели. Помогите Саше составить календарь занятий до конца года – определите даты всех занятий, начиная с первого занятия и до конца года.
Программа получает на вход два числа, записанных в разных строках: номер месяца
и номер дня месяца, когда проходит первое занятие. Номер месяца может быть одним из
четырёх возможных чисел – 9, 10, 11, 12. Номер дня месяца – число от 1 до 30 для сентября и ноября (месяцы с номерами 9 и 11) или от 1 до 31 для октября и декабря (месяцы с номерами 10 и 12).
Программа должна вывести даты всех занятий кружка до конца года
в хронологическом порядке, по одной дате в строке, сначала месяц, затем день месяца, через пробел. Занятия проходят еженедельно, в тот же день недели, что и первое занятие. Формат вывода дат такой же, как в условии. Считайте, что каникулы отсутствуют, а последнее занятие может происходить в любой день декабря, в том числе и 31 числа.


Информатика (178 баллов) | 19 просмотров
Дан 1 ответ
0 голосов

Как то так, сложная попалась задача
var
day,a,mon,i,i1,max:integer;{объявляем переменные}
begin
  readln(mon,day);{вводим месяц и день}
  a:=day;
  for i:=mon to 12 do begin
    writeln;
    write(i,': ');
    case mon of{сколько дней в месяце}
      9:max:=30;
      10:max:=31;
      11:max:=30;
      12:max:=31;
    end;
   
    for i1:=a to max do begin
      if a>max then break;
      write(a,' ');
      a:=a+7;
    end;
    a:=a-max;
  end;
end.

(795 баллов)