{ > Src.RealFn } program real_functions (output);const pi = 3.14159265;      ysz = 512; ysc = 496.0;      xsz = 640; xsc = 640.0; xszdpix = 80;      pix = 8;var i : integer;procedure Axes;begin  mode (1);  vdu (29, xsz MOD 256, xsz DIV 256, ysz MOD 256, ysz DIV 256);  plot (4, 0, -ysz); plot (5, 0, ysz);  plot (4, -xsz, 0); plot (5, xsz, 0)end;begin  axes;{ Sin plot }  vdu (18, 0, 1, 17, 1); writeln ('Sin');  plot (4, -xsz, round (ysc * sin (-pi)));  for i := -xszdpix+1 to xszdpix do    plot (5, pix*i, round (ysc * sin (pix*i*pi/xsc)));{ Cos plot }  vdu (18, 0, 2, 17, 2); writeln ('Cos');  plot (4, -xsz, round (ysc * cos (-pi)));  for i := -xszdpix+1 to xszdpix do    plot (5, pix*i, round (ysc * cos (pix*i*pi/xsc)));{ Arctan plot }  vdu (18, 0, 3, 17, 3); writeln ('Arctan');  plot (4, -xsz, round (ysc * arctan (-pi)) DIV 2);  for i := -xszdpix+1 to xszdpix do    plot (5, pix*i, round (ysc * arctan (pix*i*pi/xsc)) DIV 2);  writeln ('Press Shift');  repeat until inkey (-1) = -1;  axes;{ Ln plot }  vdu (18, 0, 1, 17, 1); writeln ('Ln');  plot (4, pix, round (ysc * ln (pix*2.0/xsc)));  for i := 2 to xszdpix do    plot (5, pix*i, round (ysc * ln (pix*i*2.0/xsc)));{ Sqrt plot }  vdu (18, 0, 2, 17, 2); writeln ('Sqrt');  plot (4, pix, 0);  for i := 1 to xszdpix do     plot (5, pix*i, round (ysc * sqrt (pix*i/xsc)));  plot (4, pix, 0);  for i := 1 to xszdpix do     plot (5, pix*i, -round (ysc * sqrt (pix*i/xsc)));{ Sqr plot }  vdu (18, 0, 3, 17, 3); writeln ('Sqr');  plot (4, -xsz, round (ysc));  for i := -xszdpix+1 to xszdpix do            plot (5, pix*i, round (ysc * sqr (pix*i/xsc)));end.