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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2009, 19:52   #11
NotProCoder
Пользователь
 
Регистрация: 20.04.2009
Сообщений: 15
По умолчанию

Держи пример.

procedure TForm1.Button2Click(Sender: TObject);
var
i,j : integer;
max : integer;
begin
max := 0;
for i := 0 to StringGrid1.ColCount - 1 do
for j := 0 to StringGrid1.RowCount - 1 do
if StrToInt(StringGrid1.Cells[i,j]) > max then
max := StrToInt(StringGrid1.Cells[i,j]);
ShowMessage(IntToStr(max));
end;
NotProCoder вне форума Ответить с цитированием
Старый 21.04.2009, 20:14   #12
Sorinka
Пользователь
 
Регистрация: 21.04.2009
Сообщений: 21
По умолчанию

Вот, я сделала вроде, но какая-то непонятная ошибка выходит:

Код:
var
  Form1: TForm1;

implementation

{$R *.dfm}
var
n:byte;
procedure TForm1.Button1Click(Sender: TObject);

begin
StringGrid1.ColCount:=StrToInt(Edit1.Text);
StringGrid1.RowCount:=StrToInt(Edit1.Text);
end;

procedure TForm1.Button2Click(Sender: TObject);
var i,j: integer;
begin
 randomize;

    for i:=0 to StringGrid1.ColCount - 1 do
          for j:=0 to StringGrid1.RowCount - 1 do
             begin
               StringGrid1.Cells[i,j]:=inttostr(random(100));
             end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var i,j,y: integer;
begin
    for i:= 0 to StringGrid1.ColCount - 1 do
       begin
         StringGrid1.Cells[i,i]:='0';
       end;
    y:=0;
    for j:=StringGrid1.RowCount - 1 downto 0 do

end;

procedure TForm1.Button4Click(Sender: TObject);
var
max : integer;
i,j:byte;
begin
max := 0;
if StrToInt(StringGrid1.Cells[i,j]) > max then
max := StrToInt(StringGrid1.Cells[i,j]);
Edit2.Text:=Edit2.Text+FloatToStr(max);
Edit3.Text:=Edit3.Text+FloatToStr(i);
Edit4.Text:=Edit4.Text+FloatToStr(j);
end;
end.
Sorinka вне форума Ответить с цитированием
Старый 21.04.2009, 20:42   #13
NotProCoder
Пользователь
 
Регистрация: 20.04.2009
Сообщений: 15
По умолчанию

Код:
procedure TForm1.Button4Click(Sender: TObject);
var
max : integer;
i,j:byte;
begin
max := 0;
//здесь обязательно нужен цикл. Чем ячейки перебирать то..?
if StrToInt(StringGrid1.Cells[i,j]) > max then
max := StrToInt(StringGrid1.Cells[i,j]);
Edit2.Text:=Edit2.Text+FloatToStr(max);
Edit3.Text:=Edit3.Text+FloatToStr(i);
Edit4.Text:=Edit4.Text+FloatToStr(j);
end;
Чего за бред? А где цикл? Посмотрите ещё внимательно на пример с поиском максимального числа. И ещё...

Edit4.Text:=Edit4.Text+FloatToStr(j );

FloatToStr можно заменить на IntToStr

Код:
procedure TForm1.Button3Click(Sender: TObject);
var i,j,y: integer;
begin
    for i:= 0 to StringGrid1.ColCount - 1 do
       begin
         StringGrid1.Cells[i,i]:='0';
       end;
    y:=0;
    for j:=StringGrid1.RowCount - 1 downto 0 do

end;
Собственно ошибка вот в чем... Тела цикла нет! А последний цикл здесь вообще не нужен!
NotProCoder вне форума Ответить с цитированием
Старый 21.04.2009, 21:03   #14
Sorinka
Пользователь
 
Регистрация: 21.04.2009
Сообщений: 21
По умолчанию

всё равно не считает:

Код:
procedure TForm1.Button4Click(Sender: TObject);
var
max : integer;
i,j:byte;
begin
max := 0;
begin
    for i:= 0 to StringGrid1.ColCount - 1 do
       begin
         StringGrid1.Cells[i,i]:='0';
       end;
    for j:=StringGrid1.RowCount - 1 downto 0 do
if StrToInt(StringGrid1.Cells[i,j]) > max then
max := StrToInt(StringGrid1.Cells[i,j]);

Edit2.Text:=Edit2.Text+ IntToStr(max);
Edit3.Text:=Edit3.Text+ IntToStr(i);
Edit4.Text:=Edit4.Text+ IntToStr(j);
end;
end;
end.
Sorinka вне форума Ответить с цитированием
Старый 21.04.2009, 21:40   #15
NotProCoder
Пользователь
 
Регистрация: 20.04.2009
Сообщений: 15
По умолчанию

Код:
procedure TForm1.Button4Click(Sender: TObject);
var
max : integer;
i,j:byte;
point_i,point_j : integer; 
begin
max := 0;
begin
    for i:= 0 to StringGrid1.ColCount - 1 do
       begin
         StringGrid1.Cells[i,i]:='0';
       end;
    for i:= 0 to StringGrid1.RowCount - 1 do
    for j:= 0 to StringGrid1.CelCount - 1 do
      if StrToInt(StringGrid1.Cells[i,j]) > max then
        begin
          max := StrToInt(StringGrid1.Cells[i,j]);
          point_i := i;
          point_j := j;
        end;
Edit2.Text:=Edit2.Text+ IntToStr(max);
Edit3.Text:=Edit3.Text+ IntToStr(point_i);
Edit4.Text:=Edit4.Text+ IntToStr(point_j);
end;
end;
Вот...
NotProCoder вне форума Ответить с цитированием
Старый 21.04.2009, 21:49   #16
Sorinka
Пользователь
 
Регистрация: 21.04.2009
Сообщений: 21
По умолчанию

Большое спасибо, теперь всё работает!
Sorinka вне форума Ответить с цитированием
Старый 21.04.2009, 22:46   #17
NotProCoder
Пользователь
 
Регистрация: 20.04.2009
Сообщений: 15
По умолчанию

Спасибо в карман не положишь ...
NotProCoder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массив замена -, на+. Delphi serj-07 Помощь студентам 20 16.06.2012 14:24
Массив, Delphi Melissa Помощь студентам 2 19.03.2009 09:26
Массив (Delphi) stasig Помощь студентам 2 28.02.2009 21:43
Delphi Двумерный массив forumu Помощь студентам 1 23.12.2007 02:04