Сформировать расписание экзаменов сессии в заданном году - PascalABC.NET
Формулировка задачи:
Сессия начинается в день d.m.g.. Для студентов специальности "Электронные системы " она состоит из N экзаменов. Первый экзамен приходится на второй день сессии. Между экзаменами - M дней подготовки. Сформировать расписание экзаменов сессии в заданном году.
Решение задачи: «Сформировать расписание экзаменов сессии в заданном году»
textual
Листинг программы
- var
- d, m, g, k, i, n, feb: integer;
- l: string;
- begin
- Writeln('В какой день начинаєтся сессия?');
- readln(d, m, g);
- Writeln('Количество экзаменов');
- readln(n);
- Writeln('Количество дней для подготовки');
- readln(k);
- if g mod 4 = 0 then feb := 29 else feb := 28;
- d := d + 1;
- if d < 10 then l := ' ' else l := '';
- writeln(l, d, '.', m, '.', g);
- for i := 2 to n do
- begin
- case m of
- 1, 3, 5, 7, 8, 10, 12:
- begin
- d := d + k;
- if d > 31 then m := m + 1;
- if d > 31 then d := d - 31;
- if m = 13 then g := g + 1;
- if m = 13 then m := 1;
- if m = 13 then m := 1;
- if d < 10 then l := ' ' else l := ' ';
- end;
- 4, 6, 9, 11:
- begin
- d := d + k;
- if d > 30 then m := m + 1;
- if d > 30 then d := d - 30;
- if d < 10 then l := ' ' else l := ' ';
- end;
- 2:
- begin
- d := d + k;
- if d > feb then m := m + 1;
- if d > feb then d := d - feb;
- if d < 10 then l := ' ' else l := ' ';
- end;
- end;
- writeln(l, d, '.', m, '.', g);
- end;
- end.
Объяснение кода листинга программы
- Переменная
d
инициализируется значением дня месяца, в котором начинается сессия. - Переменная
m
инициализируется значением месяца, в котором начинается сессия. - Переменная
g
инициализируется значением года, в котором начинается сессия. - Переменная
k
инициализируется количеством дней для подготовки к экзаменам. - Переменная
n
инициализируется количеством экзаменов. - Если год високосный, то значение переменной
feb
устанавливается равным 29, иначе 28. - Значение переменной
d
увеличивается на 1. - Если значение переменной
d
меньше 10, то переменнаяl
устанавливается равной`. иначе
`. - Выводится текущее значение переменных
d
,m
,g
. - Запускается цикл
for i := 2 to n
, который выполняет следующие действия: - В зависимости от значения переменной
m
выполняются различные действия: - Если значение переменной
m
равно 1, 3, 5, 7, 8, 10, 12, то выполняются следующие действия:- Значение переменной
d
увеличивается на количество дней для подготовки. - Если значение переменной
d
больше 31, то значение переменнойm
увеличивается на 1. - Если значение переменной
d
больше 31, то значение переменнойd
уменьшается на 31. - Если значение переменной
m
равно 13, то значение переменнойg
увеличивается на 1. - Если значение переменной
m
равно 13, то значение переменнойm
уменьшается на 1. - Если значение переменной
m
равно 13, то значение переменнойm
уменьшается на 1. - Если значение переменной
d
меньше 10, то переменнаяl
устанавливается равной
- Значение переменной
- Если значение переменной
m
равно 4, 6, 9, 11, то выполняются следующие действия:- Значение переменной
d
увеличивается на количество дней для подготовки. - Если значение переменной
d
больше 30, то значение переменнойm
увеличивается на 1. - Если значение переменной
d
больше 30, то значение переменнойd
уменьшается на 30. - Если значение переменной
d
меньше 10, то переменнаяl
устанавливается равной
- Значение переменной
- Если значение переменной
m
равно 2, то выполняются следующие действия:- Значение переменной
d
увеличивается на количество дней для подготовки. - Если значение переменной
d
больше февральского количества дней, то значение переменнойm
увеличивается на 1. - Если значение переменной
d
больше февральского количества дней, то значение переменнойd
уменьшается на февральское количество дней. - Если значение переменной
d
меньше 10, то переменнаяl
устанавливается равной
- Значение переменной
- Выводится текущее значение переменных
d
,m
,g
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д