Даны натуральное число n и вещественные числа a1, a2, a3, ..., аn. Определить сумму тех из них, которые больше 10,75. В программе запрещено использовать оператор выбора case, оператор цикла for.
a.TakeWhile(p -> p > 0).DefaultIfEmpty.Average.Println
end.
Объяснение:
TakeWhile(p -> p > 0) - отбирает элементы от начала до тех пор, пока условие p > 0 истинно, т.е. со значением, большим нуля.
DefaultIfEmpty - если первое же значение не положительно, результатом будет один элемент, равный нулю (нельзя найти среднее, если элементов не отобрано вообще, получим 0/0)
x>=10 - в данное неравенство входят все x из промежутка [10;+oo), т.е на данном промежутке неравенство истинно. А ложно оно соотвественно на (-oo;10). Логическое "не" инвертирует данное неравенство( истина становится ложью, и наоборот), значит:
не(x>=10) равносильно (x<10), и промежуток x: (-oo;10)
В итоге:
не(x - нечетное) и не(x>=10)<=>(x - четное) и (x<10)
Полученное неравенство будет истинно для четных x из промежутка (-oo;10).
begin
var n := ReadInteger('n =');
var a := ArrRandom(n, -10, 99);
a.Println;
a.TakeWhile(p -> p > 0).DefaultIfEmpty.Average.Println
end.
Объяснение:
TakeWhile(p -> p > 0) - отбирает элементы от начала до тех пор, пока условие p > 0 истинно, т.е. со значением, большим нуля.
DefaultIfEmpty - если первое же значение не положительно, результатом будет один элемент, равный нулю (нельзя найти среднее, если элементов не отобрано вообще, получим 0/0)
Average - находит среднее отобранных элементов
Не нечетное число - это четное число, поэтому:
не(x - нечетное) равносильно (x - четное)
x>=10 - в данное неравенство входят все x из промежутка [10;+oo), т.е на данном промежутке неравенство истинно. А ложно оно соотвественно на (-oo;10). Логическое "не" инвертирует данное неравенство( истина становится ложью, и наоборот), значит:
не(x>=10) равносильно (x<10), и промежуток x: (-oo;10)
В итоге:
не(x - нечетное) и не(x>=10)<=>(x - четное) и (x<10)
Полученное неравенство будет истинно для четных x из промежутка (-oo;10).
Наибольшее четное число из (-oo;10): 8
ответ: 8