Форум: "Основная";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];
ВнизЦиклы Найти похожие ветки
← →
Оля (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c