Массивами называются упорядоченный набор данных одного типа. Для обработки массива вводят его имя, а элементы пронумеровывают.
Описание массива можно представить следующей схемой.
Array [ тип индекса ] of тип;
В типах индекса, по одному для каждой размерности массива, указывается число элементов. Допустимыми типами индекса являются все порядковые типы, за исключением Longint и поддиапазонов Longint. Число размерностей является неограниченным.
Массив можно описать двумя способами:
1. В разделе описания переменных
var array[ t1 ] OF t2;
где t1-тип индекса, t2-тип элемента массива, t1- любой простой тип, кроме real и integer.
var a:array [1..100] of Rea; b,c,d:array[char] of integer;
2. В разделе описания типов.
type =arrey [t1] of [t2]; var :;
type mas=array[1..5] of real; var a:mas;
Для доступа к элементам массива необходимо указать идентификатор массива в скобках.
Например: a[1] , a[100].
Для ввода массива с клавиатуры и для вывода на экран используются циклы. Можно вводить по другому, с помощью типизированных констант.
Работа с массивами Pascal
туре word=array[1..5] of real; const a_word=[5,-7,2,-8,32];
Действия, выполняемые над элементами массива:
- Все операции допустимые для базового типа массива.
- В качестве индекса может быть выражения, переменная или константа.
- Элементы массива могут стоять как в левой части выражений, так и в самих выражениях.
A[ I ]:=5; S:=A[ I ] — 5;
Если тип компоненты в типе массив также является массивом, то результат можно рассматривать как массив массивов или как один многомерный массив. Например:
Ввод и вывод элементов многомерных массивов осуществляется при помощи вложенных циклов.
Источник: itteach.ru
Similar Pascal. Массивы
Массив — это тип данных, который может содержать произвольное количество значений произвольных типов (элементов). Программист может обратиться к любому элементу массива указав порядковый номер элемента. Тип массива в программе описывается как «Array Of Variant».
Procedure OnCreate; Var A : Array Of Variant; Begin End;
Array.Count — размер массива
Для получения или изменения размера массива используется свойство Count
Procedure OnCreate; Var A : Array Of Variant; Begin // Сейчас массив A содержит 0 элементов A.Count := 10; // Теперь массив A содержит 10 элементов End;
Array[N] или Array.Item(N) — Элемент массива
Доступ к элементу массива осуществляется с помощью оператора [], либо с помощью метода Item.
Procedure OnCreate; Var A : Array Of Variant; X : Variant; N : Integer; Begin A.Count := 10; A[7] := ‘A’; // Установка значения 7-ого элемента A.Item(4) := 1000; // Установка значения 4-ого элемента N := 4; A[N] := 4.1; // Установка значения 4-ого элемента X := A[7]; // Получение значения 7-ого элемента и запись этого значения в переменную X Warning(A[4] As String); // Получение значения 4-ого элемента и вывод его на экран End;
Array.Append — Добавление элемента в массив
Для добавления элемента в конец массива предназначен метод Append
ИНФОРМАТИКА 9 класс: Массивы в Паскале | Одномерные массивы. Описание, заполнение вывод массива
A.Append(15);
Остальные методы массива описаны в разделе справки Класс Array.
Ограничение типов значений
В языке программирования предусмотрена возможность ограничить типы значений, которые можно сохранить в массиве. Такие типы в программе описываются как Array Of Integer, Array Of Boolean, Array Of Dataset.
Procedure OnCreate; Var A : Array Of Integer; Begin A.Count := 10; A[4] := 1000; // Установка значения 4-ого элемента A[7] := ‘A’; // Вы не можете сохранить в массив строку End;
Копирование массивов
Массивы можно копировать с помощью оператора :=.
Procedure OnCreate; Var A, B : Array Of Integer; Begin A.Count := 5; A[3] := 100; B := A; A[3] := 200; Warning(‘A=[‘+ToStr(A)+’] B=[‘+ToStr(B)+’]’); // A=[0,0,0,200,0] B=[0,0,0,100,0] End;
Команда []
Для удобного описания массивов предназначена команда []
Procedure OnCreate; var A : Array Of String; I : Integer; Begin A := [’10’,’20’,’30’,’40’,’50’]; Warning(‘1) ‘+A[2]); // 1) 30 Warning(‘2) ‘+[’10’,’20’,’30’,’40’,’50’][2]); // 2) 30 I := [’10’,’20’,’30’,’40’,’50’].Find(’40’); Warning(‘3) ‘+IntToStr(I)); // 3) 3 End;
При описании массива допускается использование арифметических выражений
Procedure OnCreate; var X : Float; A : Array Of Float; Begin X := 0.34; A := [X, X+2, X*X, Sin(X)]; End;
Копирование массивов в переменные типа Array и Variant
Все массивы можно скопировать в переменные типа Array или Variant. При этом создается копия массива, изменение которой не влияет на исходный массив.
Procedure OnCreate; Var A : Array Of Variant; B : Array Of Integer; C : Array Of String; V : Array; Begin A := [12,’A’,-0.12]; V := A; Warning(ToStr(V)); // 12,A,-0.12 B := [10,20,30]; V := B; Warning(ToStr(V)); // 10,20,30 C := [‘Привет’,’мир’]; V := C; Warning(ToStr(V)); // Привет,мир End;
Это преобразование может использоваться для передачи произвольного массива в процедуру.
Procedure OnCreate; Var A : Array Of Variant; B : Array Of Integer; C : Array Of String; Begin A := [12,’A’,-0.12]; Print(A); // 12,A,-0.12 B := [10,20,30]; Print(B); // 10,20,30 C := [‘Привет’,’мир’]; Print(C); // Привет,мир End; Procedure Print(A : Array); Begin Warning(ToStr(A)); End;
Так же любой массив можно скопировать в переменную типа Variant.
Это преобразование так же можно использовать для передачи произвольного массива в процедуру, но при этом, в процедуру можно передать и любое другое значение. Тип данных Variant работает медленее, чем Array.
Procedure OnCreate; Var A : Array Of Variant; B : Array Of Integer; C : Array Of String; V : Variant; Begin A := [12,’A’,-0.12]; V := A; Warning(V.Item(1) As String); // A B := [10,20,30]; V := B; Warning(V.Item(1) As String); // 20 C := [‘Привет’,’мир’]; V := C; Warning(V.Item(1) As String); // мир End;
Источник: tmaplatform.ru
Паскаль – Массивы
Язык программирования Pascal предоставляет структуру данных, называемую массивом, в которой можно хранить последовательную коллекцию элементов одного и того же типа. Массив используется для хранения коллекции данных, но часто более полезно думать о массиве как о коллекции переменных одного типа.
Вместо того, чтобы объявлять отдельные переменные, такие как number1, number2, … и number100, вы объявляете одну переменную массива, такую как числа, и используете числа [1], числа [2] и …, числа [100] для представления отдельные переменные. Определенный элемент в массиве доступен по индексу.
Все массивы состоят из смежных областей памяти. Самый низкий адрес соответствует первому элементу, а самый высокий адрес – последнему.
Обратите внимание, что если вы хотите, чтобы массив в стиле C начинался с индекса 0, вам просто нужно начать индекс с 0, а не с 1.
Объявление массивов
Чтобы объявить массив в Pascal, программист может либо объявить тип, а затем создать переменные этого массива, либо напрямую объявить переменную массива.
Общая форма объявления типа одномерного массива –
type array-identifier = array[index-type] of element-type;
- идентификатор массива – указывает имя типа массива.
- index-type – указывает индекс массива; это может быть любой скалярный тип данных, кроме реального
- element-type – определяет типы значений, которые будут сохранены
идентификатор массива – указывает имя типа массива.
index-type – указывает индекс массива; это может быть любой скалярный тип данных, кроме реального
element-type – определяет типы значений, которые будут сохранены
type vector = array [ 1..25] of real; var velocity: vector;
Теперь, скорость – это переменный массив векторного типа, которого достаточно для хранения до 25 действительных чисел.
Чтобы начать массив с индекса 0, объявление должно быть –
type vector = array [ 0..24] of real; var velocity: vector;
Типы Array Subscript
В Pascal индекс массива может иметь любой скалярный тип, например, целое число, логическое значение, перечисление или поддиапазон, кроме действительного. Индексы массива также могут иметь отрицательные значения.
type temperature = array [-10 .. 50] of real; var day_temp, night_temp: temperature;
Давайте рассмотрим еще один пример, где индекс имеет символьный тип –
type ch_array = array[char] of 1..26; var alphabet: ch_array;
Индекс может быть перечисляемого типа –
type color = ( red, black, blue, silver, beige); car_color = array of [color] of boolean; var car_body: car_color;
Инициализация массивов
В Pascal массивы инициализируются посредством присваивания, либо путем указания конкретного нижнего индекса, либо с помощью цикла for-do.
type ch_array = array[char] of 1..26; var alphabet: ch_array; c: char; begin . for c:= ‘A’ to ‘Z’ do alphabet[c] := ord[m]; (* the ord() function returns the ordinal values *)
Доступ к элементам массива
Доступ к элементу осуществляется путем индексации имени массива. Это делается путем помещения индекса элемента в квадратные скобки после имени массива. Например –
a: integer; a: = alphabet[‘A’];
Вышеприведенный оператор возьмет первый элемент из массива с именем alphabet и присвоит значение переменной a.
Ниже приведен пример, который будет использовать все три вышеупомянутых понятия, а именно. декларация, назначение и доступ к массивам –
program exArrays; var n: array [1..10] of integer; (* n is an array of 10 integers *) i, j: integer; begin (* initialize elements of array n to 0 *) for i := 1 to 10 do n[ i ] := i + 100; (* set element at location i to i + 100 *) (* output each array element’s value *) for j:= 1 to 10 do writeln(‘Element[‘, j, ‘] = ‘, n[j] ); end.
Когда приведенный выше код компилируется и выполняется, он дает следующий результат –
Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109 Element[10] = 110
Массивы Паскаля в деталях
Массивы важны для Паскаля и должны требовать больше подробностей. Существует несколько важных понятий, связанных с массивом, которые должны быть понятны программисту на Паскале:
Паскаль поддерживает многомерные массивы. Простейшей формой многомерного массива является двумерный массив.
В массивах этого типа начальная длина равна нулю. Фактическая длина массива должна быть установлена с помощью стандартной функции SetLength .
Эти массивы упакованы битами, т. Е. Каждый символ или значения истинности хранятся в последовательных байтах вместо использования одного блока хранения, обычно слова (4 байта или более).
Вы можете передать подпрограмме указатель на массив, указав имя массива без индекса.
Источник: coderlessons.com