Реферат: Програмирование на языке Паскаль
Per – целочисленные элементы периметра;
N, M – количество строк и столбцов матрицы;
L – количество элементов по периметру подматрицы;
mf – флаг ввода исходной матрицы – true, false– матрица не введена;
fileresu, filework – текстовые файлы с исходной матрицей и с результатом соответственно;
fil – способ вывода результата true – в файл, false – на экране в окне;
f – способ получения результата false– все подматрицы или true– по условию.
Стандартные модули: crt, app, objects, menus, drivers, views, dialogs, msgbox, memory, dos, stddlg, editors и собственный модуль: mod_matr.
4 Разработка алгоритмов
Опишем основные процедуры и функции программы.
Процедура GetRandomMatrix.
Процедура автоматического ввода матрицы со значениями.
Схема алгоритма данной процедуры представлена на рисунке 1.
Рисунок 1 – Схема алгоритма процедуры GetRandomMatrix.
3 блок – вводим количество строк n, количество столбцов m и максимальное predзначение элемента матрицы, 4-6 блоки – вводим случайные элемента матрица, не превышая pred, 7 блок – устанавливаем флаг в true, т. е. матрица введена, 8 блок – выводим матрицу в окне программы.
Процедура InputMatrix.
Процедура ввода матрицы со значениями вручную.
Схема алгоритма данной процедуры представлена на рисунке 2.
Рисунок 2 – Схема алгоритма процедуры InputMatrix.
3 блок – вводим количество строк n, количество столбцов m, 4-6 блоки – вводим элементы матрицы, 7 блок – устанавливаем флаг в true, т. е. матрица введена, 8 блок – выводим матрицу в окне программы.
Процедура Sort.
Процедура сортировки значений периметра подматрицы по возрастанию.
Схема алгоритма данной процедуры представлена на рисунке 3.
Рисунок 3 – Схема алгоритма процедуры Sort.
2, 3 блок – перебираем элементы периметра подматрицы, 4 блок – сравниваем текущее значение элемента матрицы меньше следующего, если да то переходим к 5 блоку, иначе к 3, 5 блок – меняем значения местами.
Процедура GetPerimetr.
Процедура определения элементов подматрицы по периметру.
Схема алгоритма данной процедуры представлена на рисунке 4.
Рисунок 4 – Схема алгоритма процедуры GetPerimetr.
2, 3 блок – обнуляем значения элементов периметра, 4 блок – количество элементов в перимерте = 1, 5, 6 блоки – перебираем элементы столбца периметра и заносим в массив per, 7, 8 блоки – перебираем элементы строки периметра и заносим в массив per, 9 блок – заносим в переменную l количество элементов в периметре подматрицы.
Функция GeomProg.
Функция определения геометрической прогрессии из элементов периметра подматрицы.
Схема алгоритма данной функции представлена на рисунке 5.
Рисунок 5 – Схема алгоритма процедуры GeomProg.
2 блок – вызов процедуры сортировки, 3 блок – флаг образования геометрической прогрессии, 4 блок – второе значение элемента массива периметра делим на первое, 5 блок – перебираем элементы массива периметра, 6 блок – следующее значение элемента массива делим на текущее и сравниваем с dv, 7 блок – не геометрическая прогрессия.
5 Текст программы
programMTRKW; {программа }
uses
mod_matr;
begin
Randomize;