тот кто пишет начальное число конечно. напиши 19 и второй проиграл
===== PascalABC.NET =====
begin
var x := ReadReal('x =');
var y: real;
if x = 1 then
y := Ln(Abs(Sin(x)))
else if x = 2 then
y := Exp(x) + Sqrt(x)
else
y := 0.5 + Abs(x);
Println(y)
end.
Объяснение:
Формула для Х = 2 весьма дурацкая, потому что для положительного числа нет смысла брать его модуль: он всегда совпадает с числом. Посему модуль я убираю.
Var
tab: array[1..4, 1..5] of integer;
i, j, k: integer;
begin
k := 0;
for i := 1 to 4 do
for j := 1 to 5 do
begin
read(tab[i][j]);
if tab[i][j] mod 2 = 0 then k := k + 1;
end;
writeln(k);
end.
В таких заданиях главное начинать с конца, то есть с последней операции, после которой следует выход.
Рассмотрим первое задание.
В конце мы видим дизъюнктор, который принимает дизъюнктор, который принимает 0 и 1, а также конъюктор, принимающий 1 и 0. Запишем:
f₁ = f₂₁ || f₂₂
f₂₁ = 1 && 0
f₂₂ = 1 || 0
f = f₁ = 0 || 1 = 1 (истина)
Рассмотрим второе задание.
Сейчас и в дальнейшем я опущу подробное расписание, поэтому буду приступать сразу к записи:
f₁ = ¬f₂₁
f₂₁ = 0 || f₃₁
f₃₁ = f₄₁ && f₄₂
f₄₁ = 0 && 1
f₄₂ = ¬f₅₁
f₅₁ = 1 && 0
f = f₁ = ¬(0 || (0 && ¬0)) = ¬(0 || 0) = 1 (истина)
Рассмотрим задание 3.
f₁ = ¬f₂₁
f₂₁ = 1 || f₃₁
f₃₁ = 0 && 0
f = f₁ = ¬(1 || (0 && 0)) = ¬(1 || 0) = 0 (ложь)
Рассмотрим задание 4.
f₁ = 1 && f₂₁
f₂₁ = 1 || f₃₁
f₃₁ = 1 || f₄₁
f₄₁ = 1 && 0
f = f₁ = 1 && (1 || (1 || (1 && 0))) = 1 && (1 || (1 || 0)) = 1 && (1 || 1) = 1 && 1 = 1 (истина)
Рассмотрим задание 5.
f₁ = ¬f₂₁
f₂₁ = ¬f₃₁
f₃₁ = f₄₁ || ¬f₄₂
f₄₁ = 0 && 1
f₄₂ = f₅₁
f₅₁ = 1 && 0
f = f₁ = ¬(¬((0 && 1) || ¬(1 && 0))) = ¬(¬(0 || 1)) = ¬(0) = 1 (истина)