КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Одномерные массивы. Скалярный тип - простой тип данных
VI. МАССИВЫ. ДАННЫЕ ТИПА ARRAY
Скалярный тип - простой тип данных. Скалярное данное неделимо. Массивы - это структурированные типы данных. Массив состоит из нескольких элементов. Ко всему массиву можно обращаться по его имени. Можно обращаться к его элементу, но для этого надо задать индекс (индексы). Массивы бывают одномерные и многомерные. Для объявления массива необходимо задать типы его индексов и компонент.
СИНТАКСИЧЕСКАЯ ДИАГРАММА Тип компонент массива - это просто тип данных, ассоциированный с каждой компонентой массива. Тип компонент может быть любым REAL, INTEGER, CHAR, BOOLEAN, перечислимым, интервальным. В качестве компоненты массива может быть взят и тип массив. Тип индекса должен быть одним из упорядоченных типов, т.е. любым скалярным типом, кроме REAL: INTEGER, CHAR, интервальный, перечислимый. Тип индекса определяет границы изменения индекса. Если сделана попытка использовать несуществующую компоненту, то возникает ошибка (ошибка неверного индекса).
Одномерный массив можно задать двумя способами: 1. с помощью служебного слова TYPE описывается тип массива, а затем с помощью VAR вводится переменная этого типа;
ОБЩАЯ ФОРМА ЗАПИСИ: TYPE <тип массива> = ARRAY[тип индекса] OF <тип компонент>; VAR <переменная>: <тип массива>;
2. с помощью слова VAR сразу описывается переменная типа массив;
ОБЩАЯ ФОРМА ЗАПИСИ: VAR <переменная>: ARRAY [тип индекса] OF <тип компонент>; Например, объявление массива из 100 элементов типа REAL можно осуществить следующими двумя способами: 1. type R100 = array[1..100] of real; var A: R100; 2. var A: array[1..100] of real.
Здесь задан массив с именем "А" и его элементы имеют имена: А[1],…,A[100]. Чаще всего для типа индекса используют интервальный тип на основе типов INTEGER и CHAR. Однако можно в качестве индексов брать перечислимый тип.
Пример 1. Подсчет числа вхождений букв в текст определенной длины program COUNTER; var COUNT: array['a'..'z'] of integer; CH: char; N: integer; begin for CH:= 'a' to 'z' do COUNT [CH]:= 0; N:= 0; repeat read(CH); N:= N+1; if (CH >= 'a') and (CH <= 'z') then COUNT [CH]:= COUNT [CH]+1; until CH = '.'; for CH:= 'a' to 'z' do writeln(CH, COUNT [CH]:5); end.
Пояснение. В этом примере тип индекса есть интервальный тип на базе типа CHAR, а тип компонент есть целое число. Таким образом, элементы массива - числа, а их индексы - буквы, т.е. число элементов массива равно 26 (число букв латинского алфавита). Рассмотрим теперь случай, когда тип индекса задан перечислимым типом, а компоненты массива представлены компонентами интервального типа на базе типа INTEGER.
ПРИМЕР 2. Присваивание переменной с именем месяца числа дней этого месяца
program NUMBRDAY; type MONAT = (JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OKT, NOV, DEC); var DAY: array [MONAT] of 28..31; T: MONAT; begin for T:= JAN to DEC do case T of JAN, MAR, MAY, JUL, AUG, OKT, DEC: DAY[T]:= 31; APR, JUN, SEP, NOV: DAY[T]:= 30; FEB: DAY[T]:= 28; end; end.
Дата добавления: 2014-11-16; Просмотров: 817; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |