Каждое значение регулярного типа состоит из фиксированного числа элементов одного и того же базового типа. Такой способ образования новых значений (фиксированное число однотипных компонент) позволяет обозначать значения этих типов одним (групповым) именем. Объект регулярного типа часто называют массивом, а групповое имя используется в качестве имени этого массива. Доступ к отдельным элементам массивов организуется посредством указания имени массива и порядкового номера (индекса) необходимого элемента.
Для корректного определения регулярного типа необходимо задать две характеристики: тип элементов массива, а также количество и «способ нумерования» элементов. Последние характеристики задаются посредством указания типа индекса.
Определение массива имеет следующий общий вид:
A = array [T1] of T2;
Array, of – служебные слова;
Т1 – тип индекса массива;
Т2 – тип компонент массива.
В дальнейшем идентификатор этого типа может быть использован в описании переменных.
Pascal. Массивы. Заполнение массива. Вывод массива.
В качестве типа индекса может выступать любой дискретный тип, кроме LongInt и ограниченных типов, построенных из типа LongInt, в частности, допустимы ограниченные и перечислимые типы. Элементами массива могут быть переменные любого типа.
Ниже приведены описания различных массивов:
M1 = array [1..100] of real;
M2 = array [char] of boolean;
Matrix = array [ 1..10 ] of array[1..20] of integer;
Database = array [1..MaxF] of file of Person;
Arr1, Arr2: Matrix;
S: array [Red, Yellow, Green] of boolean;
1. Число элементов в массиве всегда должно быть фиксировано.
2. Для задания количества элементов массива используется тип; число элементов определяется количеством возможных значений указанного типа, что отличает язык Паскаль от многих других языков, в которых размер массива задается либо целым числом (или выражением целого типа), либо диапазоном целых чисел. Это придает Паскалю дополнительную гибкость, позволяя «нумеровать» элементы массива не только целыми числами, но и значениями произвольного целого типа.
3. В качестве элементов массива могут выступать значения любого типа; в частности, ими могут быть значения любых составных типов, например, массивы:
V2: array[1..10] of array [1..20] of byte;
Такую переменную можно трактовать двояко: как массив, состоящий из нескольких массивов, либо как один двумерный массив (матрицу). Для сокращения записи в подобных случаях можно использовать эквивалентную форму определения регулярных типов, где в квадратных скобках указывается список типов индексов, разделенных запятыми, тот же массив можно описать:
V2: array [ 1..10, 1..20 ] of of byte;
Число индексов в определении (т.е. размерность массива) в языке не ограничивается.
4. Турбо Паскаль допускает единственное возможное действие над массивом в целом: использование его в операторе присваивания, например:
причем типы обоих массивов должны быть эквивалентны.
Язык C++ с нуля | #33 Найти максимальный и минимальный элемент массива в c++
Элемент массива считается переменной; он может получать значения (например, в операторе присваивания), а также участвовать в выражениях, где он представляет значение, помещенное в соответствующий элемент данного массива. Ассортимент операций над элементами массива полностью определяется типом этих элементов (базовым типом массива).
V2 [ i, j ]:= V2 [ i, j-1 ] + 1;
Sym_Table [ ‘z’ ]:= Switch and Sym_Table [ ‘a’ ];
2. Комбинированные типы (записи)
Комбинированные типы, как и регулярные типы, представляют собой правило формирования составных типов. Объекты этого типа называются записями. В отличие от массивов, записи могут объединять значения различных типов и поэтому являются, видимо, наиболее гибким механизмом построения данных.
Запись состоит из фиксированного числа компонентов, называемых полями записи. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.
Структура объявления типа записи такова:
RECORD, END — зарезервированные слова (запись, конец);
— этот список представляет собой последовательность разделов записи, между которыми ставится точка с запятой.
Каждый раздел записи состоит из одного или нескольких идентификаторов полей, отделяемых друг от друга запятыми. За идентификатором (идентификаторами) ставится двоеточие и описание типа поля (полей). Например:
В этом примере тип Birthday (день рождения) содержит три поля с именами DAY, MONTH и YEAR (день, месяц, год); переменные A и B содержат записи типа Birthday.
Как видно из примера, распространенным случаем употребления записи является необходимость описать атрибуты (характеристики) некоторого объекта, представляемого и обрабатываемого в программе. Например, для описания объекта “человек” могут понадобиться следующие характеристики:
· фамилия, имя, отчество (символьные массивы или строки);
· пол (перечислимый тип из двух значений);
· индекс специальности (целое) и т.д.
В этом случае описание комбинированного типа Person (человек) может выглядеть следующим образом:
Name, SecondName, SurName: string [20];
Sex: (Male, Female);
Имея в программе вышеприведенное описание, можно определить переменные данного типа, например:
Var Sasha, Masha, Natasha: Person;
Информация о работе «Типы данных в Object Pascal»
Раздел: Информатика, программирование
Количество знаков с пробелами: 27554
Количество таблиц: 2
Количество изображений: 0
Похожие работы

