1. Разобьем условие на части, чтобы было нагляднее. в числе меньше восьми цифр "И" [число кратно 3 "ИЛИ" (число содержит 2 "И" число кратно 5)]
2. Условие "в числе меньше восьми цифр" связано с остальной частью выражения по "И", следовательно, оно обязательное и все, что ему не удовлетворяет, должно быть отброшено вместе с этим условием. Варианты 4) и 6) содержат 8 цифр и отбрасываются.
3. число кратно 3 "ИЛИ" число содержит 2 "И" число кратно 5 Если варианты "число кратно 3" есть, мы их выбираем, а это условие отбрасываем. Кратны трем числа 1) 69 2) 12 и 7) 15.
4. Остались числа 3) 25, 5) 22 и 8) 55. Проверяем их на условие число содержит 2 "И" число кратно 5 Содержат двойку 3) 25 и 5) 22, но лишь 25 кратно 5 - его и оставляем.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=new List<real>; a.AddRange(ReadSeqReal('Введите список А:',10)); var b:=new List<real>; b.AddRange(ReadSeqReal('Введите список B:',10)); var x:=new List<real>; x.AddRange(a.Zip(b,(p,q)->q/p)); Write('A: '); a.Println; Write('B: '); b.Println; Write('X: '); x.Where(p->Trunc(p) mod 5=0).Println; end.
в числе меньше восьми цифр "И"
[число кратно 3 "ИЛИ"
(число содержит 2 "И" число кратно 5)]
2. Условие "в числе меньше восьми цифр" связано с остальной частью выражения по "И", следовательно, оно обязательное и все, что ему не удовлетворяет, должно быть отброшено вместе с этим условием.
Варианты 4) и 6) содержат 8 цифр и отбрасываются.
3. число кратно 3
"ИЛИ"
число содержит 2
"И"
число кратно 5
Если варианты "число кратно 3" есть, мы их выбираем, а это условие отбрасываем.
Кратны трем числа 1) 69 2) 12 и 7) 15.
4. Остались числа 3) 25, 5) 22 и 8) 55.
Проверяем их на условие
число содержит 2
"И"
число кратно 5
Содержат двойку 3) 25 и 5) 22, но лишь 25 кратно 5 - его и оставляем.
ответ: 1) 2) 3) 7)
// Внимание! Если программа не работает, обновите версию!
begin
var a:=new List<real>;
a.AddRange(ReadSeqReal('Введите список А:',10));
var b:=new List<real>;
b.AddRange(ReadSeqReal('Введите список B:',10));
var x:=new List<real>;
x.AddRange(a.Zip(b,(p,q)->q/p));
Write('A: '); a.Println;
Write('B: '); b.Println;
Write('X: '); x.Where(p->Trunc(p) mod 5=0).Println;
end.
Пример
Введите список А: 1 5 -2 3.5 12 16.3 -7 1.3 0.15 10
Введите список B: 10.4 37 -14 6.3 1 -8 -12.94 6.9 18 52
A: 1 5 -2 3.5 12 16.3 -7 1.3 0.15 10
B: 10.4 37 -14 6.3 1 -8 -12.94 6.9 18 52
X: 10.4 0.0833333333333333 -0.49079754601227 5.30769230769231 120 5.2