Алгоритм
Должен содержать следующие шаги:
- Открытие входного и выходного файлов. Текстовый входной файл связывается с набором данных с вещественными числами 'S:\KURS_1\_DATA\ DATF.TXT' и открывается для чтения. Выходной файл связывается с новым набором данных 'UMNIК5.RES' (т.к. без указания пути – значит в текущем каталоге) и открывается для записи.
- Ввод количества строк массива. Контроль на попадание M в диапазон 2..7. Потребуется метка возврата (Vvod_M).
- Ввод количества столбцов массива. Контроль на попадание N в диапазон 2..7. Потребуется метка возврата (Vvod_N).
- Двойной цикл заполнения массива числами из файла. Запрос на ввод не требуется, так как ввод из файла. Контроль не требуется.
- Распечатка исходного массива. Сначала печать заголовка ("Исходный массив"), затем печать по строкам с форматом, выделяя на число 10 позиций. После печати каждой строки массива – переход на новую запись в выходном файле.
- Поиск столбца с минимальным элементом, запоминание его номера. Двойной цикл (по всем элементам массива), перед которым первый элемент запоминается в переменной Amin, а в переменной для номера Jmin запоминается 1.
- Определение признака незанятого элемента выходного массива. В качестве признака незанятого элемента выходного массива следует использовать число, которое наверняка не встречается в исходном массиве. Таким числом будет любое, меньшее чем минимальное в массиве, в частности Amin –1.
- Цикл заполнения выходного массива признаком незанятого места. Простой цикл присваивания M элементам массива A значения Pr.
- Цикл работы с "i-м" элементом сортируемого столбца:
a) Цикл расчета числа элементов, меньших "i-го". Перед циклом ki делаем равным не нулю, а единице, т.к. после подсчета числа элементов, меньших данного, его выходной номер должен стать на единицу больше этого числа.
b) Поиск места в выходном массиве, для рассматриваемого элемента. Если найденное место уже занято, следует двигаться дальше по массиву, пока не встретится незанятое место. Этот процесс необходим, если в сортируемом ряду несколько одинаковых чисел, претендующих, на одно и тоже место.
- Печать номера сортированного столбца.
- Печать отсортированного массива (начинается с печати заголовка "Упорядоченный массив"), и печать одномерного выходного массива с тем же форматом, что и для входного массива.
- Закрытие файлов.
При оформлении лабораторной работы, алгоритм следует изобразить в форме блок-схемы.