// PascalABC.NET 3.3, сборка 1576 от 16.11.2017
// Внимание! Если программа не работает, обновите версию!
1)
begin
var a:=ArrRandom(11,5,45).Println;
var x:= a.where(t -> t.IsEven).sum;
Writeln('Сумма четных элементов: ', x);
end.
2)
begin
var a:= ArrGen(5, t -> ReadReal).Println;
a:= a.Select(t ->t/3).ToArray.Println;
end.
Подставим в блок-схему вместо х число 5. В блоке условия получим выражение 5>18? Это выражение ложно, поэтому выполнение задачи будет дальше по ветке "нет". В вычислительном блоке х примет такое значение:
х=2*5+1=10+1=11
следующий блок изменяет значение х
х=2*11=22
ответ: переменная х примет значение 22
на Pascal фрагмент этого алгоритма будет выглядеть так:
F X<18 THEN BEGIN
X:=2*X+1;
X:=2*X;
END
ELSE
X:=7-5*X
END;
1)
IP 9. 102. 202. 52
маска 255. 255. 240. 0
адрес 9. 102. 192. 0
---------------------------------------------
в адрес сразу записываем выделенные полностью соответствующие байты (первый и второй байты) байтам маски =255 (255(10сс) = 1111 1111 (2сс))
последний байт маски =0, он "гасит" всё, и в адресе будет 0.
----------------------------------------------
остался один третий байт.
202 и 240
202 (10сс) = 128+64+8+2=2^7 + 2^6+2^3+2^1 = 1100 1010 (2cc)
240 (10cc) = 128+64+32+16=2^7+2^6+2^5+2^4=1111 0000 (2cc)
--------------------------------------------------
поразрядная конъюнкция:
1100 1010 * поразрядно
1111 0000
----------------
1100 0000 =2^7 +2^6 =128+64= 192 (10cc) - искомое значение третьего байта в 10сс.