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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2014, 10:37   #1
AntIriska
 
Аватар для AntIriska
 
Регистрация: 10.06.2014
Сообщений: 6
По умолчанию Ребят, я запуталась с задачей по двумерным массивам. Нужно найти максимальный элемент в каждом столбце и выделить его.

Условие задачи: найти максимальный элемент в каждом столбце матрицы МхN и выделить его, используя процедурку StringGrid1DrawCell. Содержимое ячейки должно оставаться видимым. Вот то, что имеется на данный момент:
Код:
unit Unit1;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, Grids, StdCtrls;
 
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
Label4: TLabel;
StringGrid1: TStringGrid;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
    Button1: TButton;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
 
private
{ Private declarations }
public
{ Public declarations }
end;
 
var
Form1: TForm1;
n,m,i,j,i1,j1:integer;
A:array[1..10,1..10] of integer;
B:array[1..10] of integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Close;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
Var i,j:byte;
begin
   Randomize;
   StringGrid1.RowCount:=StrToInt(Edit1.text);
   StringGrid1.ColCount:=StrToInt(Edit2.text);
   for i:=0 to StringGrid1.RowCount-1 do
     for j:=0 to  StringGrid1.ColCount-1 do
      StringGrid1.Cells[j,i]:=inttostr(random(100));
      bitbtn1.Enabled:=true;
end;
 
procedure TForm1.BitBtn1Click(Sender: TObject);
Var max, i, j: Integer;
    i1,j1:integer;
begin
n:=StrToInt(Edit1.Text);
m:=StrToInt(Edit2.Text);
 for i:=0 to m do
  for j:=0 to 0 do
   A[i,j]:= strtoint(stringgrid1.cells[j,i]);
   for j:=0 to n-1 do begin
   max:=A[0,j];
    for i:=0 to n-1 do
     if max < a[i,j] then begin
     max:=A[i,j];
     i1:=i;
     j1:=j;
     end;
 end;
end;
 
 
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
 if ((ACol=i1) and (ARow=j1)) then begin
  StringGrid1.Canvas.Brush.Color:=clRed;
  StringGrid1.Canvas.FillRect(Rect);
  end;
   end;
end.

Последний раз редактировалось Stilet; 10.06.2014 в 11:47.
AntIriska вне форума Ответить с цитированием
Старый 10.06.2014, 12:00   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Вот поправил Ваш код, у Вас довольно близко к итогу было, ну кроме того, что я дополнил проверкой по всем столбцам.
Не забывайте оформлять код кнопочкой # при наборе сообщения.
Вложения
Тип файла: zip grid.zip (229.1 Кб, 16 просмотров)
phomm вне форума Ответить с цитированием
Старый 10.06.2014, 12:08   #3
AntIriska
 
Аватар для AntIriska
 
Регистрация: 10.06.2014
Сообщений: 6
По умолчанию

ОГРОМНОЕ спасибо! )) у меня просто слов больше нет )))
AntIriska вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В двумерном массиве найти минимальный максимальный элемент в строке\столбце Proskurina Паскаль, Turbo Pascal, PascalABC.NET 6 08.09.2012 21:14
В двумерном массиве найти минимальный максимальный элемент в строке\столбце Proskurina Помощь студентам 3 08.09.2012 11:07
Массив 7х7 целого типа в каждом столбце поменять max элемент и элемент побочной диагонали Sheport Паскаль, Turbo Pascal, PascalABC.NET 1 20.06.2011 23:30
Найти максимальный элемент массива и его порядковый номер через функцию на С ++ SeReGa48 Помощь студентам 1 31.05.2010 23:08