Pascal. Двумерный массив. Получить новую матрицу путем деления всех элементов данной...

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

Pascal. Двумерный массив.

Получить новую матрицу путем деления всех элементов данной матрицы на ее наименьший по модулю элемент


Информатика (15 баллов) | 83 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1415 от 25.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк в массиве:');
  var m:=ReadInteger('Количество столбцов в массиве:');
  Writeln('*** Исходный массив [',n,',',m,'] ***');
  var a:=new real[n,m];
  for var i:=0 to n-1 do
    for var j:=0 to m-1 do
      a[i,j]:=Random(5,90);
  a.Println(3,0); Writeln;
  var p:=a.ElementsByRow.Min;
  for var i:=0 to n-1 do
    for var j:=0 to m-1 do
      a[i,j]:=a[i,j]/p;
  a.Println(7,3)
end.

Пример
Количество строк в массиве: 4
Количество столбцов в массиве: 7
*** Исходный массив [4,7] ***
 83 87 11 18 74 78 24
 45 28 59 56 14 67  5
 74 65 48 79 68 45 37
 52 70 16 82  5 51 70

 16.600 17.400  2.200  3.600 14.800 15.600  4.800
  9.000  5.600 11.800 11.200  2.800 13.400  1.000
 14.800 13.000  9.600 15.800 13.600  9.000  7.400
 10.400 14.000  3.200 16.400  1.000 10.200 14.000
БОГ (150k баллов)
0

Программа правильная и наиболее оптимальная аналогов, жаль нас учат не так.

0

Вооружится литературой по оптимизации кода Pascal?

0

Как нас учат:

0

Хорошо

0 голосов

Const n=3; m=4;
var a:array[1..n,1..m] of real;
i,j:integer; min:real;
begin
Randomize;
writeln('Исходная матрица:');
for i:=1 to n do
 begin
 for j:=1 to m do
  begin
  a[i,j]:=10*random-5;
  write(a[i,j]:6:2);
  end;
  writeln;
  end;
min:=abs(a[i,j]);
for i:=1 to n do
 for j:=1 to m do
  if abs(a[i,j])for i:=1 to n do
 for j:=1 to m do a[i,j]:=a[i,j]/min;
writeln('min = ',min:6:2);
writeln('Измененная матрица:');
for i:=1 to n do
 begin
 for j:=1 to m do write(a[i,j]:6:2);
 writeln;
end;
end.

Пример:
Исходная матрица:
 4.25 2.99 -2.67 -0.88
-0.80 3.69 -1.94 -1.18
-3.37 0.65 4.62 1.45
min = 0.65
Измененная матрица:
 6.53 4.61 -4.11 -1.36
-1.23 5.68 -2.99 -1.81
-5.19 1.00 7.10 2.23

БОГ (194k баллов)
0

Разве не должны присутствовать index1, index2?

0

Не должны.

10,984,878 вопросов
13,471,016 ответов
8,518,553 комментариев
4,909,216 пользователей