Процедура распечатки месяца, представленного в перечислении - 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.
Объяснение кода листинга программы
- Создается тип данных Tmonth, который представляет собой перечисление месяцев в виде строковых значений.
- Создается константа nz_mes, которая представляет собой массив строк, содержащий названия месяцев на русском языке.
- Создается переменная a типа integer, которая будет использоваться для получения ввода пользователя.
- Создается переменная b типа Tmonth, которая будет использоваться для хранения выбранного пользователем месяца.
- В цикле repeat-until пользователь вводит номер месяца от 1 до 12.
- Полученный номер месяца преобразуется в тип Tmonth с помощью функции Tmonth(a-1).
- Выводится название месяца, соответствующего переменной b, с помощью функции Writeln(nz_mes[b]).
- Цикл повторяется до тех пор, пока пользователь не введет неправильный номер месяца или не закончит ввод.