что-то типа этого:
const n = 8, m = 8;
var
A: array[1..n,1..m] of integer;
i, j, sum, product: integer;
isnotnull: boolean;
begin
randomize;
writeln('Случайная матрица:'); for i:=1 to n do begin
for j:=1 to m do begin
A[i,j] := random(51) - 25;
write(A[i,j]:5);
end;
writeln;
end; sum := 0;
for i:=1 to n do
if A[i,n-i+1] < 0 then
sum := sum + A[i,n-i+1];
writeln('Сумма отрицательных элементов побочной диагонали = ', sum); product := 1;
isnotnull := False;
for i:=1 to n-1 do
for j:=2 to n do
if (j > i) and (A[i,j] <> 0) then begin
isnotnull := True;
product := product * A[i,j];
end;
if isnotnull
writeln('Произведение ненулевых элементов в области выше главной диагонали = ', product)
else
writeln('Ненулевых элементов в области выше главной диагонали нет.', product); readln;
end.
При любых A, B и C данное выражение истинно.
Объяснение:Для начала упростим эквивалентность и импликацию.
Экивалентность (≡) раскрывается вот так:
x ≡ y = x ∧ y ∨ -x ∧ -yПрименим к нашим данным:
A ∧ B ≡ B ∧ C = (A ∧ B ∧ B ∧ C) ∨ ( -(A ∧ B) ∧ -(B ∧ C) ) =
Первая скобка упрощается по закону повторения (B ∧ B = B), а вторая скобка, а точнее отрицание раскрывается по закону де Моргана:
= (A ∧ B ∧ C) ∨ ( -A ∨ -B ∧ -B ∨ -C) =
По закону исключения третьего (A ∨ -A = 1) упрощаем запись:
= 1
На самом деле я здесь очень сильно упростил запись. На самом деле нам не помешало бы раскрыть данную дизъюнкцию, "перемножив" A на -A, A на -B, A на -C, B на -A и так далее. Но в итоге данная запись сократится в единицу.
Теперь рассмотрим импликацию (⇒):
(x ⇒ y) = -x ∧ yПрименим к нашим данным:
(-C ⇒ A) = -(-C) ∧ A =
По закону двойного отрицания (-(-C) = C):
C ∧ A
Итого наш пример принял такой вид:
1 ∨ C ∧ A
Данное выражение всегда истинно, поскольку дизъюнкция истинна в том случае, когда одно из выражений истинно, а в нашем случае левая часть (единица), то есть дизъюнкция вседа истинна.
прости я не знаю не нажимай нарушение мне тока 8 лет