Напишите программу,которая выводит на экран круговую диаграмму,отражающую товарооборот в % книж. магазина - Pascal
Формулировка задачи:
Ребят помогите исправить ошибки!
//
program diagram; uses crt; const x:array[1..4] of string=('Knigi','Zurnaly','Kanctovary','Proctee'); var dr,mode,i,xc,yc,r,detect,initgraph:integer; y:array[1..4] of real; s:real; a,b:longint; st:string; begin clrscr; s:=0; writeln('Vvedite tovarooborot po vidam:'); for i:=1 to 4 do begin write(x[i],'='); readln(y[i]); s:=s+y[i]; end; for i:=1 to 4 do y[i]:=y[i]*100/s; dr:=detect; initgraph(dr,mode,''); xc:=GetMaxX div 2; yc:=GetMaxY div 2; outtextxy(Xc-80,20,'Tovarooborot po vidam, %'); b:=round(360*y[1]/100); r:=150; setcolor(10); setfillstyle(1,11); pieslice(xc,yc,0,b,r); for i:=2 to 3 do begin a:=round(360*y[i]/100)+b; setcolor(10+i); setfillstyle(1,10+i); pieslice(xc,yc,a,b,r); b:=a; end; setcolor(14); setfillstyle(1,14); pieslice(xc,yc,b,360,r); for i:=1 to 4 do begin setcolor(i+10); setfillstyle(1,i+10); bar(xc+150,i*40,xc+180,i*40+20); setcolor(15); str(y[i]:0:2,st); outtextXY(xc+190,i*40+5,x[i]+'-'+st); end; readkey; end.
Решение задачи: «Напишите программу,которая выводит на экран круговую диаграмму,отражающую товарооборот в % книж. магазина»
textual
Листинг программы
program diagram; uses graph,crt; const x:array[1..4] of string=('Knigi','Zurnaly','Kanctovary','Proctee'); var dr,mode,i,xc,yc,r,detect:integer; y:array[1..4] of real; s:real; a,b:longint; st:string; begin clrscr; s:=0; writeln('Vvedite tovarooborot po vidam:'); for i:=1 to 4 do begin write(x[i],'='); readln(y[i]); s:=s+y[i]; end; for i:=1 to 4 do y[i]:=y[i]*100/s; dr:=detect; initgraph(dr,mode,''); xc:=GetMaxX div 2; yc:=GetMaxY div 2; outtextxy(Xc-80,20,'Tovarooborot po vidam, %'); b:=round(360*y[1]/100); r:=150; setcolor(10); setfillstyle(1,11); pieslice(xc,yc,0,b,r); for i:=2 to 3 do begin a:=round(360*y[i]/100)+b; setcolor(10+i); setfillstyle(1,10+i); pieslice(xc,yc,a,b,r); b:=a; end; setcolor(14); setfillstyle(1,14); pieslice(xc,yc,b,360,r); for i:=1 to 4 do begin setcolor(i+10); setfillstyle(1,i+10); bar(xc+150,i*40,xc+180,i*40+20); setcolor(15); str(y[i]:0:2,st); outtextXY(xc+190,i*40+5,x[i]+'-'+st); end; readkey; end.
Объяснение кода листинга программы
- Объявление и инициализация переменных:
x:array[1..4] of string=('Knigi','Zurnaly','Kanctovary','Proctee');
- Создание массива строкx
с названиями товаров.dr,mode,i,xc,yc,r,detect:integer;
- Объявление целочисленных переменныхy:array[1..4] of real;
- Создание массива вещественных чиселy
.
- Ввод данных:
- Из пользовательского ввода получаем значения товарооборота для каждого вида товара и записываем в массив
y
.
- Из пользовательского ввода получаем значения товарооборота для каждого вида товара и записываем в массив
- Инициализация графики:
dr:=detect; initgraph(dr,mode,'');
- Инициализация графического режима для отображения круговой диаграммы.
- Отрисовка круговой диаграммы:
- Вычисление углов и радиуса для каждого сектора диаграммы на основе товарооборота и отрисовка секторов с помощью функции
pieslice
.
- Вычисление углов и радиуса для каждого сектора диаграммы на основе товарооборота и отрисовка секторов с помощью функции
- Отображение легенды:
- Создание цветных баров и вывод соответствующих подписей с названием товара и его долей в общем товарообороте. Это программный код на языке Pascal, который запрашивает у пользователя товарооборот для каждой категории товаров и строит круговую диаграмму, отражающую процентное соотношение товарооборота по каждой категории.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д