. фактически игнорирует это указание: “упаковка” данных в Object Pascal осуществляется автоматачески везде, где это возможно. 1.2.1 Массивы Массивы в Object Pascal во многом схожи с аналогичными типами данных в других языках программирования. Отличительная особенность массивов заключается в том, что все их компоненты суть данные одного типа (возможно, структурированного). Эти компоненты можно .
. в среде Delphi). Задачи использовались как с данного сайта, так и из других источников – книг и семинарских занятиях по информатике в МГОУ. Курс завершается разработкой игры. Программное обеспечение: свободно распространяемая версия объектно-ориентированной среды программирования Delphi. Методы обучения: метод проектов, лекции, проблемный метод, частично-поисковый метод. Контроль знаний и умений .
. F := SomeFunction; напротив, оператор I := F(4); вызывает эту функцию (запускает ее алгоритм) и после обработки возвращает результат вычислений переменной I. 15.6. Формальные и фактические параметры В Object Pascal есть понятия формального и фактического параметров. Формальным называется параметр, который содержится в заголовке описания подпрограммы, а фактическим – параметр в обращении к .
. . Объясните, для чего служат разрешения и привилегии в Windows NT. Зав. кафедрой ————————————————— Экзаменационный билет по предмету СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Билет № 22 Перечислите возможности и инструменты системы программирования Microsoft Developer Studio. Укажите для чего предназначается буфер в системах ввода-вывода, .
Источник: kazedu.com
Регулярный тип. Массивы.
Массив – это набор некоторого числа элементов (однотипные компоненты массива).
Индексы массива могут задаваться выражением, значение которого принадлежит типу индекса.
type = array [ <>] of ;
здесь тип индекса это скалярный или ограниченный тип, который определяет множество допустимых значений соответствующего индекса.
Тип элемента может быть любым скалярным или структурированным типом за исключением файлового.
Количество используемых типов индексов определяет размерность соответствующих массивов. Если тип индекса один, то переменные этого типа будут называться одномерным массивом. Если 2 типа индексов, то – двумерные….
После определения регулярных типов в программе можно определить и использовать переменные этих типов, которые называются массив.
Понятие комбинированного типа.
Комбинированный тип является наиболее гибким механизмом построения данных.
Этот тип задает некий образ структуры каждая часть, которой может иметь совершенно разные характеристики. Переменные комбинированного типа называются записями. Запись, как и массив, состоит из компонентов, но эти компоненты могут иметь разные типы и для доступа к ним используются не индексы, а имена этих компонентов.
Описание комбинированного типа имеет следующий синтаксис:
Источник: poisk-ru.ru
Описание регулярного типа (массива)

