Напишите программу, которая выводит на экран круговую диаграмму - 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.

Объяснение кода листинга программы

  1. Используется библиотека graphABC.
  2. Создаются массивы значений x, cv и y.
  3. Переменные i, c, r, x1 и y1 инициализируются.
  4. Вычисляется сумма s.
  5. Для каждого элемента i от 1 до 4 вычисляется удельный вес y[i] и сохраняется в массиве y.
  6. Устанавливается размер окна и выравнивание текста.
  7. Выводится текст Товарооборот в процентах.
  8. Вычисляется угол b, используя первый элемент массива y.
  9. Устанавливаются цвет кисти и шрифта для текста.
  10. Выводится круговая диаграмма с использованием функции pie.
  11. Вычисляются координаты x1 и y1 для текста.
  12. Выводится текст 30 %.
  13. Для каждого элемента i от 2 до 3 вычисляется угол a, используя соответствующий элемент массива y.
  14. Выводятся круговые диаграммы для каждого элемента i с использованием функций pie и textout.
  15. Вычисляется угол b для второго элемента массива y.
  16. Выводится текст 50 %.
  17. Для каждого элемента i от 2 до 3 вычисляется угол a, используя соответствующий элемент массива y.
  18. Выводятся круговые диаграммы для каждого элемента i с использованием функций pie и textout.
  19. Вычисляется угол b для третьего элемента массива y.
  20. Выводится текст 100 %.
  21. Задаются цвета кистей для последней диаграммы.
  22. Выводится последняя диаграмма.
  23. Закрывается программа.

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы