Вопрос школьника по предмету Информатика
Найти среднее арифметическое целых чисел в типизированном файле (file of integer), разница наибольшей и наименьшей цифр которых меньше 5. Если таких чисел нет, то результат- ноль. функция принимает в качестве параметра имя файла Name FUNCTION P(NAME:STRING):DOUBLE;
Ответ учителя по предмету Информатика
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
function IsGood(Self:integer):boolean; extensionmethod;
begin
(var max,var min,var n):=(0,9,abs(Self));
while n>0 do begin
var d:=n mod 10;
if d>max then max:=d;
if d<min then min:=d;
n:=n div 10
end;
Result:=max-min<5
end;
function P(name:string):double;
begin
Result:=ReadElements&<integer>(name).Where(n->n.IsGood).Average
end;
begin
Writeln(‘Среднее арифметическое равно ‘,P(ReadlnString(‘Имя файла:’)))
end.
Пример
Имя файла: integers.pas
Среднее арифметическое равно 1.78571428571429
Похожие вопросы от пользователей
1 22/77 : 5 11/7= 22/33 : x
6 класс, тема пропорции и отношения
1) мы встали утром. Над нами весёлое солнце.Я иду,и мой след темной полосой ложится на траву.Зелень её темна и тускла.
2) Мама -самый светлый,самый дорогой для меня человек. Она учит меня добру.
3) У школы растут берёзы.Они широко раскинули ветви.Мы заботимся о них.