ОДНОМЕРНЫЕ МАССИВЫ. СПОСОБЫ ЗАДАНИЯ ОДНОМЕРНЫХ МАССИВОВ. Понятие массива
Определение массива Массив это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. Элементы массива располагаются в последовательных ячейках памяти, обозначаются именем массива и индексом. Например: a[1], mas[12], student[5]. Каждое из значений, составляющих массив, называется его компонентой (или элементом массива).
Пример массива Числовая последовательность четных натуральных чисел 2, 4, 6,..., N представляет собой линейный массив, элементы которого можно обозначить А[1]=2, А[2]=4, А[3]=6,..., А[К]=2*К, где К номер элемента, а 2, 4, 6,..., N значения. Индекс (порядковый номер элемента) записывается в квадратных скобках после имени массива. Например, A[7] седьмой элемент массива А; D[6] шестой элемент массива D.
Описание массива в Паскале Массив описывается так: имя массива:Array[начальный индекс..конечный индекс] Of тип данных; Например, Var B : Array [1..5] Of Real, R : Array [1..34] Of Char; описывается вещественный массив В, состоящий из 5 элементов и символьный массив R, состоящий из 34 элементов. Для массива В будет выделено 5*6=30 байт памяти, для массива R 1*34=34 байта памяти.
Другие способы описания массивов Как типы: Type mass = Array[1..3] of Byte; Var b:mass; Как константы: Сonst a: Array[1..3] of Byte = (5,10,2);
Сортировка объектов "Даже если бы сортировка была почти бесполезна, нашлась бы масса причин заняться ею! Изобретательные методы сортировки говорят о том, что она и сама по себе интересна как объект исследования." /Д. Кнут/ "Создается впечатление, что можно построить целый курс программирования, выбирая примеры только из задач сортировки." /Н. Вирт/
Задача Даны две целочисленные переменные х и y. Составить фрагмент программы, после выполнения которого значения этих переменных распределяются в порядке убывания. Алгоритм Обмен значений переменных нужно производить лишь в том случае, если х<у. Для того чтобы не потерять начальное значение переменной х, введем дополнительную переменную t.
Фрагмент программы if x<y then Begin t:=x; x:=y; y:=t; End;
Задача Составить фрагмент программы поиска максимального числа из трех введенных с клавиатуры чисел. Алгоритм Используем идею предыдущей задачи. Перед началом поиска выберем условно в качестве максимального первый элемент массива Max:=a[1]. Затем по очереди каждый элемент массива сравним со значением переменной m. Если он окажется больше, то изменим значение Max. После анализа всех элементов массива переменная Max содержит значение максимального элемента массива.
Фрагмент программы... Max:=a[1]; for i := 2 to 10 do if Max<a[i] then Max := a[i];...
Программа для сортировки массива Рrogram Sorting; Сonst n =... ; {количество элементов в массиве} Type TArray = array [1..n] of integer;
Программа для сортировки массива Procedure FillArray (Var a: TArray); Var i: integer; Begin for i: = 1 to n do a [i] := Random(100); End; {конец процедуры}
Программа для сортировки массива Procedure PrintArray (a: TArray); Var i: integer; Begin for i: = 1 to n do write (a [i]: 3, ' '); writeln; End;
Программа для сортировки массива Begin {Главная программа} Writeln('Заполняем исходный массив: '); FillArray (a); PrintArray (a); AnySort (a);{имя процедуры, реализующей данный метод} Writeln('Отсортированный массив: '); PrintArray (b); End.
Общие принципы сортировки Для реализации различных методов сортировки Вам необходимо подготовить несколько вспомогательных процедур и функций. Функция, которая ищет минимальный элемент правее некоторого заданного и возвращает его номер в качестве результата. Аргументами функции являются номер элемента массива и обрабатываемый массив: Большинство методов сортировок основаны на обмене двух чисел. Для этой цели предназначена процедура, которая в качестве параметров берет два числа и меняет их значения Также Вам пригодится процедура, которая берет элемент с индексом i, перемещает его на место элемента с номером j. А все элементы, которые имеют индексы от j до i-1 сдвигает на одну позицию вправо.