Процедура распечатки месяца, представленного в перечислении - Pascal ABC

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

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

Процедура печати Writeln не способна распечатать название месяца, представленного в перечислении. Напишите для этого свою собственную процедуру (объявите тип TMonth и воспользуйтесь оператором CASE). Вот моя попытка- бред:
Не ругайте сильно и исправьте именно мой вариант.

Решение задачи: «Процедура распечатки месяца, представленного в перечислении»

textual
Листинг программы
Type Tmonth = (jan,febr,mar,apr,may,jun,iyul,aug,sen,oct,noy,dek);
const nz_mes:array[Tmonth] of string=('январь','февраль','март','апрель',
                                      'май','июнь','июль','август',
                                      'сентябрь','октябрь','ноябрь','декабрь');
Var a:integer;
    b:Tmonth;
begin
repeat
write('Введите номер месяца от 1 до 12 a=');
readln(a);
until a in [1..12];
b:=Tmonth(a-1);
Writeln(nz_mes[b]);
end.

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

  1. Создается тип данных Tmonth, который представляет собой перечисление месяцев в виде строковых значений.
  2. Создается константа nz_mes, которая представляет собой массив строк, содержащий названия месяцев на русском языке.
  3. Создается переменная a типа integer, которая будет использоваться для получения ввода пользователя.
  4. Создается переменная b типа Tmonth, которая будет использоваться для хранения выбранного пользователем месяца.
  5. В цикле repeat-until пользователь вводит номер месяца от 1 до 12.
  6. Полученный номер месяца преобразуется в тип Tmonth с помощью функции Tmonth(a-1).
  7. Выводится название месяца, соответствующего переменной b, с помощью функции Writeln(nz_mes[b]).
  8. Цикл повторяется до тех пор, пока пользователь не введет неправильный номер месяца или не закончит ввод.

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

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