Поскольку, при выводе каждого из массивов A, B, C1, C2 на экранную форму в визуальный элемент типа TMemo, используется одинаковая последовательность действий, целесообразно для вывода разработать отдельную процедуру, со следующим синтаксисом:
procedure VIVOD (A:array of integer;Memo:TMemo;sNazv:String);
где, А — массив, элементы которого необходимо вывести на форму;
Memo — объект, в который производится вывод;
sNazv — строка, задающая текстовое название массива (выводится перед массивом).
В теле процедуры последовательно формируется строка, в которой перечисляются элементы массива через точку с запятой. После того как строка сформирована, она заносится в конец объекта Memo. Также процедура позволяет задать некоторое название массива для вывода перед элементами в качестве параметра sNazv.
Алгоритм этой процедуры приведен на рисунке А.5, а код в строках 35−51 листинга из приложения Б.
Описание процедуры SORT_UB
Предназначена для сортировки массива по убыванию методом выбора. Суть этого метода заключается в том, что при сортировке массива a[1], a[2], …, a[n] по убыванию методом простого выбора организуется цикл из n-1 проходов (n — размерность массива). На каждом проходе среди всех элементов a[i], … a[n] находится элемент с максимальным значением, и этот элемент меняется местами с элементом a[i]. Таким образом, при одном прогоне самый максимальный элемент оказывается на первом месте массива. На следующем прогоне необходимо уже искать максимум во всем массиве кроме первого элемента, а когда найдем его, то поменять местами со вторым элементом массива, на третьем прогоне поиск максимума осуществляется с 3-го элемента и до конца и он меняется местами с третьим элементом и так далее. Учитывая, что нумерация элементов массивов ведется с 0, можем записать алгоритм следующим образом:
- 1. Принять номер шага i=0.
- 2. Среди элементов a[i], a[i+1],., a[n-1] найти максимальный элемент.
Пусть это элемент a[iMax].
- 3. Поменять местами элементы а[i] и a[iMax].
- 4. Нарастить номер шага i= i+1;
- 5. Если i<(n-1), перейти на шаг 2. Если i=(n-1) конец алгоритма сортировки.
Алгоритм процедуры приведен на рисунке А.3, а код приведен в строках 52−69 листинга из приложения Б.