Вниз
Скачать: CL | DM;

Циклы   Найти похожие ветки 

← →
Оля   (2002-09-25 16:54) [0]

Циклы. Пожалуйста помогите с кодом.
Что у меня не так?

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 не целое число?


← →
Anatoly Podgoretsky ©   (2002-09-25 16:58) [1]

Ничего страшного, если N не целое, то ты программу не откомпилируешь


← →
MBo ©   (2002-09-25 16:58) [2]

счетчик цикла может быть только перечислимым типом, т.е. Integer можно, а Double(Real) нельзя


← →
Демонов Е.В. ©   (2002-09-25 16:58) [3]

Оно у тебя и так не целое Иначе приши n:=(a-b) div 0.5 , хотя не знаю можно ли так , всмысле 0.5;





← →
Андрей Прокофьев ©   (2002-09-25 17:00) [4]

[Error] For loop control variable must have ordinal type

Надо использовать While or Repeat


← →
MBo ©   (2002-09-25 17:02) [5]

>Anatoly Podgoretsky
:)
Добрый компилятор Паскаля помогал сразу отлавливать ошибки во времена, когда частота процессоров измерялась небольшими мегагерцами, а на TurboC приходилось несколько минут (и даже десятков минут при серьезном build) ждать ;)


← →
AL2002 ©   (2002-09-25 17:55) [6]

Хорошо, что у меня циклов нету.


← →
Anatoly Podgoretsky ©   (2002-09-25 17:58) [7]

AL2002 © (25.09.02 17:55)
И как ты без циклов живешь, линейно пишешь :-)


← →
Андрей Прокофьев ©   (2002-09-25 17:58) [8]

>> Это он про женские циклы


← →
Andrei_Yarovoi ©   (2002-09-26 17:36) [9]

я несовсем понял что за компонет F1Book1.TextRc[1+m,4]:=
но Мемо поле это выгледет так memo1.lines(1+m,4):=
ye bkb xnjnj d "njv hjlt


← →
MBo ©   (2002-09-26 17:38) [10]

memo1.lines(1+m,4)
такого не бывает


← →
Zuvom ©   (2002-09-27 01:54) [11]

Строка
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;


← →
Оля   (2002-10-01 11:24) [12]

Всем спасибо,
в итоге я воспользовалась n:= Round ((a-b)*2);



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
3-31664
Ditrix
2002-09-20 12:45
2002.10.10
удаление поля в dBase таблице SQL запросом в runtim-е


3-31610
Vint
2002-09-19 09:31
2002.10.10
Password под IB


4-32079
Константин
2002-08-23 10:16
2002.10.10
Получить иконку из Трея для заданного приложения????


1-31720
Dmitry Toropov
2002-10-01 09:49
2002.10.10
ADO, auto increment field


3-31667
Sirus
2002-09-20 14:52
2002.10.10
Как в TQRExpr получить разницу дат???




   Наверх