На
алг
нач
логич продолжать;
цел n, total_desks, students, desks, total_students;
total_desks := 0;
total_students := 0;
продолжать := истина;
подпрограмма CalculateDesks(учеников : цел) : цел
нач
возвращает (учеников + 1) div 2;
кон
пока продолжать
нач
вывод "Введите количество учеников в классе (или -1 для выхода): ";
ввод students;
если students = -1 то
продолжать := ложь;
иначе если students >= 0 то
desks := CalculateDesks(students);
total_desks := total_desks + desks;
total_students := total_students + students;
иначе
вывод "Ошибка: введите неотрицательное число или -1 для выхода.";
все
кон
если total_students > 0 то
вывод "Общее количество парт: ", total_desks;
вывод "Среднее количество учеников на парту: ", total_students div total_desks;
иначе
вывод "Нет данных для обработки.";
все
кон