ЛАБОРАТОРНА РОБОТА
з дисципліни "Основи програмування"
на тему
Алгоритмічні мови: використання процедур при роботі з двовимірними масивами
Мета роботи: отримання навичок роботи з процедурами та двовимірними масивами.
Постановка завдання:
1. Вивчити способи опису і використання багатовимірних масивів, призначення процедур, їх опис та звернення до них.
2. Розбити завдання відповідного варіанта на підзадачі, таким чином, щоб рішення кожної підзадачі описувалося процедурою, а основна програма складалася з послідовності виклику процедур.
3. Програмно реалізувати алгоритми.
Завдання до роботи:
1. Дана матриця n * m. У кожній Строке вибрати мінімальний елемент, потім серед них знайти найбільший. Вивести індекси знайденого елемента.
2. Набрати програму, налагодити її, протестувати. Роздрукувати текст програми та результати її роботи на тестових даних.
Хід виконання роботи
1. Блок-схема:
-
+
-
+
Малюнок 1. Блок-схема програми
2. Текст програми
Program lab52;
Const
max = 10;
Type
mat = array [1 .. max] of array [1 .. max] of integer;
Var
a: mat;
b: array [1 .. max] of integer;
c: array [1 .. max] of Byte;
i, j: byte;
procedure vvod_m (Var a: mat; Var i, j: Byte);
Var x, y: byte;
Begin
Writeln ('Введіть мірність матриці');
Write ('i ='); readln (i);
Write ('j ='); readln (j);
Writeln ('Введіть масив:');
for x: = 1 to i do
for y: = 1 to j do
Begin
write ('a [', x ,',', y ,']=');
readln (a [x, y])
End
End;
Procedure Proc (a: mat; i, j: byte);
Var
b: array [1 .. max] of integer;
c: array [1 .. max] of Byte;
x, y: byte;
z: integer;
Begin
for x: = 1 to i do
Begin
z: = a [x, 1];
c [i]: = 1;
for y: = 2 to j do
if a [x, y] <z then
Begin
z: = a [x, y];
c [i]: = y
End;
b [x]: = z;
End;
z: = b [1];
y: = 1;
for x: = 2 to i do if b [x]> z then
Begin
z: = b [x];
y: = x
End;
Writeln ('Бажаємий елемент-a [', y ,',', c [y ],']=', a [y, c [y]]);
End;
Begin
vvod_m (a, i, j);
Proc (a, i, j)
End.
3. Результати роботи:
1. Тест № 1.
Шуканий елемент - a [2,1] = 3.
Малюнок 2. Результат тесту № 1.
2. Тест № 2.
Шуканий елемент - a [3,1] = 2.
Малюнок 3. Результат тесту № 2.