![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 x1:=(-b-(sqrt(d)))/(2*a); 
		
	
		
		
		
		
		
		
			x2:=(-b+(sqrt(d)))/(2*a); -вот эти формулы выводят не реальные цифры подскажите в чём ошибка Код: 
	begin
a:=strtofloat(edit1.Text);
b:=strtofloat(edit2.Text);
c:=strtofloat(edit3.Text);
x1:=(-b-(sqrt(d)))/(2*a);
x2:=(-b+(sqrt(d)))/(2*a);
d:=(sqr(b))-(4*a*c);
x3:=-b/2*a;
if d>0 then
memo1.Lines.Add(floattostr(x1));
if d<0 then
memo1.Lines.Add('menshe 0');
if d>0 then
memo1.Lines.Add(floattostr(x2));
if d=0 then
memo1.Lines.Add(floattostr(x3));
end;Последний раз редактировалось Admin, 18.09.2008 в 10:18.  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Надо соблюдать последовательность. У тебя сначала вычисляются корни уравнения, а потом уже дискриминант. Поменять 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	x1:=(-b-(sqrt(d)))/(2*a); x2:=(-b+(sqrt(d)))/(2*a); d:=(sqr(b))-(4*a*c); на Код: 
	d:=(sqr(b))-(4*a*c); x1:=(-b-(sqrt(d)))/(2*a); x2:=(-b+(sqrt(d)))/(2*a); И не забывать про проверки значения дискриминанта до вычисления корней!  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Так она вообще не выходит  
		
	
		
		
		
		
		
	
		
		
	
	
	раньше хотя бы считала не правильно  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Нужно пошагово пройтись и посмотреть значение переменных. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Если надо, то вот код: Код: 
	begin
a:=strtofloat(edit1.Text);
b:=strtofloat(edit2.Text);
c:=strtofloat(edit3.Text);
d:=(sqr(b))-(4*a*c);
if d<0 then
  begin
   memo1.Lines.Add('menshe 0');
   exit;
  end;
if d=0 then
  begin
   memo1.Lines.Add(floattostr(x3));
   x3:=-b/2*a;
   exit;
  end;
x1:=(-b-(sqrt(d)))/(2*a);
x2:=(-b+(sqrt(d)))/(2*a);
memo1.Lines.Add(floattostr(x1));
memo1.Lines.Add(floattostr(x2));
end; |