Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.10;
Скачать: 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 вся ветка

Текущий архив: 2002.10.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
3-31658
Юра
2002-09-19 20:18
2002.10.10
Какую СУБД выбрать IB, MSSQL, или еще какую


1-31767
AlexT1000
2002-10-01 16:07
2002.10.10
Как рисовать векторные объекты но с прозрачностью и градиентом?


8-31906
Ocean
2002-06-10 17:58
2002.10.10
Рисование в контроле


7-32024
Beginner
2002-07-31 23:03
2002.10.10
Обратится в Windows к физическому диску на низком уровне.


14-31954
DefE
2002-09-13 14:35
2002.10.10
Condoms....