Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2011, 21:40   #1
Volodyajke
 
Регистрация: 19.12.2010
Сообщений: 7
По умолчанию [Delphi] В матрице обнулить все элементы, расположенные после максимального в каждом столбце

Здравствуйте. Помогите пожалуйста
В матрице размерностью nxm обнулить все элементы, расположенные после максимального элемнте в каждом столбце.
Код:
procedure TForm3.BitBtn1Click(Sender: TObject);
var n,m,i,j:Byte;
max:Real;
begin
n:=stringGrid1.RowCount;
m:=stringGrid1.ColCount;
max:=StrToFloat(StringGrid1.Cells[0,0]);
for i:=0 to n-1 do
for j:=0 to m-1 do


    if StrToFloat(StringGrid1.Cells[j,i])>max then
  max:=StrToFloat(StringGrid1.Cells[j,i]);

end;
Volodyajke вне форума Ответить с цитированием
Старый 17.11.2011, 22:45   #2
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

Код:
for i:=0 to n-1 do begin
  jmax:=0;
  for j:=1 to m-1 do
    if StrToFloat(StringGrid1.Cells[j,i])>StrToFloat(StringGrid1.Cells[jmax,i]) then jmax:=j;
  for j:=jmax+1 to m-1 do StringGrid1.Cells[j,i]:='0';
end;
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 17.11.2011, 23:27   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) ищите не максимальный элемент, а его ИНДЕКС

2) в данном коде Вы идёте в "правильном порядке"
(внешний цикл по I перебирает строки, внутренний по J - перебирает знаяения в строке от 1-го столбца до последнего).
но, тем самым, вы ищете максимальный элемент в строке.
а если я правильно понял задание, Вам нужно обнулить элементы в столбце после максимального.
поясню на примере задачу, как я её понял.
пусть есть матрица (красным я выделил максимальные элементы В СТОЛБЦЕ):
Код:
1 2 3 7
5 3 2 6
4 7 1 5 
6 1 0 8
2 4 2 4
после обнуления:
Код:
1 2 3 7
5 3 0 6
4 7 0 5 
6 0 0 8
0 0 0 0

Последний раз редактировалось Serge_Bliznykov; 18.11.2011 в 00:07. Причина: исправил опечатку - по обнулению в третьем столбце
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.11.2011, 23:39   #4
Volodyajke
 
Регистрация: 19.12.2010
Сообщений: 7
По умолчанию

Код:
1 2 3 7
5 3 2 6
4 7 1 5 
6 1 0 8
2 4 2 4
после обнуления
Код:
1 2 3 7
5 3 0 6
4 7 0 5 
6 0 0 8
0 0 0 0
Volodyajke вне форума Ответить с цитированием
Старый 17.11.2011, 23:41   #5
Volodyajke
 
Регистрация: 19.12.2010
Сообщений: 7
По умолчанию

Я понял спасибо! по столбцам получится вот так:
Код:
for j:=0 to m-1 do begin
  jmax:=0;
  for i:=1 to n-1 do
    if StrToFloat(StringGrid1.Cells[j,i])>=StrToFloat(StringGrid1.Cells[j,jmax])
    then jmax:=i;
  for i:=jmax+1 to n-1 do StringGrid1.Cells[j,i]:='0';
end;

Последний раз редактировалось Volodyajke; 18.11.2011 в 00:24.
Volodyajke вне форума Ответить с цитированием
Старый 17.11.2011, 23:52   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
после обнуления
Код:
1 2 3 7
ну, конечно же. согласен.
сейчас поправлю в исходном сообщении...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В матрице в каждой строке найти сумму N Элементов расположенных после максимального элемента этой строки lexflax Паскаль, Turbo Pascal, PascalABC.NET 0 20.04.2011 14:41
Обнулить диагональные элементы в матрице. TurboPascal. Ekvental Помощь студентам 6 08.01.2011 19:20
1.Найти в матрице первую строку, все элементы которой отрицательны 2.отсортировать элементы массива по в w0lf16 Помощь студентам 2 22.11.2009 15:47
Задачка про массив - Из массива удалить четные элементы, стоящие после максимального Crookers Общие вопросы C/C++ 4 23.09.2008 19:35
в начале все отрицательные, затем все положительные элементы в матрице motaro Паскаль, Turbo Pascal, PascalABC.NET 2 07.03.2008 19:16