Для организации беспрерывного ввода чисел с клавиатуры в языке программирования Паскаль с использованием цикла repeat
можно следовать следующему алгоритму. Цель: продолжать ввод чисел до тех пор, пока пользователь не введет 0. После этого необходимо вывести количество введенных чисел, их общую сумму и среднее арифметическое.
Вот пример кода с комментариями для понимания каждого шага:
program ContinuousInput;
var
number: Integer;
count: Integer;
sum: Integer;
average: Real;
begin
// Инициализация переменных
count := 0;
sum := 0;
average := 0.0;
writeln('Введите числа (0 для завершения):');
repeat
// Ввод числа с клавиатуры
readln(number);
// Проверяем, не ввел ли пользователь 0
if number 0 then
begin
// Увеличиваем счетчик введенных чисел
count := count + 1;
// Добавляем введенное число к общей сумме
sum := sum + number;
end;
until number = 0;
// Проверяем, были ли введены числа (кроме 0)
if count > 0 then
begin
// Вычисляем среднее арифметическое
average := sum / count;
// Выводим результаты на экран
writeln('Количество введенных чисел: ', count);
writeln('Сумма чисел: ', sum);
writeln('Среднее арифметическое: ', average:0:2); // Вывод с двумя знаками после запятой
end
else
begin
writeln('Ни одно число не было введено, кроме 0.');
end;
end.
Объяснение:
Инициализация переменных:
count
: для подсчета количества введенных чисел.
sum
: для хранения суммы введенных чисел.
average
: для вычисления среднего арифметического.
Цикл repeat
:
- В этом цикле происходит ввод чисел.
- Условие
if number 0
позволяет исключить 0 из подсчета и суммирования.
Подсчет и суммирование:
- Каждый раз, когда пользователь вводит число отличное от 0, увеличиваем
count
и добавляем значение number
к sum
.
Проверка на количество введенных чисел:
- Если
count > 0
, вычисляем среднее арифметическое и выводим результаты.
- В противном случае выводим сообщение, что ни одно число не было введено.
Этот код позволяет пользователю вводить числа до тех пор, пока не будет введен 0, после чего программа выводит количество чисел, их сумму и среднее арифметическое.