Основы программирования — Осенний семестр; Михалкович С.С.; 2008; X — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Juliet (обсуждение | вклад) |
Admin (обсуждение | вклад) (→Перечислимый тип) |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
[[Категория:Основы программирования]] | [[Категория:Основы программирования]] | ||
+ | [[Страница курса Основы программирования|К основной странице курса]] | ||
== Перечислимый тип == | == Перечислимый тип == | ||
+ | === Определение и примеры === | ||
+ | :Тип, задаваемый перечислением значений, называется '''перечислимым'''. | ||
+ | |||
+ | ''<u>Пример 1</u>.'' | ||
+ | <source lang="Pascal"> | ||
+ | type | ||
+ | /// Дни | ||
+ | Days = (Mon, Tue, Wen, Thi, Fri, Sat, Sun); | ||
+ | /// Месяцы | ||
+ | Months = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec); | ||
+ | |||
+ | var | ||
+ | d: Days; | ||
+ | m: Months; | ||
+ | begin | ||
+ | d := Tue; | ||
+ | m := Months.May; | ||
+ | end. | ||
+ | </source> | ||
+ | |||
+ | Переменные перечислимого типа хранятся в памяти, как ''целые числа''. Первому значению соответствует <tt>0</tt>, второму — <tt>1</tt>, и т.д. | ||
+ | |||
+ | '''Замечание.''' Все имена из определения перечислимого типа помещаются в текущее пространство имен. | ||
+ | |||
+ | Переменная перечислимого типа может служить ''параметром'' цикла '''<tt>for</tt>''', а также ''переключателем'' в операторе '''<tt>case</tt>'''. | ||
+ | |||
+ | ''<u>Пример 2</u>.'' | ||
+ | <source lang="Pascal"> | ||
+ | for m: Months := Jan to Dec do | ||
+ | case m of | ||
+ | Jan: writeln('Январь: 31'); | ||
+ | Feb: writeln('Февраль: 28 или 29'); | ||
+ | else writeln('Забыл'); | ||
+ | end; | ||
+ | </source> | ||
+ | |||
+ | === Стандартные подпрограммы для работы с перечислимым типом === | ||
+ | '''Succ'''(<переменная>) | ||
+ | Возвращает ''следующее'' значение перечислимого типа | ||
+ | '''Pred'''(<переменная>) | ||
+ | Возвращает ''предыдущее'' значение перечислимого типа | ||
+ | '''Ord'''(<переменная>) | ||
+ | Возвращает ''порядковый номер'' значения перечислимого типа | ||
+ | |||
+ | '''Замечание.''' Тип <tt>boolean = (False, True)</tt> | ||
+ | |||
+ | Если не инициализировать глобальную переменную перечислимого типа, то по умолчанию она получает значение первой константы типа. | ||
+ | |||
== Диапазонный тип == | == Диапазонный тип == | ||
+ | '''Диапазонный''' тип строится на базе | ||
+ | * целого | ||
+ | * символьного | ||
+ | * или перечислимого типов | ||
+ | |||
+ | ''<u>Пример</u>.'' | ||
+ | <source lang="Pascal"> | ||
+ | type | ||
+ | Marks = 2..5; | ||
+ | Digits = '0'..'9'; | ||
+ | Letters = 'a'..'z'; | ||
+ | Summer = Jun..Aug; | ||
+ | </source> |
Текущая версия на 08:17, 2 сентября 2013
Содержание
Перечислимый тип
Определение и примеры
- Тип, задаваемый перечислением значений, называется перечислимым.
Пример 1.
type
/// Дни
Days = (Mon, Tue, Wen, Thi, Fri, Sat, Sun);
/// Месяцы
Months = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);
var
d: Days;
m: Months;
begin
d := Tue;
m := Months.May;
end.
Переменные перечислимого типа хранятся в памяти, как целые числа. Первому значению соответствует 0, второму — 1, и т.д.
Замечание. Все имена из определения перечислимого типа помещаются в текущее пространство имен.
Переменная перечислимого типа может служить параметром цикла for, а также переключателем в операторе case.
Пример 2.
for m: Months := Jan to Dec do
case m of
Jan: writeln('Январь: 31');
Feb: writeln('Февраль: 28 или 29');
else writeln('Забыл');
end;
Стандартные подпрограммы для работы с перечислимым типом
Succ(<переменная>) Возвращает следующее значение перечислимого типа Pred(<переменная>) Возвращает предыдущее значение перечислимого типа Ord(<переменная>) Возвращает порядковый номер значения перечислимого типа
Замечание. Тип boolean = (False, True)
Если не инициализировать глобальную переменную перечислимого типа, то по умолчанию она получает значение первой константы типа.
Диапазонный тип
Диапазонный тип строится на базе
- целого
- символьного
- или перечислимого типов
Пример.
type
Marks = 2..5;
Digits = '0'..'9';
Letters = 'a'..'z';
Summer = Jun..Aug;