Описание массива
Способ 1. В разделе описания переменных var ИмяМассива: array[НижняяГраница..ВерхняяГраница] of ТипЭлементов; Способ 2. В разделе описания типов type ИмяМассива: array[НижняяГраница..ВерхняяГраница] of ТипЭлементов; Способ 3. В разделе описания констант const ИмяМассива: array[1..10] of integer=(5, 78, -45, 14, -63, 100, -789, 10, 1, 0); Заполнение массива данными (ввод элементов) Массив, описанный как типизированная константа, уже содержит данные. Массивы, объявленные в разделе описания переменных, необходимо заполнить данными, прежде чем выполнять с ними какие-либо действия. Значения элементов массива также можно задать следующими способами: · при вводе данных с клавиатуры: write('Введите количество элементов в массиве'); readln(n); for i:=1 to n do begin writeln('a[',i,']='); {Можно эту строчку в программе не использовать} readln (a[i]); end; · с помощью датчика случайных чисел: randomize; writeln('Введите количество элементов массива'); readln(n); for i:=1 to n do begin a[i]:=random(50); writeln('a(',i,')=',a[i]); end; · присваением заданных значений (например по формуле i*i/i+2): writeln('Введите количество элементов массива'); readln(n); for i:=1 to n do begin a[i]:=i*i/i+2; writeln('a(',i,')=',a[i]); end;
Вывод массива · вывод в столбец: for i:=1 to n do writeln(a[i]); · в одну строку, через пробел-разделитель: for i:=1 to n do writeln(a[i],' '); · с заданием формата (например, где под каждый элемент отводится 4 позиции): for i:=1 to n do writeln(a[i]:4); Обработка массивов Часто требуется вычислить сумму элементов массива, их среднее арифметическое значение или найти значения и номера максимального и минимального элементов, а также изменить значения элементов массива и т.д. Подробно все действия можно рассмотреть в задачах разобранных в этом разделе.
Сортировка элементов массива
Сортировка один из наиболее распространенных процессов современной обработки данных. Сортировкой называется распределение элементов множества по группам в соответствии с определенными правилами. Например, сортировка элементов массива, в результате которой получается массив, каждый элемент которого, начиная со второго, не больше стоящего от него слева, называется сортировкой по невозрастанию.
Выделяют несколько методов сортировки:
Идея линейной сортировки по невозрастанию (убыванию) заключается в том, чтобы, последовательно просматривая весь массив, отыскать наибольшее число и поместить его на первую позицию, обменяв его с элементом, который ранее занимал первую позицию. Затем просматриваются все остальные элементы массива и выполняется аналогичная операция по отбору из рассматриваемой части массива максимального элемента и обмену местами этого элемента и первого в рассматриваемой части и т.д.
Фрагмент программы: for i:=1 to n-1 do {Изменять размер неотсортированной части массива} for j:=i+1 to n do {Сравниваем поочередно i-й элемент неотсортированной части массива со всеми от i+1 – го элемента до конца} begin if a[i] < a[j ] then {Если в неотсортированной части массива нашли элемент, больший, чем i-й, то обменять их местами} begin k:=a[i]; a[i]:= a[j]; a[j]:= k; end; end; Один из самых популярных методов сортировки – «пузырьковый» метод основан на том, что в процессе исполнения алгоритма более «легкие» элементы массива постепенно «всплывают». Особенностью данного метода является сравнение не каждого элемента со всеми, а сравнение в парах соседних элементов. Алгоритм пузырьковой сортировки по убыванию состоит в последовательных просмотрах снизу вверх (от начала к концу) массива. Если соседние элементы таковы, что выполняется условие. Согласно которому элемент справа больше элемента слева, то выполняется обмен значениями этих элементов. Фрагмент программы: for i:=2 to n do {Сортировка «пузырьковым» методом по невозрастанию} for j:=n downto i do begin if a[j] < a[j+1 ] then {Если элемент справа больше элемента слева, т о «вытеснить» его влево – пузырек «всплывет»} begin k:=a[j]; a[j]:= a[j+1]; a[j+1]:= k; end; end;
|