program PieChart;
uses GraphABC;
var
a: array[1..10] of integer;
i, n, s, u0, u1: integer;
begin
// 1. Ввод исходных данных в консоли
write('Количество n = ');
readln(n);
writeln(n); // Вывод в консоль для наглядности
writeln('Элементы массива: ');
for var i := 1 to n do
begin
read(a[i]);
write(a[i], ' ');
end;
writeln;
// 2. Подсчет суммы всех элементов для вычисления долей
s := 0;
for var i := 1 to n do
s := s + a[i];
// Исходный угол (начало отрисовки первого сектора)
u0 := 0;
// Настройка окна под вывод графики
ClearWindow;
// Вывод текстовой информации в графическом окне (как на фото)
TextOut(10, 10, 'Количество n = ' + IntToStr(n));
TextOut(10, 30, 'Элементы массива:');
var elementsStr := '';
for var i := 1 to n do
elementsStr := elementsStr + IntToStr(a[i]) + ' ';
TextOut(10, 50, elementsStr);
// 3. Цикл отрисовки секторов диаграммы
for var i := 1 to n do
begin
// Вычисление конечного угла для текущего сектора
// u1 = u0 + доля_элемента * 360 градусов
u1 := u0 + Round(a[i] * 360 / s);
// Установка случайного цвета кисти для закраски сектора
SetBrushColor(RGBRandom);
// Рисование сектора (центр в точке 300, 200, радиус 100)
Pie(300, 200, 100, u0, u1);
// Следующий сектор начинается там, где закончился текущий
u0 := u1;
end;
end.