Найти и вывести среднее арифметическое цифр, встречающихся в строке - PascalABC.NET
Формулировка задачи:
Вводится произвольная строка символов в состав которой могут входить и цифры. Найти и вывести среднее арифметическое цифр, которые встретились в этой строке.
Исправте плиз .
Листинг программы
- var
- s: string;
- i, l: byte;
- q: real;
- begin
- read(st);
- s := 0;
- m := 0;
- y := 0;
- for i := 1 to length(st) do
- begin
- val(st[i], c, e);
- g := c;
- while g <> 0 do
- begin
- t := g mod 10;
- g := g div 10;
- m := m + g;
- y := y + 1;
- end;
- end;
- q := m / y;
- write(q);
- end.
Решение задачи: «Найти и вывести среднее арифметическое цифр, встречающихся в строке»
textual
Листинг программы
- begin
- var s := ReadLnString('s = ').Where(ch -> char.IsDigit(ch));
- if s.Count() > 0 then
- WriteLn('Среднее арифметическое цифр = ', s.Average(ch -> StrToInt('' + ch)))
- else WriteLn('В строке нет цифр')
- end.
Объяснение кода листинга программы
- Переменная
s
принимает строку, введенную пользователем, с помощью функции ReadLnString. - Метод Where используется для фильтрации символов строки
s
, оставляя только цифры. - Если в строке остались цифры (количество символов в строке больше 0), то вычисляется среднее арифметическое цифр с помощью метода Average.
- Для каждой цифры
ch
в строкеs
преобразуется в целое число с помощью функции StrToInt, добавляя к символу пробел. - Если в строке нет цифр, то выводится сообщение
В строке нет цифр
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д