Дана матрица В[N,M].найти в каждой строке матрицы максимальный и минимальный элемент и...

0 голосов
244 просмотров

Дана матрица В[N,M].найти в каждой строке матрицы максимальный и минимальный элемент и поменять их местами с первым и последним элементом строки соответственно.(Паскаль)


Информатика (245 баллов) | 244 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
1)uses crt;
2)var a:array[1..20,1..20] of integer;
3)n,m,i,j,mn,mx,jmn,jmx,x,y:integer;
4)begin
5)clrscr;
6)randomize;
7)write('Количество строк n=');
8)readln(n);
9)write('Количество столбцов m=');
10)readln(m);
11)
writeln('Исходная матрица:');
12)
for i:=1 to n do
13)
begin
14)
for j:=1 to m do
15)
begin
16)
a[i,j]:=random(20);
17)
write(a[i,j]:4);
18)
end;
19)
writeln;
20)
end;
21)
for i:=1 to n do
22)
begin
23)
mx:=a[i,1];mn:=a[i,1];
24)
jmx:=1;jmn:=1;
25)
for j:=1 to m do
26)
begin
27)
if a[i,j]>mx then
28)
begin
29)
mx:=a[i,j];
30)
jmx:=j;
31)
end;
32)
if a[i,j]then
33)begin
34)
mn:=a[i,j];
35)
jmn:=j;
36)
end;
37)
end;
38)
x:=a[i,1];
39)
a[i,1]:=a[i,jmx];
40)
a[i,jmx]:=x;
41)
y:=a[i,m];
42)
a[i,m]:=a[i,jmn];
43)
a[i,jmn]:=y;
44)
end;
45)
writeln('Результат:');46)
46)
for i:=1 to n do
47)
begin
48)
for j:=1 to m do
49)
write(a[i,j]:4);
50)writeln;
51)end;
52)
readln
53)
end.
image
(400 баллов)
0

Надеюсь помог. если да то нажмите*спасибо*! Удачи вам!

0

Спасибо большое)

0 голосов

// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
var (n,m):= ReadInteger2('n, m -> ');
var a:= MatrRandom(m,n);Writeln('Исходная матрица:');a.Println;
dec(n);dec(m);for var i:= 0 to m do
begin
  swap(a[i, a.Row(i).IndexMin],a[i, n]);
  swap(a[i, a.Row(i).IndexMax],a[i, 0]);
end;
Writeln('Конечная матрица:');
a.Print
end.


Пример:
n, m ->  4 5
Исходная матрица:
  95  62  11  82
  91  98  80   6
  21  73  62  70
  36  25  89  22
  44  42  80  65
Конечная матрица:
  95  62  82  11
  98  91  80   6
  73  70  62  21
  89  25  36  22
  80  65  44  42





(8.8k баллов)