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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2014, 00:16   #1
Ляйсан9517
Пользователь
 
Регистрация: 30.03.2014
Сообщений: 31
По умолчанию Помогите найти ошибку

вот код для подсчета количества одинаковых чисел под побочной диагональю матрицы
Код:
var
  Form1: TForm1;
  n,m,i,j,sum,max,maxn,min:integer;
  a:array[1..100,1..100] of integer;

implementation

{ TForm1 }


procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;
  n:=strtoint(Edit1.text);
  stringgrid1.colcount:=n;
  m:=strtoint(Edit2.text);
  stringgrid1.colcount:=m;
  for i:=0 to n-1 do
      begin
      for j:=0 to m-1 do
      begin
      a[i,j]:=random(100);
      stringgrid1.cells[i-1,j-1]:=inttostr(a[i,j]);
      end;

      end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
k: Integer;
CountA:Array of Array of integer;
begin
  N:= StrToInt(Edit1.Text);

   Memo1.Lines.Clear;
   for i:=0 to N-1 do
   for j:=(N-1-i+1) to N-1 do
   if CountA[i,j]<>0 then
   for k:=i to N-1 do
   for m:=(N-1-k+1) to N-1 do
   If Not ((k=i) And (m=j)) Then
   if CountA[k,m]<>0 then
   if a[i,j]=a[k,m] then
   begin
     CountA[k,m]:=0;
     inc(CountA[i,j]);
   end;
   for i:=0 to N-1 do
       for j:=(N-1-i+1) to N-1 do
       if CountA[i,j]>1 then
       Memo1.Lines.Add('Число '+IntToStr(a[i,j])+ '  повторяется '+IntToStr(CountA[i,j])+' раз');
   Finalize(a);
   Finalize(CountA);
end;
выводит такие ошибки как:
Цитата:
unit1.pas(65,21) Error: Wrong number of parameters specified for call to "SetLength"
unit1.pas(66,14) Warning: Local variable "CountA" does not seem to be initialized
unit1.pas(66,26) Error: Wrong number of parameters specified for call to "SetLength"
unit1.pas(93) Fatal: There were 2 errors compiling module, stopping
помогите пожалуйста, завтра сдавать

Последний раз редактировалось Stilet; 23.05.2014 в 08:21.
Ляйсан9517 вне форума Ответить с цитированием
Старый 23.05.2014, 01:04   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Не нашел, где у вас злополучная SetLength.
Ошибки:
Код:
  stringgrid1.colcount:=n; // колич. столбов
  m:=strtoint(Edit2.text); 
  stringgrid1.colcount:=m; // опять колич. столбов
Наверное, где-то надо RowCount ?
И еще :
Код:
stringgrid1.cells[i-1,j-1]:=inttostr(a[i,j]);
А i,j меняются от 0, то есть первый цикл - stringgrid1.cells[-1,-1]:= ...
Не бывает отрицательных индексов у строк и столбов.

И еще : CountA - динамический массив. Вот для него и надо SetLength

Последний раз редактировалось type_Oleg; 23.05.2014 в 01:06.
type_Oleg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку - StrToFloat выдаёт ошибку EConvertError для ячеек StringGrid (Delphi) Artsiom Помощь студентам 10 18.12.2013 14:10
Помогите найти ошибку orandzheviyman Паскаль, Turbo Pascal, PascalABC.NET 3 11.12.2013 23:19
помогите найти ошибку lg12 Помощь студентам 6 18.08.2009 18:26
помогите найти ошибку DelMaker JavaScript, Ajax 2 19.05.2009 18:27
помогите найти ошибку LyaLyaLya Помощь студентам 6 15.12.2008 20:59