Задан номер дня в году и год. Определить календарную дату года - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Задан порядковый номер дня в году и год. Напишите программу, определяющую соответствующую календарную дату года ( число, месяц).

Решение задачи: «Задан номер дня в году и год. Определить календарную дату года»

textual
Листинг программы
Const mas:array[1..12] of byte = (31,28,31,30,31,30,31,31,30,31,30,31);
Var d:integer;
    g:1800..2012;
    i:integer;
Begin
    Repeat
     write('Введите порядковый номер дня в году: ');readln(d);
    Until (d>=1)and(d<=365);
    write('Введите год: ');readln(g);
    i:=0;
    While (d>0)and(i<12) do
     Begin
      inc(i);
      d:=d-mas[i];
     End;
    if d<=0 then d:=d+mas[i];
    writeln('Месяц: ',i,' День: ',d);
    readln;
End.

Объяснение кода листинга программы

  1. Объявлены константа массива mas размером 12 байтов, предназначенная для хранения количества дней в каждом месяце от 1900 до 2012 года.
  2. Объявлены переменные d и g типа integer, первая для хранения номера дня в году, вторая для хранения года.
  3. Введен цикл, который будет повторяться до тех пор, пока не будет введено корректное значение номера дня в году.
  4. Выводится запрос на ввод номера дня в году.
  5. Введен цикл, который будет повторяться до тех пор, пока не будет введен корректный год.
  6. Выводится запрос на ввод года.
  7. Инициализируется переменная i для хранения номера месяца.
  8. Задается условие для цикла, который будет выполняться до тех пор, пока день в месяце не станет равным или меньше нуля или не будет достигнут 12-й месяц.
  9. Увеличивается значение переменной i на единицу.
  10. Значение переменной d уменьшается на значение ячейки массива mas, соответствующей текущему месяцу.
  11. Если значение переменной d стало меньше или равно нулю, то оно увеличивается на значение ячейки массива mas, соответствующей текущему месяцу.
  12. Выводится текущий месяц и день.
  13. Запрос на чтение ввода с клавиатуры.
  14. Цикл завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы