Нарисуем на диаграмме, при каких x выражение ((x ∈ A) → (x ∈ P)) ∧ ((x ∈ Q) → ¬(x ∈ A)) истинно. Выражение состоит из двух условий, соединенных логическим и, так что оно будет истинным в том и только в том случае, когда оба условия истинны.
(x ∈ A) → (x ∈ P) истинно всегда, кроме случая x ∈ A, x ∉ P. На рисунке область истинности выделена синей штриховкой.
(x ∈ Q) → ¬(x ∈ A) истинно всегда, кроме случая x ∈ Q, x ∈ A. На рисунке эта область выделена зелёной штриховкой.
Формула истинна, если x принадлежит областям, выделенным обеими штриховками одновременно. Если формула верна при всех x, то области, не выделенные какой-то из штриховок, не содержат элементов, так что всё множество A состоит из элементов, которые есть в P, но которых нет в Q (эта область на рисунке помечена звёздочкой). Подходящих элементов всего 7: P \ Q = {2, 4, 8, 10, 14, 16, 20}, – так что максимальное количество элементов в A равно семи.
ответ: 7.
program Numfind;
uses
System.SysUtils;
var
a: array [1..10] of Integer; // 1..10 размерность массива можно изменять, программа будет работать правильно
i, s: Integer;
begin
Randomize;
for i := Low(a) to High(a) do
a[i] := - 25 + Random (151);
WriteLn ('Массив чисел:');
for i := Low(a) to High(a) do
Write (a [i], ' ');
s := 0;
WriteLn;
WriteLn;
WriteLn ('Выбрано: ');
for i := Low(a) to High(a) do begin // цикл выбора чисел больше 20
if (a [i] > 20) then begin
s := s + a [i];
Write (A [i], ' ');
end;
end;
WriteLn;
WriteLn ('Сумма чисел больше 20 = ', s);
s := 0;
WriteLn;
WriteLn ('Выбрано: ');
for i := Low(a) to High(a) do begin // цикл выбора чисел меньше 100
if (a [i] > 0) and (a [i] < 100) then begin
s := s + a [i];
Write (A [i], ' ');
end;
end;
WriteLn;
WriteLn ('Сумма чисел меньше 100 = ', s);
s := 0;
WriteLn;
WriteLn ('Выбрано: ');
for i := Low(a) to High(a) do begin // цикл выбора чисел кратных 3
if (a [i] > 0) and (a [i] mod 3 = 0) then begin
s := s + a [i];
Write (A [i], ' ');
end;
end;
WriteLn;
WriteLn ('Сумма чисел кратных 3 = ', s);
ReadLn
end.
Здесь есть 20 символов