Составить программу решения квадратного неравенства. Напечатать исходные данные и результаты. ax2+bx+c меньше или равно 0 (x в квадрате)

code: #pascal
Program fail1;
var a,b,c:integer;  x1,x2:real;
 
function ddd:real; {Func. Diskriminanta}
begin
ddd:=sqr(b)-(4*a*c)
end;
 
procedure exchange(var a,b:real);  {Proc. Obmena}
var c:real;
begin if athen exit;
c:=a; a:=b; b:=c; end;
 
function znaki:string; {Func. opredeleniya Znakov na osi}
var z1,z2,z3:real; zn1,zn2,zn3:char;
begin
z1:=a*(sqr(x1-1))+(b*(x1-1))+c;
z2:=a*(sqr(x2-0.155))+(b*(x2-0.155))+c;
z3:=a*(sqr(x2+1))+(b*(x2+1))+c;
if z1<0 then zn1:='-' else zn1:='+';
if z2<0 then zn2:='-' else zn2:='+';
if z3<0 then zn3:='-' else zn3:='+';
znaki:=zn1+zn2+zn3;
end;
 
{**************************************sama proga******************************}
begin
writeln ('Vvedite znacenie A:'); readln(a) ;
writeln ('Vvedite znacenie B:'); readln(b) ;
writeln ('Vvedite znacenie C:'); readln(c) ;
 
if ddd<0 then writeln ('Mnozhestvo resheniy ne ogranicheno (resheniyami yavlyayutsya vse chisla)');
if ddd=0 then begin x1:=-(b/(2*a)); writeln ('Neravenstvo vypolnyaetsya v edinstvennoy tochke - ',x1);  end;
 
if ddd>0 then
             begin  x1:=((-b)+sqrt(ddd))/(2*a); x2:=((-b)-sqrt(ddd))/(2*a); {naxpdim X1 i X2}
 
                    exchange(x1,x2);    {procedura obmena}
 
                    if znaki='-+-' then  writeln('Mn-vo resheniy = (-#,',x1:0:2,']&[',x2:0:2,',+#)');
                    if znaki='+-+' then  writeln('Mn-vo resheniy = [',x1:0:2,',',x2:0:2,']');
                    if znaki='-++' then  writeln('Mn-vo resheniy = (-#,',x1:0:2,']');
                    if znaki='--+' then  writeln('Mn-vo resheniy = (-#,',x2:0:2,']');
                    if znaki='+--' then  writeln('Mn-vo resheniy = [',x1:0:2,',+#)');
                    if znaki='++-' then  writeln('Mn-vo resheniy = [',x2:0:2,',+#)');
             end;
 
readln;
end.      
Поделиться:

Похожие статьи: