- •Министерство образования Российской Федерации Пятигорский государственный технологический университет
- •Программирование и основы алгоритмизации Методические указания к выполнению курсовой работы
- •Содержание
- •1.Общие положения
- •2.Цели и задачи курсовой работы
- •3.Порядок и сроки выполнения курсовой работы
- •4.Порядок защиты курсовой работы
- •Примерные вопросы на защиту курсовой работы:
- •5.Структура и содержание работы
- •6.Требования к оформлению пояснительной записки
- •7.Задание на курсовую работу
- •8.Краткая теория Организация интерфейса программы. Использование модуля crt для организации интерфейса
- •Массивы. Сортировка элементов массива.
- •1). Сортировка выбором.
- •2). Сортировка обменом (методом "пузырька")
- •Решение системы линейных уравнений численными методами.
- •Метод Гаусса с выбором главного элемента по столбцу (схема частичного выбора).
- •Список литературы
- •Курсовая работа
- •На курсовую работу
Массивы. Сортировка элементов массива.
Массив представляет собой совокупность данных одного типа с общим для всех элементов именем. Элементы массива пронумерованы, и обратиться к каждому из них можно, указав его индекс (для одномерного массива) или несколько индексов (для многомерных массивов). В программировании количество индексов массива называют его размерностью.
Массив относится к группе структурных типов и описывается в разделе описания переменных в следующей форме:
Var <идентификатор>: Аrrау[<тп индекса>] Of <mun компонент>;
Тип индекса может быть любым скалярным порядковым типом, кроме longint. Чаще всего в качестве типа индекса употребляется интервальный тип. Например, одномерный массив А, состоящий из 12 вещественных чисел опишется следующим образом:
Var А: аггау[1..12] Of Real;
Описание массива определяет, во-первых, размещение массива в памяти, во-вторых, правила его дальнейшего употребления в программе. Последовательные элементы массива располагаются в последовательных ячейках памяти (А[ 1 ], А[ 2 ] и т. д.), причем значения индекса не должны выходить из диапазона 1 .. 12. В качестве индекса может употребляться любое выражение соответствующего типа. Например, A [i+j], A [m div 2].
Например, в программе могут присутствовать следующие описания: Var Cod: array [Char] Of 1..100;
L: array [Boolean] Of Char;
В такой программе допустимы следующие обозначения элементов массивов:
Cod ['х']; L[true]; Cod[chr(65)]; L[a>0];
Алгоритмы сортировки элементов массива.
Под сортировкой массива подразумевается процесс перестановки Элементов с целью упорядочивания их в соответствии с каким-либо критерием. Например, если имеется массив целых а, то после сортировки по возрастанию должно выполниться условие:
а'1,≤ а'2 ≤ ,...,≤ а'п
Так как можно сравнивать переменные типов INTEGER, REAL, CHAR и STRING, то можно сортировать массивы этих типов.
Задача сортировки распространена в информационных системах и используется как предварительный этап задачи поиска, так как поиск в упорядоченном (отсортированном) массиве проводится намного быстрее, чем в неупорядоченном.
Существует много методов (алгоритмов) сортировки массивов. Рассмотрим два метода:
метод прямого выбора
метод прямого обмена
1). Сортировка выбором.
Пример. Используя сортировку выбором, упорядочить по возрастанию элементы одномерного массива, состоящего из 5 целых чисел. Для демонстрации процесса сортировки программа выводит массив после каждого обмена элементов.
Program Sort_Vybor;
Const
size=5;
Var
a: array[1.. size ] of integer;
i: integer; { номер элемента, от которого ведется поиск мин. эл-та.}
min: integer; { номер минимального элемента}
j: integer; { номер элемента, сравниваемого с минимальным}
buf: integer; { буфер, используемый при обмене элементов массива}
k: integer;
Begin
writeln (′Сортировка массива.′ );
write (′Введите′ ֽ size:3 ֽ′ целых в одной строке ′ );
writeln (′через пробел и нажмите <Enter>′ );
for k:=1 to size do read (a [k] );
writeln (′Сортировка ′ );
for i:=1 to size-1 do
Begin
{ поиск мин. элемента в части массива от a(i) до a(size) }
min:=I;
for j:=i+1 to size do begin
if a[j]< a[min] then min:=j;
{ поменяем местами a[min] и a[i] }
buf:= a[i];
a[i]:= a[min];
a[min]:= buf;
{ выведем массив }
for k:=1 to size do write(a[k], ′ ′ );
writelen;
end;
end;
writeln (′ Массив отсортирован. ′ );
end.
