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

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

Циклы [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;




Наверх

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