— данные нужно внести на пиктограмму, а пиктограмму привыкнуть к отметкам на осях снизу. — Кроме того, необходимо построить оси координат, используя граничные параметры, полученные с функций getmaxx и getmaxy.
-Данные вводятся с клавиатуры: количество элементов, их значения и названия.
— По введенным данным программа должна рассчитать максимальную величину параметров к осям, шаг построения сетки по осям Ox и Oy. Для построения элементов диаграммы использовать разные цвета.
— По введенным данным и параметрам осей рассчитать координаты точек, необходимых для построения диаграммы, и построить их, используя операторы цикла.
— На пиктограмме или рядом с ней вывести числовые их значения.
— Построить легенду диаграммы, которую нужно разместить справа от диаграммы.
uses
crt,graph;
var
i,j,k,max,n,x: integer;
c: string;
a: array [1..12] of string;
b: array [1..12] of integer;
begin
clrscr;
write('wwedite kol-wo elementow: ');
readln(n);
for i:= 1 to n do
begin
write('wwedite mesyac: ');
readln(a[i]);
write('wwedite temperaturu: ');
readln(b[i]);
end;
max:=b[1]; {находим максимальную температуру}
for i:= 1 to n do
if b[i]>max then
max:=b[i];
i:=detect;
initgraph(i,i,'');
j:=(getmaxx-140) div max; {находим шаг на оси OX}
k:=(getmaxy-60) div n; {находим шаг на оси OY}
line(60,getmaxy-60,getmaxx-80,getmaxy-60); {ось OX}
line(60,getmaxy-60,60,0); {ось OY}
setcolor(6);
for i:= 1 to n do
begin
c:='';
x:=b[i];
while x>0 do
begin
c:=chr((x mod 10)+48)+c;
x:=x div 10;
end;
outtextxy(5,getmaxy-60-(i*k)+round(k*0.5),a[i]); {Здесь начинаем}
outtextxy(60+(b[i]*j),getmaxy-50,c); {строить график}
moveto(60,getmaxy-60-(i*k)+round(k*0.5)+round(k*0.2)); {здесь будет тяжело}
lineto(b[i]*j+60,getmaxy-60-(i*k)+round(k*0.5)+round(k*0.2)); {разобраться, поэтому}
lineto(b[i]*j+60,getmaxy-60-(i*k)+round(k*0.5)-round(k*0.2)); {не советую}
lineto(60,getmaxy-60-(i*k)+round(k*0.5)-round(k*0.2)); {будем думать, что }
lineto(60,getmaxy-60-(i*k)+round(k*0.5)+round(k*0.2)); {просто рисуем нужные линии}
SetFillStyle(SolidFill,i+1);
FloodFill(80,getmaxy-70-(i*k)+round(k*0.5)+round(k*0.2),6);
end;
for i:= 1 to n do {выводим таблицу значений}
begin
c:='';
x:=b[i];
while x>0 do
begin
c:=chr((x mod 10)+48)+c;
x:=x div 10;
end;
outtextxy(560,i*10,a[i]);
outtextxy(620,i*10,c);
end;
outtextxy(560,200,'Legenda'); {выводим легенду}
Setcolor(4);
line(560,220,570,220);
Setcolor(6);
outtextxy(575,220,'Grafik');
readkey;
end.