Массив – это набор элементов одного типа, каждому из которых соответствует свой номер, называемыйиндексом. Доступ к элементам массива осуществляется именно через эти индексы. Элементами массива могут быть данные любого типа. С каждым элементом в отдельности можно работать точно также, как с обычной переменной. Для этого нужно всего лишь указать его индекс.
Общий вид объявления массивов выглядит так:
Имя массива – произвольное имя, выдаваемое вами массиву. Массив по сути своей является такой же переменной, поэтому его можно называть произвольным образом исходя из соображений удобства и наглядности.
Нижняя и верхняя граница массива – это целочисленные значения, определяющие пределы массива. Например, если это соответственно 1 и 6, то массив содержит 6 элементов с индексами 1, 2, 3, 4, 5 и 6. Если это – 2 и 5, то массив содержит 4 элемента с индексами 2, 3, 4 и 5.
Тип данных – тип переменных, составляющих массив.
Numbers : array [1..9] of integer;
Здесь мы задаем массив целочисленного типа, содержащий 9 элементов.
После объявления массива с ним надо каким-то образом работать. Вот как это делается:
Так мы получаем доступ к элементу массива. С отдельным элементом можно делать все то же, что и с обычной переменной:
1) Присваивать значения: Numbers[2] := 34;
2) Использовать как операнды в арифметических операциях: Numbers[1] := Numbers[1] = Numbers[2];
3) Выводить на экран: Wtite(Numbers[4]);
4) Записывать в них вводимы с клавиатуры значения: Read(Numbers[3]);
5) Использовать в операциях сравнения: if Numbers[6] > 13 then Write(‘Больше. ’);
6) Использовать для задания количества повторений цикла:
For i:=3 to Numbers[5] do
Как видите, элементам массива, как и обычным переменным, можно присваивать различные значения. Но делать это вручную неудобно, ведь приходится многократно повторять однообразные действия. Например вот так бы пришлось оформлять заполнение массива с клавиатуры:
Numbers: array[1..10] of integer;
Read(Numbers[1], Numbers[2], Numbers[3], Numbers[4], Numbers[5], Numbers[6], Numbers[7], Numbers[8], Numbers[9], Numbers[10]);
Это очень неудобно и некрасиво. Поэтому следует использовать для этих целей циклы:
Numbers : array[1..10] of integer;
For i:=1 to 10 do
Алгоритмически это выглядит так:
Как упоминалось выше, массивы бывают различных типов. И это абсолютная правда. Например:
a1: array[1..5] of Boolean;
a2: array[0..6] of char;
a3: array[1..25] of real;
Следует учитывать, что действия, совершаемые над элементами массива, должны соответствовать типу содержащихся в нем данных. То есть, например, не стоит присваивать элементу массива типа integer дробные значения – точно также, как и обычным целочисленным переменным.
Рассмотренные нами ранее массивы являются одномерными. Они содержат линейную последовательность переменных одного типа. Что же делать, если данные необходимо как-то систематизировать? Обычно они представляются в виде таблицы. Именно для этих целей и служат многомерные и, в частности, двумерные массивы.
Любой двумерный массив отличается от одномерного прежде всего тем, что для доступа к его элементам используется не один индекс, а два. Ведь, чтобы определенным образом задать какую-либо ячейку двумерной таблицы, нужно указать номер строки и номер столбца.
Общий вид объявления двумерных массивов выглядит так:
Matrix : array[1..5,1..5] of integer;
Именно таким образом в программах представляются матрицы, т.е. двумерные таблицы чисел. Для того, чтобы реализовать ввод матрицы в компьютер с клавиатуры, необходимо использовать вложенные циклы:
Здесь i и j – счетчики, объявляемые в разделе var. Они должны быть целочисленного типа (byte, integer).
Алгоритм такого кода:
Взгляните на эту таблицу:
1 11 12 13 14 15
2 21 22 23 24 25
3 31 32 33 34 35
4 41 42 43 44 45
5 51 52 53 54 55
По горизонтали изменяется значение j (номер столбца), а по вертикали – i (номер строки). Каждый конкретный элемент однозначно определяется этими двумя значениями. Например, возьмем элемент 43 – он располагается в 4 строке, 3 столбце. Соответственно, для него i=4,j=3. При использовании вложенных циклов (как было показано выше) последовательно идет работа с элементами первой строки, потом второй, третьей, четвертой, пятой. Вот как можно вывести матрицу на экран:
Однако выведенные данные в таком случае будут выглядеть некрасиво, т.к. будут идти сплошным, неразделимым потоком в одну строчку. Поэтому нужно, во-первых, после каждого элемента вставлять пробел, а во-вторых, после каждой выведенной строки переходить на новую с помощью оператора WriteLn (не забудьте также добавить операторные скобки begin и end для тела старшего цикла):
Так выводимая матрица будет уже выглядеть как матрица, а не хаотический набор символов.
Попробуйте самостоятельно написать программу, которая бы принимала с клавиатуры матрицу 3х3 и выводила бы матрицу 3х3, получаемую из исходной заменой столбцов строками (транспонированием):
a: array[1..3,1..3] of integer;
Источник: vunivere.ru