Под поиском заданного элемента массива понимается необходимость определить, содержит ли массив определенную информацию или нет. Наиболее простой алгоритм поиска – простой перебор неупорядоченных элементов.
Поиск осуществляется последовательным сравнением элементов массива с образцом до тех пор, пока не будет найден элемент, равный образцу, или пока не будут проверены все элементы.
Для поиска элементов удобно использовать операторы цикла For, Repeat..until или While..do.
Задача2. Найти заданный элемент в массиве и вывести его на экран дисплея.
признак
отсутствия
признак
обнаружения
Новые стандартные процедуры:
Процедура Break позволяет досрочно завершить цикл, не дожидаясь его окончания.
Процедура Continue позволяет начать новую итерацию цикла, даже если предыдущая не завершена.
Под сортировкой массива подразумевается процесс перестановки элементов массива, с целью размещения элементов массива в определенном порядке.
Например, для целых чисел А после сортировки по возрастанию должно выполняться условие:
A[1] £ A[2] £ A[3] £ . . . £ A[size], где size – верхний индекс
Алгоритм сортировки:
1. Просмотреть массив от 1 элемента, найти min элемент и поместить его на место 1 элемента, а 1-й на место min.
2. Просмотреть массив от 2 элемента, найти min элемент и поместить его на место 2 элемента, а 2-й на место min
3. И так далее до последнего элемента.
Элементы массива А
A[ 1 ]= 2
A[ 2 ]= 6
A[ 3 ]= -5
A[ 4 ]= 3
A[ 5 ]= 20
A[ 6 ]= -10
A[ 7 ]= 8
A[ 8 ]= 0
A[ 9 ]= 9
A[ 10 ]= -2
Сортировка массива
-10 6 -5 3 20 2 8 0 9 -2
-10 -5 6 3 20 2 8 0 9 -2
-10 -5 -2 3 20 2 8 0 9 6
-10 -5 -2 0 20 2 8 3 9 6
-10 -5 -2 0 2 20 8 3 9 6
-10 -5 -2 0 2 3 8 20 9 6
-10 -5 -2 0 2 3 6 20 9 8
-10 -5 -2 0 2 3 6 8 9 20
-10 -5 -2 0 2 3 6 8 9 20
Отсортированный массив
-10 -5 -2 0 2 3 6 8 9 20
Задача3. Отсортировать массив целых чисел по возрастанию.
// вещественных чисел состоящий из 3 строк и 2 столбцов
A=Array [1 . . 8 ] of Real; //Тип - массив из 8 вещественных чисел
или
S: Array [ ' a '. . ' z ' ] of Char ; //одномерный массив S символьного типа
или
B : Array[1..6] of integer=(1,5,3,-2,0,3); // одномерный массив из 6 целых чисел
При работе с массивами необходимо помнить об ограничении на размер общей памяти под переменные (64 Кбайт).
Общая память под переменные £ 64 Кбайт.
При объявлении массива удобно использовать именованные константы, которые объявляются в разделе констант, перед разделом переменных.
Например:
N=12; //число команд
SN=50; //предельная длина названия команды
team: array[1 . . N] of string[SN];
При обращении к элементу массива, надо указать его имя и номер элемента в квадратных скобках:
. . .
team[ 1 ] := ’CSK’;
S:=S+A[2];
. . .
При объявлении массива в разделе переменных модуля одновременно с объявлением массива можно выполнить его инициализацию, т.е. присвоить начальные значения элементам массива.
Формат объявления массива с инициализацией:
<Имя>=array [<нижний индекс . .верхний индекс>] of <тип>= (список);
//одномерный массив
<Имя>=array [<нижний индекс . .верхний индекс>строк,
<нижний индекс . .верхний индекс>столбцов,] of <тип>= (список);
//двумерный массив
Например:
program Example1;
…
SysUtils;
Team: array[1..5] of string[10]=('Zenit', 'Dinamo', 'Spartak', 'Rotor', 'CSK');
А: array[1..4,1..4] of integer=((0,2,4,6),(2,9,6,3),(4,7,5,8), (1,6,5,7));
. . .
Количество элементов списка инициализации должно соответствовать размерности массива. Иначе компилятор выведет сообщение об ошибке.
Локальный массив (в процедуре) можно инициализировать во время выполнения программы в цикле.
Например:
Writeln( 'Vvedite', i, 'element massive А' );
Readln( А [ i ] ); //ввод элемента массива А
end;
Операции, производимые над элементами массива, полностью определяютсятипом этих элементов.
Под выводом массива понимается вывод на экран монитора значений элементов массива.
При выводе всех элементов массива удобно использовать оператор цикла for, при этом переменная счетчик может быть использована в качестве индекса элементов массива.