
Математическая модель задачи.
Задача представлена следующим образом:
Элемент матрицы является седловой точкой, если он является наименьшим в своей строке и наибольшим в своем столбце (или наоборот: наибольшим в своей строке и наименьшим в своем столбце). Для заданной матрицы определить все седловые точки.
Исходные данные:
Переменная Min, для нахождения минимального значения в массиве, вне зависимости от координат значения (тип данных: integer);
Переменная Max, для нахождения максимального значения в строке\столбце, вне зависимости от координат (тип данных: integer);
Промежуточные данные:
Переменная x, необходимая для определения размера массива, и нахождения адреса элемента (тип данных: integer);
Переменная y, необходимая для определения размера массива, и нахождения адреса элемента (тип данных: integer);
Переменная InMin, необходимая для сравнения минимального значения в массиве, выполняет функцию запоминания минимального значения и в дальнейшем сравнения с другими значениями (тип данных: integer);
Переменная InMax, необходимая для сравнения максимального значения в массиве, выполняет функцию запоминания максимального значения и в дальнейшем сравнения с другими значениями (тип данных: integer);
Выходные данные:
Переменная Min, имеющая необходимое минимальное значение в строке\столбце (тип данных: integer);
Переменная Max, имеющая необходимое минимальное значение в строке\столбце (тип данных: integer);
Переменная x, в которой находятся координаты максимальной и минимальной точек (тип данных: integer);
Переменная y, в которой находятся координаты максимальной или минимальной точки (тип данных: integer);
Практическая часть.
Описание алгоритма.
Создание массива, заполненного случайными числами, размером 15х15 из интервала [-20];[50].
Поиск элементов, в записи которых присутствует цифра 5.
При нахождении таких элементов, удаление их из массива.
Поиск элементов, кратных своему номеру
Ввод числа под именем “k”,
При нахождении элемента, кратного своему, вставить после него значение числа “k”
Поиск первого положительного и последнего отрицательного элементов
Поменять местами эти элементы
Текст программы (с комментариями).
Const n = 15;
Type myMas = Array [ 1 .. 2*n ] of integer;
Var
a : myMas;
i, j, k, n2 : integer;
begin
randomize;
n2 := n;
Write('k: ');
ReadLn(k);
for i := 1 to n do
begin
a[ i ] := random(71)-20;
write(a[ i ]:5);
end;
WriteLn; WriteLn;
for i := n downTo 1 do
if (a[ i ] mod i = 0) then
begin
for j := n2 downTo i do a[ j+1 ] := a[ j ];
n2 := n2 + 1;
a[ i+1 ] := k;
end;
for i := 1 to n2 do write(a[ i ]:5);
readLn;
end.
Тестирование.
(см. Приложение 1)
Введенные числа |
Результат выполнения работы |
Ожидаемый результат |
|
|
|