КАТЕГОРИИ: Архитектура-(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) |
Статические массивы
Структурированные типы данных Порядковые типы Порядковыми типами называют целые, логические, символьные, перечисляемые, интервальные типы. Для порядковых типов имеются функции: Ord(i) ‑ порядковый номер аргумента (запрещен аргумент типа Int64). Pred(i)/Succ(i) ‑ предшествующее/следующее значение для аргумента. High(i)/Low(i) ‑ максимальное/ минимальное значение аргумента. Inc(i)/Dec(i ‑ увеличение/уменьшение i на единицу (инкремент/декремент). Пример. Две группы по три эквивалентных оператора: Inc(i); i:=Succ(i); i:=i+1; Dec(i); i:=Pred(i); i:=i‑1; Объект структурированного типа всегда имеет несколько компонентов. Допускается вложенность типов, т.е. компонент может быть структурным. Имеется четыре типа: массив, запись, множество, файл (описание этого типа приводится в пункте 6.1). Массив ‑ группа переменных (элементов). Описание типа имеет вид: <имя типа>=[Packed] Array[<индекс>] Of <тип> Packed - элементы массива располагаются плотно без пропусков, что уменьшает размер используемой памяти, но увеличивает время обработки. <индекс> ‑ список индексов через запятую. Индексами могут быть переменные типов: целые (кроме Longint), логические, символьные, перечисляемые, интервальные (кроме базового типа Longint). Обычно используется интервальный тип. Границы значений индексов могут задаваться только константами, а не переменными, т.е. при выполнении программы нельзя изменить размер массива. Поэтому такие массивы называют статическими в отличие от динамических, размер которых не известен до выполнения программы и определяется в процессе ее выполнения. Элементами массива могут быть и структурированные данные. Суммарная длина массива ограничена ‑ 2 Гб. Число индексов определяет размерность массива. Пример. Двумерный массив: таблица из 5 строк и 10 колонок type mot=array [1 .. 5,1..10] of byte //таблица символов Переменную типа «массив» можно определить сразу в разделе переменных без предварительного описания типа массива. Пример. var urog: array [1..10,1..100] of real Доступ к элементу массива осуществляется по его индексу. Запись вида А:=В означает, что всем элементам массива А присваиваются попарно значения элементов массива В при следующем ограничении: перечислены в одном списке команды объявления или объявлены через один поименованный тип. Однотипные массивы можно сравнивать (А=В, А<>В). Действия осуществляются с элементами массива. Пример. FOR I:=1 TO 10 DO A[I]:=0 //очистка массива нулями. Индексы можно задавать не только числовым интервальным типом, как это обычно и бывает, но и другими типами. Пример перечисляемого типа индекса: Type Cvet=(krasnii, geltii, zelenii, hernii); //перечисляемый тип ‑ цвета Var Mcvetov: Array [Cvet] Of Integer; //одномерный массив цветов Для обращения к третьему элементу массива нужно указать Mcvetov[zelenii]. Пример интервального символьного типа ‑ латинские буквы. Var Cim: Array [‘a’..’z’] Of Char; I:char;... For I:=’a’ to ‘z’ Do Cim[I]:=I; //заполнение массива латинскими буквами При объявлении массива можно указать начальные значения его элементов. Покажем на примерах, как это делается. Пример присвоения начальных значений одномерному массиву: Var A1: Array [0..6] of integer=(2,1,7,4,3,8,10); // список констант Для многомерных массивов каждый список констант соответствующего измерения заключается дополнительно в круглые скобки и отделяется запятой. Самые внутренние множества констант связываются с изменением самого правого индекса массива. Пример присвоения начальных значений двумерному массиву: Type A2: Array [1..3,1..2] of integer=((1,2),(3,4),(5,6)); // значения 1,2,3,4,5,6. Пример типизированной константы типа «массив»: Const Matr: Array[1..3,1..5) Of Byte=((0,1,2,3,4),(5,6,7,8,9),(10,11,12,13,14)); К одномерным символьным массивам применимы функции работы со строками. Параметры в виде открытых массивов При объявлении подпрограммы (функции или процедуры) можно не указывать размерность массивов. Такой открытый массив воспринимается в подпрограмме как массив с целыми индексами, начинающимися с нуля. Размер массива определяется функцией Length и Height=Length‑1. При вызове подпрограммы в качестве параметра со значениями открытого массива можно использовать конструктор открытого массива, который задает в квадратных скобках список значений элементов массива через запятые. Пример: S=MinValue([1.3,45.6,‑22,67,132.45,56]). Приведем некоторые полезные функции обработки массивов. Length(x) -возвращает число элементов в массиве. High(x)/Low(x) - возвращает наибольшее/наименьшее значение индекса. MaxIntValue(x), MinIntValue(x), MaxValue(x), MinValue(x) - возвращает максимальное, минимальное значение элемента числового массива. Sum(x) - возвращает сумму элементов числового массива.
Дата добавления: 2014-12-08; Просмотров: 405; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |