Загрузка данных


uses GraphABC;

const
  n = 5;

var
  a: array[1..n] of integer := (60, 80, 75, 90, 55);
  
  // Цвета сопоставлены строго по порядку вычерчивания секторов
  colors: array[1..n] of Color := (
    RGB(220, 65, 80),   // 1. Красный (для 60)
    RGB(110, 75, 175),  // 2. Фиолетовый (для 80)
    RGB(80, 165, 215),  // 3. Голубой (для 75)
    RGB(100, 175, 80),  // 4. Зеленый (для 90)
    RGB(230, 195, 45)   // 5. Желтый (для 55)
  );

  i, S, u0, u1: integer;

begin
  SetWindowSize(500, 400);
  SetWindowCaption('Круговая диаграмма');

  // 1. Нахождение суммы всех элементов
  S := 0;
  for i := 1 to n do
    S := S + a[i];

  // 2. Отрисовка секторов по порядку
  u0 := 0;
  for i := 1 to n do
  begin
    u1 := u0 + trunc(a[i] * 360 / S);
    SetBrushColor(colors[i]);
    Pie(200, 200, 110, u0, u1);
    u0 := u1;
  end;
end.