Пожалуйста, сделайте задание правильно. Напишите программу по задаче:Найти произведение элементов массива, кратных 3 и 9. Размерность массива - случайные числа от 5 до 500.
(Язык программирования - Паскаль)​

Ответы

Ответ дал: KnowsUser1
1

Ответ:

PascalABC.NET

begin

 var arr := ArrRandom(15, 5,500);

 arr.Where(x -> x mod 3 = 0).Where(x -> x mod 9 = 0).Product.Println;

end.


BobbyFresnel: Тут спорно. Если число кратно 9, оно автоматически кратно трем, так что вряд ли задание следует понимать, как "кратное 3 и 9 одновременно". Хотя с другой стороны, если думать, что надо перемножить элементы кратные 3 с элоементами, кратными 9, непонятно, как обеспечить равенство длин таких последовательностей?
BobbyFresnel: Скорее всего, все же имеется в виду одновременность, но тогда отбор элементов, кратных 3, лишний. Ну и потом, чего сразу не написать x -> (x mod 3 = 0) and (x mod 9 = 0) ?
KnowsUser1: на счёт кратности 3 и 9 фиг вообще знает, что хотел автор задания, а на счёт x -> (x mod 3 = 0) and (x mod 9 = 0), почему то возвращалась корявая последовательность. То есть, там почему то оказывались числа, ни кратные 3, ни 9. Не спорю конечно, что у меня руки не совсем из плеч, но всё же. А так костыль, но работает вроде правильно
BobbyFresnel: begin
var arr := ArrRandom(15, 5, 500);
arr.Where(x -> (x mod 3 = 0) and (x mod 9 = 0)).Println
end. проверил, возвращается все как надо.
BobbyFresnel: Что до "рук" - этот язык хоть и базируется на C#, но он проще и все же имеет отличия. Другими словами, "по верхам" можно и за пару часов после C# начать писать программы, но это будет именно "по верхам".
BobbyFresnel: Хотя, безусловно, LINQ работает так же - это ведь .NET язык
Вас заинтересует