Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

Помогите плиз   Найти похожие ветки 

 
Генрих   (2007-01-18 10:47) [0]

Всем привет ! Помогите разобраться в программе.

     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; тогда работет. Что делать, помогите плиз.


 
Плохиш ©   (2007-01-18 10:54) [1]

Надо, для начала, открыть справку для слова exit и внимательно, очень внимательно, прочитать для чего же оно в действительности преднозначено.


 
Сергей М. ©   (2007-01-18 10:55) [2]


> цикл должен закончить работу


Для этого существует оператор Break.
А Exit завершает текущую процедуру, а не текущий цикл.


 
Elen ©   (2007-01-18 10:57) [3]


>  Если поместить ShowMessage сразу после APR:= (a-1)* 1200;
>  тогда работет

Так почуму бы не поместить его туда? (и подумать о правильном выходе из цикла, ато этот вроде некошерный кокой-то)


 
ЮЮ ©   (2007-01-18 10:57) [4]

1) вместо exit (выход из процедуры) постовить break (выход из цикла)
2)
 try

 finally
    ShowMessage("Готово");
 end;

сработает и по exit и при AV :)


 
Генрих   (2007-01-18 11:02) [5]


> Так почуму бы не поместить его туда?


Нет, туда нельзя.


> Для этого существует оператор Break.


Пробывал. Не срабатывает. По любому сообщение не выходит.


 
Генрих   (2007-01-18 11:04) [6]

Опа, всё получилось. (Break) Exit - в топку.


 
icWasya ©   (2007-01-18 11:11) [7]

Вот это место
until a=0;
никогда не сработает

если вычислить  -1.5 + 0.00001 * 150000 даже с точностью Extended, то получится 2.22044604925031296E-16, а никак ни ноль.
Поставь условие выхода из цикла либо
until a>=0;
либо
until a>=0.000005;


 
Elen ©   (2007-01-18 11:15) [8]


> Нет, туда нельзя.

Why?


 
Плохиш ©   (2007-01-18 11:27) [9]


> Генрих   (18.01.07 11:04) [6]
> Опа, всё получилось. (Break) Exit - в топку.

Точно, яблоки - рулез, апельсины - в топку...


 
ЮЮ ©   (2007-01-18 11:34) [10]


>
> Точно, яблоки - рулез, апельсины - в топку...


У апельсинов хоть эфирное масло в кожуре. А какое топлипо из яблок?


 
Плохиш ©   (2007-01-18 11:47) [11]


> ЮЮ ©   (18.01.07 11:34) [10]

Яблочное вино видел, апельсинового - нет ;-)


 
Ega23 ©   (2007-01-18 12:01) [12]


> У апельсинов хоть эфирное масло в кожуре. А какое топлипо
> из яблок?


Из конских яблок - отличное топливо. Если высушить.


 
Alx2 ©   (2007-01-18 21:19) [13]

>Генрих   (18.01.07 10:47)  

Корни уравнения искать последовательным равномерным перебором - крайне неэффективно.



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

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

Наверх




Память: 0.49 MB
Время: 0.066 c
2-1169117274
knever
2007-01-18 13:47
2007.02.04
Оптимизация скорости работы программ для технических расчетов


15-1168602653
Сергей И
2007-01-12 14:50
2007.02.04
У кого есть телефонный справочник через BDE


15-1168682519
Footballer
2007-01-13 13:01
2007.02.04
Вопрос не по делфи


15-1169037921
stone
2007-01-17 15:45
2007.02.04
Глюк в базах


2-1169314081
FIL-23
2007-01-20 20:28
2007.02.04
как перевести символ в двоичный код и обратно?