Родились сегодня:
ivan_papus


Лидеры

ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

1166

Россия, пос. Теплоозёрск, ЕАО


ID: 405587

Magic2hand

5-й класс

700


ID: 226425

Konstantin Shvetski

Модератор

317

Россия, Северодвинск


ID: 137394

Megaloman

Мастер-Эксперт

180

Беларусь, Гомель


ID: 405604

Ника

Посетитель

138


ID: 400669

epimkin

Профессионал

118


ID: 405537

hipunova1512

Посетитель

88


8.10.4

05.12.2021

JS: 2.10.3
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-12-08 21:46:03-standard


Создание программ на языках Pascal, Delphi и Lazarus.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 109236

Раздел:  Pascal / Delphi / Lazarus
Автор вопроса: Артем Глушков
Дата: 13.11.2007, 16:14 Консультация закрыта
Поступило ответов: 3

А постоянным клиентам скидки есть? Ну реально легкая задача, но что-то я туплю. Дана матрица, найти максимальный элемент в каждой строке. Ввод данных можно не писать.

Ответ # 193663 от Стома С.С.
Здравствуйте, Артем Глушков!

Задайте матрицу размером в количество столбцов maxArray: array[1..M] of Real;

присвойте первые элементы столбцов исходной матрице NxM isxArray: array[1..N,1..M] of Real
for j:= 1 to M do
maxArray[j]:= isxArray[1, j];
и найдем максимум в каждом столбце
for j:= 1 to M do
for i:= 1 to N do
if maxArray[j] < isxArray[i, j] then maxArray[j]:= isxArray[i,j]

Стома С.С.

Посетитель
13.11.2007, 16:59
Ответ # 193669 от Gh0stik
Здравствуйте, Артем Глушков!

В предыдущем ответ идея верна, только я не вижу смысла создавать массив в котором хранятся найденные максимумы, а также зачем изначально этот массив заполнять первыми элементами строк...

Посему привожу свое решение, в котором генерируется матрица из произвольных чисел из диапазона [0; 33). А потом просто "пробегаем" матрицу посторочно - находим максимум и сразу выводим его на экран.

const n=3; m=4;
var a:array [1..n,1..m] of real;
   mx:real;
   i,j:integer;
begin
   randomize;
   for i:=1 to n do
   begin
     for j:=1 to m do
     begin
       a[i,j]:=random(33);
       write(a[i,j]:6:1);
     end;
     writeln;
   end;
   for i:=1 to n do
   begin
     mx:=a[i,1];
     for j:=2 to m do
       if mx < a[i,j] then mx:=a[i,j];
     writeln(mx:4:1);
   end;
end.


Good Luck!!!

Gh0stik

Посетитель
13.11.2007, 17:28
Ответ # 193723 от Зиновьев Дмитрий Владимирович
Здравствуйте, Артем Глушков!

for i := 0 to n - 1 do
begin
max := a[0, i];
for j := 1 to m - 1 do
if max < a[i, j] then max := max < a[i, j]; // Если ищет не по строкам, а по столбцам,
//значит мы по разному выводим на экран, значит нужно поменять в массиве i и j
//местами, и в строчке № 3 тоже
WriteLN(max, ' ');
end;

Зиновьев Дмитрий Владимирович

Посетитель
13.11.2007, 22:20
Мини-форум консультации # 109236
Нет сообщений в мини-форуме
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 227

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 42

Gluck

9-й класс

Рейтинг: 41

Вадим Исаев ака sir Henry

Мастер-Эксперт

Рейтинг: 1

Асмик Гаряка

Советник

Рейтинг: 0

Орловский Дмитрий

Мастер-Эксперт

Рейтинг: 0