Консультация № 197150
20.11.2019, 09:44
0.00 руб.
0 1 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:Написать модуль, который находит минимальный элемент
каждой строки двумерного массива и меняет его местами с
первым элементом данной строки.

Обсуждение

давно
Профессор
401888
1232
20.11.2019, 12:49
общий
это ответ
Здравствуйте, kondrat322!
Модуль
[code lang=pascal]unit matrix;
interface
type mtr=array[1..10,1..20] of integer;
procedure vvod(var a:mtr;var m,n:integer);
procedure vyvod(a:mtr;m,n:integer;s:string);
function min(a:mtr;n,k:integer):integer;
procedure obmen(var a:mtr;n,k,imn:integer);
implementation
//процедура ввода матрицы
procedure vvod(var a:mtr;var m,n:integer);
var i,j:integer;
begin
repeat
write('Введите количество строк от 2 до 10 m=');
readln(m);
until m in [2..10];
repeat
write('Введите количество столбцов от 2 до 20 n=');
readln(n);
until n in [2..20];
for i:=1 to m do
for j:=1 to n do
a[i,j]:=random(100);
end;
//процедура вывода матрицы
procedure vyvod(a:mtr;m,n:integer;s:string);
var i,j:integer;
begin
writeln(s);
for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;
end;
//функция поиска индекса минимального элемента в строке k
function min(a:mtr;n,k:integer):integer;
var i,imn:integer;
begin
imn:=1;
for i:=2 to n do
if a[k,i]<a[k,imn] then imn:=i;
min:=imn;
end;
//процедура обмена первого и минимального элементов строке k
procedure obmen(var a:mtr;n,k,imn:integer);
var i,x:integer;
begin
if a[k,1]<>a[k,imn] then
begin
x:=a[k,1];
a[k,1]:=a[k,imn];
a[k,imn]:=x;
end;
end;
end.[/code]
Программа
[code lang=pascal]uses matrix;
var a:mtr;
m,n,i,imn:integer;
begin
randomize;
vvod(a,m,n);
vyvod(a,m,n,'Исходная матрица');
writeln('Минимальные элементы строк');
for i:=1 to m do
begin
imn:=min(a,n,i);
writeln('строка ',i,' min=',a[i,imn]);
obmen(a,n,i,imn);
end;
vyvod(a,m,n,'Обмен минимального и первого элемента в строках');
end.[/code]

Текст модуля нужно сохранить с именем matrix.pas в папке с программой.

Добавил randomize в текст программы.
Форма ответа