Uses GraphABC; type FUN = function (x: real): real; function f(x: real): real;begin Result := x*x +1 ;end; // l (logical) - логические координаты// s (screen) - физические координатыprocedure drawGraph(x1,x2: real; f: FUN); var xl0,wl,yl0,hl: real; xs0,ws,ys0,hs: integer; function LtoSx(xl: real): integer; begin Result := round(ws/wl*(xl-xl0)+xs0); end; function LtoSy(yl: real): integer; begin Result := round(hs/hl*(yl-yl0)+ys0); end; function StoLx(xs: integer): real; begin Result := wl/ws*(xs-xs0)+xl0; end; begin // drawGraph xs0 := 0; ys0 := WindowHeight-1; ws := WindowWidth; hs := WindowHeight-1; xl0 := x1; wl := x2-x1; var min := real.MaxValue; var max := real.MinValue; var yi: array of real; SetLength(yi,ws+1); for var xi:=0 to ws do begin if xi > 320 then begin yi[xi] := f(StoLx(xi+xs0)); if yi[xi]<min then min := yi[xi]; if yi[xi]>max then max := yi[xi]; end; end; yl0 := min; hl := -(max-min); // Нарисовать оси системы координат Line(0,LtoSy(0),ws,LtoSy(0)); Line(LtoSx(0),0,LtoSx(0),hs); Pen.Color := clBlue; MoveTo(xs0,LtoSy(yi[0])); for var xi:=xs0+1 to xs0+ws do LineTo(xi,LtoSy(yi[xi-xs0]));end; procedure Resize;begin ClearWindow; drawGraph(-60,60,f); Redraw;end; begin LockDrawing; SetWindowCaption('График функции: масштабирование'); drawGraph(-60,60,f); Redraw; OnResize := Resize;end.
Var a,t,s,zn,zn1:real; z,r,q1,q2,q3,qv1,qv2,qv3:integer; function kv(s:real):real; begina := sqrt(s);kv := a; end; procedure d(r:integer;var m,m1:real); var h:integer;begin h := -26+r div 100*100; r := (r-h) mod 10+7864; m:= r;m1 := h; end; procedure rt(v1,v2,v3:integer;var n1,n2,n3:integer); beginif v2 > v3 then v1:= v1 + v2else v1 := v1 + v3; n1:=v1; n2:= v2; n3:=v3; end; procedure rt2(v1,v2:integer;var n1,n2:integer); beginif (v1 mod 2 =0) and (v2 mod 2 = 0) then begin n1:= 0; n2:= 0;end else if (v1 mod 2 =0)then v1 := v1 *5 else if(v2 mod 2 =0)then v2:= v2 * 5; n1:=v1; n2:= v2; end; function rr(a,b:integer):real; var c: integer; begin b :=b-2*a; if a < b then rr:=b-a else rr:=a-2*b; end; beginr :=7974; writeln('Введите площадь квадрата'); readln(s); t:= kv(s); writeln('Сторона квадрата равна = ',t); d(r,zn,zn1); writeln('переменные a, b значение примут ',zn: 5, zn1: 5); writeln('Ввести три числа A, B,C'); readln(q1,q2,q3);rt(q1,q2,q3,qv1,qv2,qv3); writeln('A, B, C получили значения',qv1:4,qv2:4,qv3:4); writeln('Ввести числа x, y'); readln(q1,q2); rt2(q1,q2,qv1,qv2); writeln('x, y получили значения',qv1:4,qv2:4); writeln('Определяем, какое значение примет переменная c'); q1:=20;q2:=10; s:= rr(q1,q2); writeln('Переменная c примет значение: ', s); end.
type FUN = function (x: real): real;
function f(x: real): real;begin Result := x*x +1 ;end;
// l (logical) - логические координаты// s (screen) - физические координатыprocedure drawGraph(x1,x2: real; f: FUN); var xl0,wl,yl0,hl: real; xs0,ws,ys0,hs: integer; function LtoSx(xl: real): integer; begin Result := round(ws/wl*(xl-xl0)+xs0); end; function LtoSy(yl: real): integer; begin Result := round(hs/hl*(yl-yl0)+ys0); end; function StoLx(xs: integer): real; begin Result := wl/ws*(xs-xs0)+xl0; end;
begin // drawGraph xs0 := 0; ys0 := WindowHeight-1; ws := WindowWidth; hs := WindowHeight-1; xl0 := x1; wl := x2-x1;
var min := real.MaxValue; var max := real.MinValue; var yi: array of real; SetLength(yi,ws+1);
for var xi:=0 to ws do begin if xi > 320 then begin yi[xi] := f(StoLx(xi+xs0)); if yi[xi]<min then min := yi[xi]; if yi[xi]>max then max := yi[xi]; end; end; yl0 := min; hl := -(max-min);
// Нарисовать оси системы координат Line(0,LtoSy(0),ws,LtoSy(0)); Line(LtoSx(0),0,LtoSx(0),hs);
Pen.Color := clBlue; MoveTo(xs0,LtoSy(yi[0])); for var xi:=xs0+1 to xs0+ws do LineTo(xi,LtoSy(yi[xi-xs0]));end;
procedure Resize;begin ClearWindow; drawGraph(-60,60,f); Redraw;end;
begin LockDrawing; SetWindowCaption('График функции: масштабирование'); drawGraph(-60,60,f); Redraw; OnResize := Resize;end.
z,r,q1,q2,q3,qv1,qv2,qv3:integer;
function kv(s:real):real;
begina := sqrt(s);kv := a;
end;
procedure d(r:integer;var m,m1:real);
var h:integer;begin
h := -26+r div 100*100;
r := (r-h) mod 10+7864;
m:= r;m1 := h;
end;
procedure rt(v1,v2,v3:integer;var n1,n2,n3:integer);
beginif v2 > v3 then
v1:= v1 + v2else
v1 := v1 + v3;
n1:=v1; n2:= v2; n3:=v3;
end;
procedure rt2(v1,v2:integer;var n1,n2:integer);
beginif (v1 mod 2 =0) and (v2 mod 2 = 0) then
begin n1:= 0; n2:= 0;end
else if (v1 mod 2 =0)then
v1 := v1 *5
else if(v2 mod 2 =0)then
v2:= v2 * 5;
n1:=v1; n2:= v2;
end;
function rr(a,b:integer):real;
var c: integer;
begin
b :=b-2*a;
if a < b then rr:=b-a else rr:=a-2*b;
end;
beginr :=7974;
writeln('Введите площадь квадрата');
readln(s);
t:= kv(s);
writeln('Сторона квадрата равна = ',t);
d(r,zn,zn1);
writeln('переменные a, b значение примут ',zn: 5, zn1: 5);
writeln('Ввести три числа A, B,C');
readln(q1,q2,q3);rt(q1,q2,q3,qv1,qv2,qv3);
writeln('A, B, C получили значения',qv1:4,qv2:4,qv3:4);
writeln('Ввести числа x, y');
readln(q1,q2);
rt2(q1,q2,qv1,qv2);
writeln('x, y получили значения',qv1:4,qv2:4);
writeln('Определяем, какое значение примет переменная c');
q1:=20;q2:=10;
s:= rr(q1,q2);
writeln('Переменная c примет значение: ', s);
end.