Посчитать среднее арифметическое цифр - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

В функцию передаётся строка S, в ней есть и пробелы и слова. Пробелы могут быть в любом месте. Есть слова в которых последний символ это цифра . Напишите функцию, которая будет считать среднее арифметическое этих цифр. Строка 5zxcv yuio9 sdfgg poi7 rgn 9876 8 Ответ 7.5 не могу понять, почему считает неверно, помогите, пожалуйста.

Решение задачи: «Посчитать среднее арифметическое цифр»

textual
Листинг программы
function Aver(s: String): Real;
var k, p, q: Integer; c: Char;
begin
  k:=0; q:=0; s:=s+' ';
  for c:='1' to '9' do begin
    p:=Pos(c+' ',s);
    while p>0 then begin
      Inc(k); q:=q+Ord(c)-Ord('0');
      Delete(s,p,1); Insert('0',s,p); {s[i]:='0';}
      p:=Pos(c+' ',s);
    end;
  end;
  if k=0 then Aver:=0 else Aver:=q/k;
end;

Объяснение кода листинга программы

  1. В функции Aver объявлены три переменные: k, p и q. Они являются целочисленными типами данных и инициализируются нулем.
  2. Переменная s является строковым типом данных и инициализируется строкой, содержащей символ пробела в начале.
  3. Затем происходит цикл, который выполняется для каждой цифры от 1 до 9.
  4. Внутри цикла переменная p инициализируется позицией текущей цифры в строке s.
  5. Затем происходит цикл while, который выполняется до тех пор, пока переменная p больше нуля.
  6. Внутри цикла while переменные k и q инициализируются значением 0.
  7. Затем происходит увеличение переменной k на единицу и вычисление значения q как произведения текущего символа и его порядкового номера (от 0 до 9).
  8. После этого происходит удаление символа текущей цифры из строки s, заменяя его на символ '0'.
  9. Затем переменная p инициализируется новой позицией следующего символа.
  10. Цикл while повторяется до тех пор, пока переменная p больше нуля.
  11. После окончания цикла while, если переменная k равна 0, то значение функции Aver устанавливается в 0, иначе оно устанавливается в значение q, деленное на k.
  12. Функция заканчивает свое выполнение и возвращает полученное среднее арифметическое.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5
Похожие ответы