Дано целое число. определить в этом числе количество цифр, сумму чисел, среднее арифметическое. (pascal)

Поляков Евгений Александрович

Учитель информатики высшей категории

Проверено учителем

Для решения этой задачи в Pascal наиболее эффективным методом является использование цикла while. Мы будем последовательно "отсекать" последнюю цифру числа с помощью операции mod (остаток от деления) и уменьшать само число с помощью div (целочисленное деление). Текст программы pascal

program NumberAnalysis; var number, temp, digit: integer; count, sum: integer; average: real; begin { Ввод исходного числа } write('Введите целое число: '); readln(number); { Работаем с абсолютным значением, чтобы программа корректно считала отрицательные числа } temp := abs(number); count := 0; sum := 0; { Если введено 0, цикл не сработает, поэтому обрабатываем этот случай } if temp = 0 then begin count := 1; sum := 0; end else begin while temp > 0 do begin digit := temp mod 10; { Получаем последнюю цифру } sum := sum + digit; { Прибавляем к общей сумме } count := count + 1; { Увеличиваем счетчик количества } temp := temp div 10; { Удаляем последнюю цифру из числа } end; end; { Вычисление среднего арифметического } if count > 0 then average := sum / count else average := 0; { Вывод результатов } writeln('Количество цифр: ', count); writeln('Сумма цифр: ', sum); writeln('Среднее арифметическое: ', average:0:2); readln; end. 
Use code with caution.Разбор логики работы

  1. abs(number): Мы используем модуль числа. Если пользователь введет -123, программа должна считать цифры 1, 2, 3, игнорируя минус.
  2. Цикл while temp > 0:
    • temp mod 10 извлекает последнюю цифру. Например, 123(mod10)=3123 space open paren mod 10 close paren equals 3. temp div 10 убирает последнюю цифру. Например, 123÷10=12123 divided by 10 equals 12.
  3. Среднее арифметическое: Вычисляется как отношение суммы цифр к их количеству. Переменная average имеет тип real, так как результат деления редко бывает целым числом.
  4. Форматированный вывод: Инструкция :0:2 в операторе writeln ограничивает вывод среднего арифметического двумя знаками после запятой.

Пример работы Если ввести число 456:

  • Количество цифр: 3
  • Сумма: 4+5+6=154 plus 5 plus 6 equals 15 Среднее: 15/3=5.0015 / 3 equals 5.00

Хотите, чтобы я модифицировал код для работы с очень длинными числами, которые не помещаются в стандартный тип integer?

Форма ответа

Ваш аватар