Для решения данной задачи на Паскале ABC, мы можем создать программу, которая будет выполнять следующее:
- Запрашивать у пользователя список названий учебных предметов.
- Генерировать случайное количество человек для каждого из предметов, которые будут сдавать ЦТ.
- Строить круговую диаграмму на основе полученных данных.
Вот пример кода, который демонстрирует, как это можно реализовать:
program SubjectsStatistics;
uses crt, Graph, SysUtils;
var
subjects: array of string; // Массив для хранения названий предметов
counts: array of integer; // Массив для хранения количества человек
i, numSubjects, totalCount: integer;
begin
// Ввод названий предметов
writeln('Введите количество учебных предметов:');
readln(numSubjects);
SetLength(subjects, numSubjects);
SetLength(counts, numSubjects);
for i := 0 to numSubjects - 1 do
begin
write('Введите название предмета ', i + 1, ': ');
readln(subjects[i]);
// Генерация случайного количества человек от 1 до 100
counts[i] := Random(100) + 1;
end;
// Инициализация графики
InitGraph(0, 0, 'C:\Turbopas\BGI'); // Проверьте путь к BGI для вашей системы
totalCount := 0;
// Подсчет общего количества человек
for i := 0 to numSubjects - 1 do
totalCount := totalCount + counts[i];
// Построение круговой диаграммы
var angle: real := 0; // Начальный угол
for i := 0 to numSubjects - 1 do
begin
SetFillStyle(i + 1, i + 1); // Установка цвета для каждого сектора
pieslice(300, 300, Round(angle), Round(angle + (counts[i] / totalCount) * 360), 100);
angle := angle + (counts[i] / totalCount) * 360; // Увеличение угла для следующего сектора
end;
// Подпись каждого сектора
angle := 0;
for i := 0 to numSubjects - 1 do
begin
outtextxy(300 + Round(120 * cos(angle + (counts[i] / totalCount) * 180)),
300 + Round(120 * sin(angle + (counts[i] / totalCount) * 180)),
subjects[i]);
angle := angle + (counts[i] / totalCount) * 360; // Увеличение угла
end;
readln; // Ожидание нажатия клавиши
CloseGraph; // Закрытие графического окна
end.
Обратите внимание на следующие моменты:
- Убедитесь, что у вас установлены необходимые библиотеки для работы с графикой (BGI).
- Для корректного отображения круговой диаграммы необходимо настроить путь к BGI в функции
InitGraph. - В данном примере количество людей генерируется в диапазоне от 1 до 100, вы можете изменить этот диапазон по своему усмотрению.
Эта программа запросит у пользователя названия предметов, произвольно сгенерирует количество сдающих ЦТ и отобразит круговую диаграмму с соответствующими секторами. Удачи в ваших учебных начинаниях!
