Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Внизпроблема с кодом программы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.011 c