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.