∧ - логическое ИЛИ, ∨ - логическое И, ¬ - не что-то.
А и В принимают значения 0 (ложь) и 1 (истина) (здесь нам это не дано, надо просто сократить).
(A∧ ¬B)∨(¬A∧B)∧(A∨B) это
(A или не В) и (не А или В) или (А и В),
далее: (первые две скобки сократим, в данном случае надо чтобы хотя бы А или В имели любое значение)
(А или В) или (не А или не В) или (А и В)
то есть:
(А ∧ В) ∧ (¬А ∧ ¬В) ∧ (А ∨ В)
(но зачем нам А и В, когда есть А или В, то есть А и В становится бесполезным выражением, когда есть выражение, которому надо всего одно истинное значение)
и так:
(А или В) или (не А или не В)
то есть выражение всегда будет истинно, так как какое бы значение и имели А , В - выражение истинно.
Можно заменить это следующим:
А или не А или В или не В
А ∧ ¬А ∧ В ∧ ¬В
готово, а главное выражение всегда истинно!
var
A: array [1..100, 1..100] of integer;
i, j, n, y, mini, minj, maxi, maxj, temp: integer;
const
format = 4;
begin
Randomize;
writeln('Введите колличество строк и столбцов через пробел (пример: 3 4)');
read(n, y);
writeln('Исходный массив');
for i := 1 to n do
begin
for j := 1 to y do
begin
A[i, j] := random(40) - 20;
write(A[i, j] : format);
end;
writeln;
end;
mini := 1;
minj := 1;
maxi := 1;
maxj := 1;
for i := 1 to n do
for j := 1 to y do
begin
if A[i, j] < A[mini, minj] then
begin
mini := i;
minj := j;
end ;
if A[i, j] > A[maxi, maxj] then
begin
maxi := i;
maxj := j;
end ;
end;
writeln;
WriteLn('Минимальный = ', A[mini, minj], ' в ', mini, ' строке ', minj, ' колоне.');
WriteLn('Максимальный = ', A[maxi, maxj], ' в ', maxi, ' строке ', maxj, ' колоне.');
temp := A[maxi, maxj];
A[maxi, maxj] := A[mini, minj];
A[mini, minj] := temp;
writeln;
writeln('Преобразованный массив');
for i := 1 to n do
begin
for j := 1 to y do
write(A[i, j] : format);
writeln;
end;
readln;
end.