Напишите программу, которая выводит на экран круговую диаграмму - Pascal ABC
Формулировка задачи:
Напишите программу, которая выводит на экран круговую диаграмму , отражающую
товарооборот (в процентах) книжного магазина. Исходные данные 30% 35% 30% 5%.
Решение задачи: «Напишите программу, которая выводит на экран круговую диаграмму»
textual
Листинг программы
- uses graphABC;
- const x:array[1..4] of integer=(30,35,30,5); //массив значений
- cv:array[1..4]of integer=(clRed,clGreen,clBlue,clLime); //массив цветов
- var i,c,r,x1,y1:integer;
- y:array[1..4] of real;//массив удельных весов
- s,a,b:integer;//сумма, углы
- begin
- s:=0;
- for i:=1 to 4 do
- s:=s+x[i];
- for i:=1 to 4 do
- y[i]:=x[i]*100/s;
- setwindowsize(500,500);
- centerwindow;
- c:=250;
- setfontsize(16);
- textout(c-120,20,'Товарооборот в процентах');
- b:=round(360*y[1]/100);
- r:=150;
- setpencolor(cv[1]);
- setbrushcolor(cv[1]);
- pie(c,c,r,0,b);
- x1:=c+round((r+30)*cos(b/2*pi/180));
- y1:=c-round((r+30)*sin(b/2*pi/180));
- setbrushstyle(bsClear);
- setfontcolor(cv[1]);
- textout(x1,y1,inttostr(x[1])+' %');
- for i:=2 to 3 do
- begin
- a:=round(360*y[i]/100)+b;
- setpencolor(cv[i]);
- setbrushcolor(cv[i]);
- setbrushstyle(bsSolid);
- pie(c,c,r,b,a);
- x1:=c+round((r+50)*cos((b+(a-b)/2)*pi/180));
- y1:=c-round((r+20)*sin((b+(a-b)/2)*pi/180));
- setbrushstyle(bsClear);
- setfontcolor(cv[i]);
- textout(x1,y1,inttostr(x[i])+' %');
- b:=a;
- end;
- setpencolor(cv[4]);
- setbrushcolor(cv[4]);
- setbrushstyle(bsSolid);
- pie(c,c,r,b,360);
- setbrushstyle(bsClear);
- setfontcolor(cv[4]);
- x1:=c+round((r+20)*cos((b+(360-b)/2)*pi/180));
- y1:=c-round((r-100)*sin((b+(360-b)/2)*pi/180));
- textout(x1,y1,inttostr(x[4])+' %');
- end.
Объяснение кода листинга программы
- Используется библиотека graphABC.
- Создаются массивы значений x, cv и y.
- Переменные i, c, r, x1 и y1 инициализируются.
- Вычисляется сумма s.
- Для каждого элемента i от 1 до 4 вычисляется удельный вес y[i] и сохраняется в массиве y.
- Устанавливается размер окна и выравнивание текста.
- Выводится текст
Товарооборот в процентах
. - Вычисляется угол b, используя первый элемент массива y.
- Устанавливаются цвет кисти и шрифта для текста.
- Выводится круговая диаграмма с использованием функции pie.
- Вычисляются координаты x1 и y1 для текста.
- Выводится текст
30 %
. - Для каждого элемента i от 2 до 3 вычисляется угол a, используя соответствующий элемент массива y.
- Выводятся круговые диаграммы для каждого элемента i с использованием функций pie и textout.
- Вычисляется угол b для второго элемента массива y.
- Выводится текст
50 %
. - Для каждого элемента i от 2 до 3 вычисляется угол a, используя соответствующий элемент массива y.
- Выводятся круговые диаграммы для каждого элемента i с использованием функций pie и textout.
- Вычисляется угол b для третьего элемента массива y.
- Выводится текст
100 %
. - Задаются цвета кистей для последней диаграммы.
- Выводится последняя диаграмма.
- Закрывается программа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д