Ответы
Ответ дал:
0
// PascalABC.NET
begin
var n := ReadInteger('n =');
var a:= ArrRandom(n, -99, 99);
a.Println;
var m := a.Max;
a.Transform(p -> p < 0 ? m : p);
a.Print
end.
ramlshakirov05:
Помоги мне
Ответ дал:
0
PascalABC.NET
Ответ:
- begin
- var a:=ArrRandom(ReadInteger('Введите размер:'),-10,10);
- Println(a);
- a.ForEach((x,i) -> if x<0 then a[i]:= a.Max);
- Println(a);
- end.
Пояснение:
ArrRandom(a,b,c) возвращает массив размера a, заполненный случайными целыми значениями в диапазоне от b до с.
Пример работоспособности:
Приложения:
Вот только паршиво, что при выполнении a[i]:= a.Max) вычисление максимума каждый раз будет делаться заново.
Помоги мне
Да, забыл... просто на js пишу, а там бы a.Max обновилась бы только после foreach.
Если так, то JS в топку однозначно. Получается, что там нельзя использовать функцию, потому что она не перевычисляется.
Хехе, там приоритеты регулируются.
Вы замените в своем решении a.Max на a.Max + 1 и увидите "маленькое чудо"
Лямбда должна быть полноценной, как в Haskell, а в JS, стало быть, она кривая.
"a.Max на a.Max + 1" конечно max будет каждый раз разный. А на счёт js - за чистый не ручаюсь, но на react абсолютно другая система работы, её просто неправильно будет сравнить с такими как Python или C# (в Haskell не влазил). И как я уже сказал, приоритеты выполнения настраиваются, перевычисление там конечно же есть.
"a.Max на a.Max + 1" конечно max будет каждый раз разный" - это и доказывает неэффективность иcпользования a.Max в foreach, while и repeat из-за перевычисления. Вот в for можно, потому что там нет перевычисления по определению алгорита работы этого цикла.
Вас заинтересует
2 года назад
2 года назад
2 года назад
7 лет назад
7 лет назад
9 лет назад