Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1166217571
MegaNop
2006-12-16 00:19
2007.01.07
Надоело MainMenu!


15-1166392740
AntiUser
2006-12-18 00:59
2007.01.07
Если бы все поумнели...


3-1161522213
Piero
2006-10-22 17:03
2007.01.07
Database Desktop


15-1166435526
Сатир
2006-12-18 12:52
2007.01.07
Problem “J” - Concurrency Simulator


2-1166510525
Steep
2006-12-19 09:42
2007.01.07
ADOQuery + MS SQL Server





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский