- •Лабораторная работа
- •Var a, b : vector_1;
- •Var a, b : array[1..5] of Integer;
- •Var {Описание переменных}
- •I,j : Integer;
- •I,j : Integer;
- •2 Строка: наибольший элемент в 7 столбце равен 0.696
- •4 Строка: наибольший элемент в 4 столбце равен 1.989
- •6 Строка: наибольший элемент в 7 столбце равен 0.960
- •I,j,k:Integer;
- •Задание 2 . Составить программы для решения двух задач.
Лабораторная работа
Тема - операции с массивами.
Цель работы - изучение операций с одномерными и многомерными массивами.
Общие сведения
Массив - это упорядоченная совокупность однотипных данных. Каждому элементу массива соответствует один или несколько индексов, определяющих положение элемента в массиве. Индексы образуют упорядоченные последовательности. Синтаксическая диаграмма объявления массива представлена на рис
Рис. 4. Синтаксическая диаграмма <Объявление массива>
Например:
Var
a, b : array [1..5] of real ;
c, d : array [-7..3] of integer ;
Тип индекса определяет его допустимые значения. В качестве типа индекса может быть указан любой порядковый тип (boolean, char, integer, перечисляемый тип, а также диапазоны этих типов), кроме типа longint и его производных.
В зависимости от количества типов индексов различают: одномерные, двумерные, трехмерные и n-мерные массивы. Одномерные массивы обычно называют векторами, а двумерные – матрицами, считая первый индекс – номером строки, а второй – номером столбца.
Тип элементов массива – любой допустимый в Турбо Паскале тип (в том числе и массив), кроме файла.
Использование массивов существенно упрощает работу с однотипными данными, ускоряет обращение к ним и сокращает размер используемой памяти, так как все данные получают общий начальный адрес. Максимальный объём памяти, который может занимать массив, в Турбо Паскале составляет 65520 байт.
Многомерные массивы в Турбо Паскале могут быть описаны двумя способами. Первый способ описания массива заключается в объявлении его в операторе объявления переменных, например:
Var
a : array [0..3] of array [5..7] of real;
или
Var
a: array [0..3,5..7] of real ;
Обратите внимание на следующие правила:
1. Нижняя граница диапазона должна быть не меньше верхней.
2. Между верхней и нижней границами диапазонов ставятся две точки и не должно быть никаких пробелов.
3. У многомерных массивов диапазоны разделяются запятыми, количество измерений не ограничено (за исключением, конечно, правила о 65520 байтах).
4. Границы диапазонов находятся в пределах либо -32768..32767, либо 0..65535.
5. В качестве границ диапазонов могут использоваться не только числа, но и определённые к этому моменту константы.
Второй, более удобный и гибкий способ описания массивов заключается в предварительном введении типов.
Например, описания массивов
Var
a, c : array [1..3] of real ;
b, d : array [5..7,1..3] of real
и
Const
k1 = 1 ; k2 = 3 ; l1 = 5, l2 = 7;
type
vector = array [k1..k2] of real ;
matrix = array [l1..l2] of vector;
Var
a, c : vector;
b, d : matrix
эквивалентны между собой.
Элемент одномерного массива обозначается с помощью названия массива и индекса, заключённого в квадратные скобки, например a[k]; индексы элемента многомерного массива могут быть перечислены в квадратных скобках через запятые или быть заключены в отдельные квадратные скобки, например b[2,10] или b[2][10]. При этом b[2] представляет собой одномерный массив.
Почти все действия с массивами осуществляются поэлементно, например:
a[2] :=3;
read(b[5,6]) ;
a[2] := c[3] + d[7] ;
WriteLn(c[3] : 5 :2, c[3] - d[5] : 5 : 1);
Исключения составляют лишь присваивание всем элементам одного массива таких же значений, как у элементов другого массива и сравнение идентичности всех элементов двух массивов. Чтобы эти операции были возможны, необходимо оба массива описать совместно (в одном списке), либо предварительно ввести тип и использовать при описании массивов идентификатор типа. Например:
Type vector_1 = array[0..10] of real;