![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | 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;  |