Посчитать среднее арифметическое цифр - 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;
Объяснение кода листинга программы
- В функции Aver объявлены три переменные: k, p и q. Они являются целочисленными типами данных и инициализируются нулем.
- Переменная s является строковым типом данных и инициализируется строкой, содержащей символ пробела в начале.
- Затем происходит цикл, который выполняется для каждой цифры от 1 до 9.
- Внутри цикла переменная p инициализируется позицией текущей цифры в строке s.
- Затем происходит цикл while, который выполняется до тех пор, пока переменная p больше нуля.
- Внутри цикла while переменные k и q инициализируются значением 0.
- Затем происходит увеличение переменной k на единицу и вычисление значения q как произведения текущего символа и его порядкового номера (от 0 до 9).
- После этого происходит удаление символа текущей цифры из строки s, заменяя его на символ '0'.
- Затем переменная p инициализируется новой позицией следующего символа.
- Цикл while повторяется до тех пор, пока переменная p больше нуля.
- После окончания цикла while, если переменная k равна 0, то значение функции Aver устанавливается в 0, иначе оно устанавливается в значение q, деленное на k.
- Функция заканчивает свое выполнение и возвращает полученное среднее арифметическое.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д