Построить гистограмму из точек, заданных массивом- Pascal(Паскаль)

uses crt,graph;
const n=5;
var xn,xk,x,dx,y,ymn,ymx,xmn,z,t,mx,my:real;
    x1:array[1..n] of integer;
    y1:array[1..n] of real;
    m,i,gd,gm,x0,y0:integer;
    g:text;
    st:string;
begin
{массивы значений по осям}
x1[1]:=10;  x1[2]:=30;  x1[3]:=50;  x1[4]:=70;  x1[5]:=90;
y1[1]:=0.22;y1[2]:=0.18;y1[3]:=0.20;y1[4]:=0.22;y1[5]:=0.18;
gd:=0;
initgraph(gd,gm,'');
{начало осей}
x0:=50;
y0:=getmaxY-50;
{масштабы для осей}
mx:=20*(getmaxX-2*x0)/(x1[5]+20);
my:=(y0-40)/25;
{оси}
line(x0,y0,getmaxX,y0);
outtextXY(getmaxX-15,y0-15,'X');
line(x0,getmaxY-20,x0,20);
outtextXY(x0-15,10,'Y');
for i:=0 to 25 do
 begin
  line(x0+round(i*mx),y0+3,x0+round(i*mx),y0-3);
  str(10*(2*i-1),st);
  if i=0 then outtextXY(x0+round(i*mx),y0+10,'0')
  else outtextXY(x0+round(i*mx),y0+10,st);
  line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));
  str(i,st);
  if i mod 5=0 then
  if i<10 then outtextXY(x0-35,y0-round(i*my),'0.0'+st)
  else outtextXY(x0-35,y0-round(i*my),'0.'+st);
 end;
{скорректируем масштабы для графика}
mx:=mx/20;
my:=my*100;
x0:=x0+40;
{рисуем график}
moveto(x0+round(x1[1]*mx),y0-round(y1[1]*my));
setcolor(10);
circle(x0+round(x1[1]*mx),y0-round(y1[1]*my),2);
for i:=1 to n do
 begin
  setcolor(12);
  lineto(x0+round(x1[i]*mx),y0-round(y1[i]*my));
  setcolor(10);
  circle(x0+round(x1[i]*mx),y0-round(y1[i]*my),2);
 end;
readln
end.

Leave a Comment

50 − 44 =