Построить круговую диаграмму “Нормы питания" - PascalABC.NET
Формулировка задачи:
Построить круговую диаграмму “Нормы питания девочек 11-13 лет”. Девочки 11-13 лет должны получать в день 85г белков, 85г жиров, 340г углеводов.
Решение задачи: «Построить круговую диаграмму “Нормы питания"»
textual
Листинг программы
uses GraphABC; begin var data := Arr( (85, 'белков, г.', clYellow), (85, 'жиров, г.', clLime), (340, 'углеводов, г.', clRed) ); setWindowSize(600, 600); SetFontSize(10); var sum := data.Sum(v -> v[0]); data.Numerate(0).Aggregate(0, (a, b) -> begin var inf := b[1]; result := a + round(inf[0] * 360 / sum) + 1; SetBrushColor(inf[2]); Pie(200, 240, 140, a, result); textout(400, b[0] * 25, inf[1]); textout(550, b[0] * 25, floattostr(inf[0])); end); end.
Объяснение кода листинга программы
- Объявлена переменная
data
типа Arr, которая содержит список данных для построения диаграммы (85 г. белков, 85 г. жиров, 340 г. углеводов). - Установлен размер окна и размер шрифта.
- Вычислено общее количество белков, жиров и углеводов путем суммирования значений первого столбца массива
data
. - Для каждого элемента массива
data
выполняется агрегация, которая суммирует значения первого столбца и сохраняет индекс элемента. - Для каждого элемента массива
data
рисуется круговая диаграмма с использованием цвета, соответствующего цвету углеводов (красный). - С помощью функции textout выводится название и значение каждого элемента массива
data
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д