![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() У меня тут возникла проблемка...
Необходимо возвести число в какую-либо степень.... Я пишу S:=Exp((-0.5)*Ln(sigma1)) , но программа запускаться не хочет, ставит указатель после Ln и пишет [Error] Unit3.pas(121): Missing operator or semicolon. Вроде же все написано правильно, как так.... Подскажите? |
#2
|
|||
|
|||
![]() Всё откомпилировалось. Может, действительно нужна точка с запятой (semicolon)?
Код:
var S: Real; sigma1: Real = 2.0; procedure TForm1.FormCreate(Sender: TObject); begin S:=Exp((-0.5)*Ln(sigma1)) end; |
#3
|
|||
|
|||
![]() Да так все работает..
А в моем коде, нет Код:
begin Reky:=(w*dtr)/v; //расчет для КУ //пароперегреватель if (sigma1<=sigma2) and (fi>=0.06) and (fi<=1) then ksi:=(2*(Exp((-0.5)*Ln(sigma1-1)))*(Exp((-0.2)*Ln(Reky))))*Zparo else if (sigma1>sigma2) and (fi>1) and (fi<=8) then ksi:=(0.38*(Exp((-0.5)*Ln(sigma1-1)))* Exp((-0.59)*Ln(fi-0.94))* Exp((-0.2/(sqr(fi))*Ln(Reky))))*Zparo else if (sigma1>sigma2) and (fi>8) and (fi<=15) then ksi:=(0.118*(Exp((-0.5)*Ln(sigma1-1))))*Zparo; end; Form3.StringGrid2.Cells[0,0]:='Re'; Form3.StringGrid2.Cells[0,i]:=FloatToStr(Reky); Form3.StringGrid2.Cells[1,0]:='Коэф сопр паропер'; Form3.StringGrid2.Cells[1,i]:=FloatToStr(ksi); |
#4
|
|||
|
|||
![]() 1. Есть функция Power. Если по типам параметров подходит, то используй ее.
2. Сделай отдельную фнукцию возведения в степень и в своем коде используй ее - наверняка у тебя скобок или еще чего-нить в этом роде не хватает. |
#5
|
|||
|
|||
![]() Цитата:
Не надо делать лишних операций, если всё гораздо проще. |
#6
|
|||
|
|||
![]() Цитата:
|
#7
|
||||
|
||||
![]() Обычно использую эту:
Код:
function Pow(base,exponent:Extended):Extended; asm fld tbyte ptr [exponent] fld tbyte ptr [base] fyl2x fld ST(0) frndint fxch fsub ST(0),ST(1) f2xm1 fld1 faddp fscale fstp ST(1) end; Велик и могуч наш Object Pascal ! ICQ: 357-591-887 |