program xxx; uses crt; label 1; const z=0.000001; var A,B,C,D,w, kood:integer; y,x,x3,x4,e,r,F,k,s,l,h,j,u,n,x1,x2,p,g,o,m:real; ch:char; ps, sx:string; procedure str1; begin p:=A*x1*x1*x1+B*x1*x1+C*x1+D; g:=A*h*h*h+B*h*h+C*h+D; o:=A*x2*x2*x2+B*x2*x2+C*x2+D; m:=A*j*j*j+B*j*j+C*j+D; end; procedure str2; begin u:=A*n*n*n+B*n*n+C*n+D; end; begin repeat clrscr; writeln('Enter password.'); readln(ps); if ps<>'xxx' then begin textmode(CO40); for w:=1 to 2 do begin clrscr; gotoxy(15,12); write('NO ACCESS!');write(^G); clrscr; write(' ');write(^G); end; end; textmode(CO80); until ps='xxx'; begin repeat clrscr; 1: writeln('Введите A,B,C,D.(коэффициенты кубического уравнения)'); writeln; {readln(sx); val(copy(sx, 1, pos(' ',sx)), b, kood); delete(sx, 1, pos(' ', sx)+1); val(copy(sx, 1, pos(' ', sx)), c, kood); delete(sx, 1, pos(' ', sx)+1); val(sx, d, kood);} {$I-} readln(A,B,C,D); {$I+} if (IOResult<>0) or (A=0) then begin clrscr;writeln('Ошибка при вводе коэффициентов.');goto 1; end; randomize; h:=-1000; j:=1000; k:=3*A; s:=2*B; l:=C; e:=2*k; F:=s*s-4*k*l; writeln; writeln('Ds=',F:5:2); if F>=0 then begin r:=sqrt(F); x3:=(-s+r)/e; x4:=(-s-r)/e; if x3>x4 then begin x1:=x4; x2:=x3; end else begin x1:=x3; x2:=x4; end; writeln; writeln('Критические точки.'); writeln('X1=',x1:5:2,' X2=',x2:5:2); str1; writeln('F(X1)=',p:5:2,' F(X2)=',o:5:2); end else begin x1:=-(random(30)+10); x2:=random(30)+10; writeln('X1r=',x1:5:2,' X2r=',x2:5:2); end; begin str1; writeln; writeln('Корни уравнения.'); if p=0 then writeln('Xst=',x1:3:5); if o=0 then writeln('Xst=',x2:3:5); if (g*p)<0 then begin x:=x1; repeat n:=(x+h)/2;str2; if (abs(u)>z) and ((p*u)<0) then h:=n else x:=n; until abs(u)