Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проверка значения переменной


Страницы:   1 2 3

Motion ©   (2005-06-05 11:15:00) 

Вот часть кода:
begin
n:=5;
label11.Caption:=inttostr(n);

В метке должно выводить 5, а выводит что-то типа -1,734245
Пробую на пустой форме, всё нормально, пробую в программе - ничего не получается. Помогите пожайлуста советом, что это может быть.


Motion   (2005-06-05 11:48:00) [41]

А как установить контрольную точку?


begin...end   (2005-06-05 11:46:00) [42]

> Motion

А что отладчик говорит? Чему равно n?
Установите контрольную точку на строке n := 5, запустите код, наведите курсор на nи просмотрите значение переменной. Проходя код по F8, наблюдайте за значением n.


Motion   (2005-06-05 11:34:00) [43]

И так далее


Motion   (2005-06-05 11:33:00) [44]

То есть код такой:

procedure TForm1.BitBtn1Click(Sender: TObject);
var i,j,k,n:integer;
var arg,S,E:real;     //çíà÷åíèå àðãóìåíòà äëÿ äëÿ ïîèñêà çíà÷åíèÿ ôóíêöèè ,ïîëèíîì è ïîãðåøíîñòü
var X:array[0..12] of real;  //òàáëè÷íî çàäàííûå çíà÷åíèÿ àðãóìåíòà
var Y:array[0..12] of real;  //òàáëè÷íî çàäàííûå çíà÷åíèÿ ôóíêöèè
var h:array[0..12] of real;  //øàãè ñïëàéíà
var L:array[0..12] of real;  //êîýôèöèåíòû ìàòðèöû ÑËÀÓ
var B:array[0..12] of real;
var D:array[0..12] of real;  //âåêòîð ïðàâîé ÷àñòè
var Z:array[0..12] of real;  //ïðîãîíî÷íûå êîýôôèöèåíòû
var V:array[0..12] of real;
var M:array[0..12] of real; //ìîìåíòû ñïëàéíû â óçëàõ
var A:array[0..3]  of real;
label 1;

begin
n:=5;
//n:=spinedit1.value;
label11.Caption:=SysUtils.IntToStr(n);
if Edit1.Text='' then     //ïðîâåðêà íàëè÷èÿ íå çïîëíåíîãî çíà÷åíèÿ àðãóìåíòà
 begin
 Messagedlg('Îøèáêà! Âû íå ââåëè çíà÷åíèå àðãóìåíòà',mtwarning,[mbok],0);
 goto 1;
 end;

for i:=0 to n do
begin
X[i]:=strtofloat(stringgrid1.Cells[i,0]);
Y[i]:=strtofloat(stringgrid1.Cells[i,1]);
end;

for i:=0 to n-1 do
begin
h[i]:=X[i+1]-X[i];
end;

for i:=1 to n-1 do
begin
L[i]:=h[i-1]/(h[i]+h[i-1]);
B[i]:=h[i]/(h[i]+h[i-1]);
end;


Motion   (2005-06-05 11:32:00) [45]

То есть n - это предел всех циклов


Motion   (2005-06-05 11:31:00) [46]

n дальше используется во многих циклах


Motion   (2005-06-05 11:30:00) [47]

Вроде всё должно работать.... вот более полный текст программы:

procedure TForm1.BitBtn1Click(Sender: TObject);
var i,j,k,n:integer;
var arg,S,E:real;     //çíà÷åíèå àðãóìåíòà äëÿ äëÿ ïîèñêà çíà÷åíèÿ ôóíêöèè ,ïîëèíîì è ïîãðåøíîñòü
var X:array[0..12] of real;  //òàáëè÷íî çàäàííûå çíà÷åíèÿ àðãóìåíòà
var Y:array[0..12] of real;  //òàáëè÷íî çàäàííûå çíà÷åíèÿ ôóíêöèè
var h:array[0..12] of real;  //øàãè ñïëàéíà
var L:array[0..12] of real;  //êîýôèöèåíòû ìàòðèöû ÑËÀÓ
var B:array[0..12] of real;
var D:array[0..12] of real;  //âåêòîð ïðàâîé ÷àñòè
var Z:array[0..12] of real;  //ïðîãîíî÷íûå êîýôôèöèåíòû
var V:array[0..12] of real;
var M:array[0..12] of real; //ìîìåíòû ñïëàéíû â óçëàõ
var A:array[0..3]  of real;
label 1;

begin
n:=5;
//n:=spinedit1.value;
label11.Caption:=SysUtils.IntToStr(n);
if Edit1.Text='' then     //ïðîâåðêà íàëè÷èÿ íå çïîëíåíîãî çíà÷åíèÿ àðãóìåíòà
 begin
 Messagedlg('Îøèáêà! Âû íå ââåëè çíà÷åíèå àðãóìåíòà',mtwarning,[mbok],0);
 goto 1;
 end;


Motion   (2005-06-05 11:29:00) [48]

Тоже самое


begin...end   (2005-06-05 11:28:00) [49]

> Motion ©   (05.06.05 11:25) [2]

Возможно, переопределена функция IntToStr.
Попробуйте заменить строку label11.Caption:=inttostr(n)на Label11.Caption := SysUtils.IntToStr(n).


Motion   (2005-06-05 11:25:00) [50]

Вот часть программы:
procedure TForm1.BitBtn1Click(Sender: TObject);
var n:integer;

begin
n:=5;
label11.Caption:=inttostr(n);
end;


begin...end   (2005-06-05 11:21:00) [51]

Приведите полный код, включая объявление n.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо