![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите плиз [D7, XP]
Генрих © (2007-01-18 10:47:00)Всем привет ! Помогите разобраться в программе.
x:= p_s/(Sum-perVznos);
a:=-1.5;
repeat
a:= a+ 0.00001;
z:= 12*(a-1)/(1-Power(a,-12))-1 - x ;
if (z>=-0.0005) and (z<=0.0005) then
begin
// Считаем эффективную ставку
APR:= (a-1)* 1200;
exit;
end;
until a=0;
ShowMessage('Готово');
Тут вот какое дело, ShowMessage('Готово');не срабатывает. Как сделать так, чтобы после того как сработает APR:= (a-1)* 1200;
цикл должен закончить работу. Если поместить ShowMessage сразу после APR:= (a-1)* 1200; тогда работет. Что делать, помогите плиз.
Alx2 (2007-01-18 21:19:00) [1]>Генрих (18.01.07 10:47)
Корни уравнения искать последовательным равномерным перебором - крайне неэффективно.
Ega23 (2007-01-18 12:01:00) [2]
> У апельсинов хоть эфирное масло в кожуре. А какое топлипо
> из яблок?
Из конских яблок - отличное топливо. Если высушить.
Плохиш (2007-01-18 11:47:00) [3]
> ЮЮ © (18.01.07 11:34) [10]
Яблочное вино видел, апельсинового - нет ;-)
ЮЮ (2007-01-18 11:34:00) [4]
>
> Точно, яблоки - рулез, апельсины - в топку...
У апельсинов хоть эфирное масло в кожуре. А какое топлипо из яблок?
Плохиш (2007-01-18 11:27:00) [5]
> Генрих (18.01.07 11:04) [6]
> Опа, всё получилось. (Break) Exit - в топку.
Точно, яблоки - рулез, апельсины - в топку...
Elen (2007-01-18 11:15:00) [6]
> Нет, туда нельзя.
Why?
icWasya (2007-01-18 11:11:00) [7]Вот это место
until a=0;
никогда не сработает
если вычислить -1.5 + 0.00001 * 150000даже с точностью Extended, то получится 2.22044604925031296E-16, а никак ни ноль.
Поставь условие выхода из цикла либо
until a>=0;
либо
until a>=0.000005;
Генрих (2007-01-18 11:04:00) [8]Опа, всё получилось. (Break) Exit - в топку.
Генрих (2007-01-18 11:02:00) [9]
> Так почуму бы не поместить его туда?
Нет, туда нельзя.
> Для этого существует оператор Break.
Пробывал. Не срабатывает. По любому сообщение не выходит.
Elen (2007-01-18 10:57:00) [10]
> Если поместить ShowMessage сразу после APR:= (a-1)* 1200;
> тогда работет
Так почуму бы не поместить его туда? (и подумать о правильном выходе из цикла, ато этот вроде некошерный кокой-то)
ЮЮ (2007-01-18 10:57:00) [11]1) вместо exit (выход из процедуры) постовить break (выход из цикла)
2)
try
finally
ShowMessage('Готово');
end;
сработает и по exit и при AV :)
Сергей М. (2007-01-18 10:55:00) [12]
> цикл должен закончить работу
Для этого существует оператор Break.
А Exit завершает текущую процедуру, а не текущий цикл.
Плохиш (2007-01-18 10:54:00) [13]Надо, для начала, открыть справку для слова exitи внимательно, очень внимательно, прочитать для чего же оно в действительности преднозначено.