Program z1;
var x:integer;
begin
for x:=100 to 999 do
if (x mod 11=0)and(x mod 3=0) then
write (x,' ');
end.
Значение переменных k и s изменяются до тех пор, пока s < 66
Будет выведено значение переменной k. k = 19
Трассировка:
s k
0 1
4 4
11 7
21 10
34 13
50 16
69 19 ← s > 66. Выводим k.
<span>Логическая операция ⊕ - это "исключающее ИЛИ" (xor в языках Паскаль, Бейсик и т.д.), а → операция присваивания.
Тогда a⊕b→a; a⊕b→b; a⊕b→a - это был обмен значениями a ↔ b
Теперь по этой же схеме обменяем местами b и с:
b⊕c→b; </span>b⊕c→с; <span>b⊕c→b.
Результат: b→a; c→b; a→c
<u>Программа для иллюстрации:</u>
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
begin
var a:=50;
var b:=-20;
var c:=0;
Println('Исходные значения: a=',a,'b=',b,'c=',c);
a:=a xor b; b:=a xor b; a:=a xor b;
b:=b xor c; c:=b xor c; b:=b xor c;
Println('Результат обмена: a=',a,'b=',b,'c=',c)
end.
<u>Результат:</u>
Исходные значения: a= 50 b= -20 c= 0
Результат обмена: a= -20 b= 0 c= 50 </span>
Я думаю что тут текстовый способ передачи информации
Это у нас нормальная коньюктивная форма
Видно что истино выражение может быть только в случае 10001, а все остальные ложны
всего случаев 2*2*2*2*2=32
32-1 = 31