![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Циклы [D4]
Оля © (2002-09-25 16:54:00)Циклы. Пожалуйста помогите с кодом.
Что у меня не так?
procedure TForm1.SpeedButton1Click(Sender: TObject);
Var
n //? Не знаю точно, что это будет
m //? Не знаю точно, что это будет
a,b,c,d,Qt,Qmo,dQ:real;
begin
a:= StrToFloat(Edit1.Text);
b:= StrToFloat(Edit2.Text);
c:= StrToFloat(Edit3.Text);
d:= StrToFloat(Edit4.Text);
n:=(a-b)/0.5;
for m:=1 to n do
begin
Qmo:=c;
Qt:=d;
dQ:=Qmo-Qt;
F1Book1.TextRc[1+m,4]:=FloatToStrF(dQ,ffGeneral,6,1);
// тут я хотела чтобы результаты записывались в F1Book1
// 1+m – номер строки
end;
end;
А что будет если n не целое число?
Оля (2002-10-01 11:24:00) [1]Всем спасибо,
в итоге я воспользовалась n:= Round ((a-b)*2);
Zuvom (2002-09-27 01:54:00) [2]Строка
n:=(a-b)/0.5;
эквивалентна следующей строке
n:=(a-b)*2;
Следовательно, шанс, что число буде целым, минимален. Следовательно имеет смысл сделать так
procedure TForm1.SpeedButton1Click(Sender: TObject);
Var
n,m: integer;
a,b,c,d,Qt,Qmo,dQ:real;
begin
a:= StrToFloat(Edit1.Text);
b:= StrToFloat(Edit2.Text);
c:= StrToFloat(Edit3.Text);
d:= StrToFloat(Edit4.Text);
n:=trunc((a-b)/0.5); или n:=ceil((a-b)/0.5);
for m:=1 to n do
begin
Qmo:=c;
Qt:=d;
dQ:=Qmo-Qt;
F1Book1.TextRc[1+m,4]:=FloatToStrF(dQ,ffGeneral,6,1);
end;
end;
MBo (2002-09-26 17:38:00) [3]memo1.lines(1+m,4)
такого не бывает
Andrei_Yarovoi (2002-09-26 17:36:00) [4]я несовсем понял что за компонет F1Book1.TextRc[1+m,4]:=
но Мемо поле это выгледет так memo1.lines(1+m,4):=
ye bkb xnjnj d "njv hjlt
Anatoly Podgoretsky (2002-09-25 17:58:00) [5]AL2002 © (25.09.02 17:55)
И как ты без циклов живешь, линейно пишешь :-)
Андрей Прокофьев (2002-09-25 17:58:00) [6]>> Это он про женские циклы
AL2002 (2002-09-25 17:55:00) [7]Хорошо, что у меня циклов нету.
MBo (2002-09-25 17:02:00) [8]>Anatoly Podgoretsky
:)
Добрый компилятор Паскаля помогал сразу отлавливать ошибки во времена, когда частота процессоров измерялась небольшими мегагерцами, а на TurboC приходилось несколько минут (и даже десятков минут при серьезном build) ждать ;)
Андрей Прокофьев (2002-09-25 17:00:00) [9][Error] For loop control variable must have ordinal type
Надо использовать While or Repeat
Anatoly Podgoretsky (2002-09-25 16:58:00) [10]Ничего страшного, если N не целое, то ты программу не откомпилируешь
MBo (2002-09-25 16:58:00) [11]счетчик цикла может быть только перечислимым типом, т.е. Integer можно, а Double(Real) нельзя
Демонов Е.В. (2002-09-25 16:58:00) [12]Оно у тебя и так не целое Иначе приши n:=(a-b) div 0.5 , хотя не знаю можно ли так , всмысле 0.5;