Program p_1;
var a: word;
begin
readln(a);
a := a * a;
writeln(a)
end
Самый простой способ решить данную задачу - просто построить таблицу истинности каждого из заданных вариантов и проверить на соответствие.
Сначала приведу таблицы истинности конъюнкции, дизъюнкции и инверсии. Сразу стоит отметить, что приоритет инверсии выше конъюнкции и дизъюнкции, а приоритет конъюнкции выше дизъюнкции. То есть, например, отрицание будет выполнено раньше логического ИЛИ.
Логическое И, конъюнкция (&)
X Y F
0 0 0
0 1 0
1 0 0
1 1 1
Логическое ИЛИ, дизъюнкция (|)
X Y F
0 0 0
0 1 1
1 0 1
1 1 1
Инверсия(¬)
X F
0 1
1 0
Перейдём непосредственно к перебору вариантов:
а) X & Y & ¬ Z
1 1 1 0 - не подходит, 1 И 1=1, 1 И 0=0, а должно быть 1
б) X & Y & Z
1 1 1 1
1 1 0 0 - не подходит, 1 И 1=1, 1 И 0=0, а должно быть 1
в) X | ¬ Y | Z
1 1 1 1
1 1 0 1
1 0 1 1
в) подходит
г) ¬X | Y | ¬Z
1 1 1 1
1 1 0 1
1 0 1 0 - не подходит, так 0 ИЛИ 0=0, 0 ИЛИ 0=0, а нужно 1
Ответ: в)
Нужно что-то присвоить функции для случая, когда (2*a+b-c)<0
Например, так:
function sqrt1 (a, b, c: real): real;
begin
if (2 * a + b - c) < 0 then
<span>begin writeln (' complex number '); sqrt1:=-1; end</span>
else sqrt1:= sqrt(2 * a + b - c);
<span>end;</span>
Вот, пришлось вспомнить былые деньки... Эх, ностальгия... Старость х)