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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2012, 19:53   #1
}|{eka
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 16
По умолчанию freepascal двумерный массив, не могу найти ошибку

Подскажите пожалуйста что я здесь делаю не так:


Задача:Дан целочисленный массив В[1..5, 1..5]. Найти наименьший элемент массива и сообщить его расположение относительно правой диагонали.



Код:
unit Unit1; 

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls, Grids;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Memo1: TMemo;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 

var
  Form1: TForm1; 

implementation

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var b:array[1..5,1..5] of integer;
i,j:integer;
begin
randomize;
For i:=1 to 5 do
For j:=1 to 5 do
begin
b[i,j]:=random(100);
form1.StringGrid1.Cells[i-1,j-1]:=inttostr(b[i,j]);
end;
 form1.Button2.Enabled:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 b:array[1..5,1..5] of Integer;
 i,j,c,d:Integer;
begin
b[i,j]:=strtoint(form1.StringGrid1.Cells[i-1,j-1]);
d:=1; c:=1;
for i:=1 to 5 do
     for j:=1 to 5 do
          if b[i,j]<b[c,d] then
            begin
             c:=i;
             d:=j;
            end;
if c=d then
form1.Label2.Caption:='Min - B['+inttostr(c)+','+inttostr(d)+']='+inttostr(b[c,d])+' nax nad pravoy diogonalyu'
else
  if c>d then
 form1.Label2.Caption:='Min - B['+inttostr(c)+','+inttostr(d)+']='+inttostr(b[c,d])+' nax pod pravoy diogonalyu'
   else
   form1.Label2.Caption:='Min - B['+inttostr(c)+','+inttostr(d)+']='+inttostr(b[c,d])+' nax nad pravoy diogonalyu';


end;

initialization
  {$I unit1.lrs}

end.
}|{eka вне форума Ответить с цитированием
Старый 10.10.2012, 20:20   #2
badnum23
Пользователь
 
Регистрация: 10.10.2012
Сообщений: 22
По умолчанию

В этой процедуре:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
 b:array[1..5,1..5] of Integer;
 i,j,c,d:Integer;
begin
b[i,j]:=strtoint(form1.StringGrid1.Cells[i-1,j-1]);
Массив b не формируется полностью, а формируется отдельный его элемент. И даже отдельный элемент не формируется по сути, потому что i и j не инициализированы.
badnum23 вне форума Ответить с цитированием
Старый 10.10.2012, 20:21   #3
}|{eka
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 16
По умолчанию

извините все разобрался
}|{eka вне форума Ответить с цитированием
Старый 10.10.2012, 20:23   #4
}|{eka
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 16
По умолчанию

да я понял спасибо badnum23 я в разделе implementation описал их и заработало
}|{eka вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу решить двумерный массив teac2010 Помощь студентам 1 22.01.2012 14:12
не могу считать двумерный массив=((( pinch000 Общие вопросы C/C++ 15 02.01.2012 14:35
Массив структур. Не могу найти ошибку. Playa-RC Помощь студентам 1 03.12.2011 22:17
исправить ошибку в программе на двумерный массив Катакомба Помощь студентам 4 20.10.2011 03:10
Не могу найти ошибку.. одномерный массив, убывающая последовательность Malloperro Помощь студентам 1 23.12.2010 21:15