Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.07;
Скачать: CL | DM;

Вниз

проблема с кодом программы   Найти похожие ветки 

 
Bullfrog   (2006-12-15 13:36) [0]


Repeat
Repeat
  if resursi[i]>zayavki[j] then
    Begin
    StringGrid1.Cells[i,j]:=IntToStr(zayavki[j]);
    Resursi[i]:=Resursi[i]-Zayavki[j];
    end
    else Begin
    StringGrid1.Cells[i,j]:=IntToStr(Resursi[i]);
    Zayavki[j]:=zayavki[j]-resursi[i];
    Resursi[i]:=0;
    end;
  if resursi[i]=0 then inc(i) else inc(j)
  Until j=zak+1    
Until i=res+1;    
end;

вот эта часть должна решать транспортную задачу методом северо-западного угла, выводится ошика которая для меня вообще не понятна: выводится два окна:
1. с заголовком CPU и большим количеством каких-то циферок
2. с заголовком Debagger Fault Notification, в окне указан путь к проекту и далее слова: Project1.exe faulted with message: "acces violation at 0x00000000: read of addres 0x00000000". Process stopped.

Что это за ошибка? Как с ней бороться?


 
Reindeer Moss Eater ©   (2006-12-15 13:39) [1]

Вышел за границы строки или массива


 
Anatoly Podgoretsky ©   (2006-12-15 13:41) [2]

> Bullfrog  (15.12.2006 13:36:00)  [0]

Не создан какой то объект или куда то передан нулевой указатель.


 
Bullfrog   (2006-12-15 13:46) [3]


> Не создан какой то объект или куда то передан нулевой указатель.
>
>

т.е.? если можно поподробней
что такое нулевой указатель?
объект всмысле компонент?


 
Amoeba ©   (2006-12-15 13:46) [4]

А переменные i и j предварительно инициализированы?


 
Desdechado ©   (2006-12-15 13:49) [5]

> объект всмысле компонент?
массив, стринггрид, что угодно, что требуется создать

отладчик работает? протрассируй, увидишь строку, где ошибка


 
Anatoly Podgoretsky ©   (2006-12-15 13:50) [6]

> Bullfrog  (15.12.2006 13:46:03)  [3]

Твой код не позволяет говорить ни подробнее, ни конкретнее.


 
Bullfrog   (2006-12-15 13:57) [7]


> А переменные i и j предварительно инициализированы?
>

да


> массив, стринггрид, что угодно, что требуется создать

стриннгрид создан


 
Desdechado ©   (2006-12-15 14:01) [8]

а сторок и столбцов с гриде и массивах нужное количество?
они же не авторасширяемые, их выделять надо


 
Anatoly Podgoretsky ©   (2006-12-15 14:03) [9]

> Bullfrog  (15.12.2006 13:57:07)  [7]

Это слова и только слова. У тебя в приведеном куске 7 переменных неизвестного типа и состояния.


 
Bullfrog   (2006-12-15 14:04) [10]


> а сторок и столбцов с гриде и массивах нужное количество?
>
> они же не авторасширяемые, их выделять надо
>

грид 4х5
и два массива
рес - 4 элемента
зак - 5 элементов


 
Bullfrog   (2006-12-15 14:08) [11]


>
> Это слова и только слова. У тебя в приведеном куске 7 переменных
> неизвестного типа и состояния.

Вот текст кнопки целеком:
procedure TForm1.Button2Click(Sender: TObject);
var
resursi: array [1..100] of integer;
zayavki: array [1..100] of integer;
i,j,s1,s2,res,zak : integer;
begin
//proverka na sootvetstvie zakritoi transp. zad-i
s1:=0;
s2:=0;
res:=strtoint(edit1.Text);//4
zak:=strtoint(edit2.Text);//5
for i:=1 to zak do begin
resursi[i]:=StrToInt(stringgrid1.Cells[i,res+1]);
s1:=s1+resursi[i];
end;
label5.caption:="Ñóììà çàÿâîê è ðåñóðñîâ ðàâíû, ñîñòîâëÿþò:"+inttostr(s1)+" åäåíèö";
for i:=1 to res do begin
zayavki[i]:=StrToInt(stringgrid1.Cells[zak+1,i]);
s2:=s2+zayavki[i];
end;

if s1=s2 then
 begin
//  showmessage("Ñóììà ðàâíà");
//  stringgrid1.Cells[res+1,zak+1]:=inttostr(s1);
 end
else Begin
//showmessage("Ñóììà íå ðàâíà! Ââåäèòå âåðíûå çíà÷åíèÿ");
Application.Terminate;
end;

//raspredelenie
i:=1; j:=1;
Repeat
  Repeat
  if resursi[i]>zayavki[j] then
    Begin
    StringGrid1.Cells[i,j]:=IntToStr(zayavki[j]);
    Resursi[i]:=Resursi[i]-Zayavki[j];
    end
    else Begin
    StringGrid1.Cells[i,j]:=IntToStr(Resursi[i]);
    Zayavki[j]:=zayavki[j]-resursi[i];
    Resursi[i]:=0;
    end;
  if resursi[i]=0 then inc(i) else inc(j)
  Until j=zak+1      
Until i=res+1;    
end;



 
Anatoly Podgoretsky ©   (2006-12-15 14:09) [12]

> Bullfrog  (15.12.2006 14:04:10)  [10]

Ни рес, ни зак массивов в коде не наблюдается.


 
Bullfrog   (2006-12-15 14:12) [13]


> Ни рес, ни зак массивов в коде не наблюдается.

извиняюсь
resursi[i]
zayavki[j]


 
Anatoly Podgoretsky ©   (2006-12-15 14:16) [14]

Cm. [5]


 
Bullfrog   (2006-12-15 14:29) [15]


> Cm. [5]
>

что это?


 
Bullfrog   (2006-12-15 15:37) [16]

разобрался...
собака была зарыта здесь:
for i:=1 to zak do begin
resursi[i]:=StrToInt(stringgrid1.Cells[i,res+1]);
s1:=s1+resursi[i];
end;
label5.caption:="Ñóììà çàÿâîê è ðåñóðñîâ ðàâíû, ñîñòîâëÿþò:"+inttostr(s1)+" åäåíèö";
for i:=1 to res do begin
zayavki[i]:=StrToInt(stringgrid1.Cells[zak+1,i]);
s2:=s2+zayavki[i];
end;


нужно было написать:
for i:=1 to zak do begin
zayavki[i]:=StrToInt(stringgrid1.Cells[i,res+1]);
s1:=s1+zayavki[i];
end;
label5.caption:="Ñóììà çàÿâîê è ðåñóðñîâ ðàâíû, ñîñòîâëÿþò:"+inttostr(s1)+" åäåíèö";
for i:=1 to res do begin
resursi[i]:=StrToInt(stringgrid1.Cells[zak+1,i]);
s2:=s2+resursi[i];
end;

и еще нужно было исправить условие:
Until j=zak  
+1 было лишним...
всем спасибо!



Страницы: 1 вся ветка

Текущий архив: 2007.01.07;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.064 c
15-1166452413
Reactor
2006-12-18 17:33
2007.01.07
Аксесс, результат запроса в переменную


2-1166377775
Святослав
2006-12-17 20:49
2007.01.07
drag and drop


2-1166524012
cvg
2006-12-19 13:26
2007.01.07
Почему StrPCopy дает ошибку доступа?


2-1166196967
DmitrichJ
2006-12-15 18:36
2007.01.07
Как измерить время выполнения операторов.


2-1166456508
sat
2006-12-18 18:41
2007.01.07
как свернуть программу в системный трей