Перечисляемый тип - Turbo Pascal (29226)
Формулировка задачи:
Здравствуйте, есть список, существует ли возможность присваивать значения mes переменной a[i] не используя операторы case или if?
Решение задачи: «Перечисляемый тип»
textual
Листинг программы
type mesjaz = (jan, fevr, mart, apr, mai, ijun, ijul, avg, sent, okt, noj, dek); type data=record god:1900..3000; mes:mesjaz; den:1..30; End; var i,t:integer; a:array [1..100] of data; begin i:=0; for i:=1 to 3 do begin begin write('год: '); readln(a[i].god); write('den: '); readln(a[i].den); write('mes: '); readln(t); //t in [1..12] a[i].mes:=mesjaz(t-1); //ord(mesaz) in [0..11] end; end; for i:=1 to 3 do begin writeln('год=',a[i].god,' День=',a[i].den,' mes=',a[i].mes) end; readln end.
Объяснение кода листинга программы
- Создается перечисленый тип
mesjaz
, который содержит 12 элементов, представляющих месяцы года. - Создается тип данных
data
с полямиgod
(год),mes
(месяц) иden
(день). - Создается переменная
i
типаinteger
для индексации массива данных. - Создается переменная
t
типаinteger
для хранения номера месяца. - Создается массив
a
типаarray
с размером 100 элементов, каждый из которых является объектом типаdata
. - Задается начальное значение переменной
i
равным 0. - Запускается цикл
for
, который выполняется 3 раза. - Внутри цикла создается вложенный блок
begin
для каждого месяца. - Внутри вложенного блока
begin
выполняются следующие действия:- Выводится запрос на ввод года.
- Год сохраняется в поле
god
объекта типаdata
. - Выводится запрос на ввод дня месяца.
- День сохраняется в поле
den
объекта типаdata
. - Выводится запрос на ввод месяца.
- Месяц сохраняется в поле
mes
объекта типаdata
. - Значение месяца преобразуется в соответствующий номер месяца.
- После завершения вложенного блока
begin
выводится сообщение о годе, дне и месяце. - Цикл
for
завершается. - Выводится сообщение с информацией о каждом объекте типа
data
в массивеa
. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д