Обозначим P,Q,A утверждение что х принадлежит соответствующему отрезку ¬А отрицание А, то есть х не принадлежит А перепишем и упростим исходную формулу P→((Q∧¬A)→P) известно что X→Y=¬X∨Y (доказывается просто, например через таблицу истинности) тогда: P→(¬(Q∧¬A)∨P) раскроем скобку ¬(Q∧¬A) с закона де Моргана (стыдно их не знать, если что это такие же основы как и таблицы истинности) P→(¬Q∨¬¬A∨P) = P→(¬Q∨A∨P) = ¬P∨¬Q∨A∨P ¬P∨P=1 то есть всегда истинно и 1∨Х=Х значит ¬P и P можно убрать остается ¬Q∨A Значит х либо принадлежит А либо не принадлежит Q для выполнения этого условия необходимо чтобы все значения Q принадлежали А, тогда минимальное А совпадает с Q ответ А=[40,77]
begin Write('Введите через пробел девять целых чисел в порядке возрастания: '); for i := 1 to n - 1 do Read(a[i]); Write('Введите целое число для вставки: '); Read(k); {Определим позицию для вставки} i := 1; while (k > a[i]) and (i < n) do i := i + 1; {Выполним сдвиг бОльших элементов вправо} for j := n - 1 downto i do a[j + 1] := a[j]; {Осуществим вставку} a[i] := k; {Контрольный вывод} Writeln('Результирующий массив'); for i := 1 to n do Write(a[i], ' ') end.
Тестовые решения: Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24 Введите целое число для вставки: 25 Результирующий массив 3 6 8 10 14 15 17 19 24 25
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24 Введите целое число для вставки: 0 Результирующий массив 0 3 6 8 10 14 15 17 19 24
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24 Введите целое число для вставки: 13 Результирующий массив 3 6 8 10 13 14 15 17 19 24
¬А отрицание А, то есть х не принадлежит А
перепишем и упростим исходную формулу
P→((Q∧¬A)→P)
известно что X→Y=¬X∨Y (доказывается просто, например через таблицу истинности)
тогда:
P→(¬(Q∧¬A)∨P)
раскроем скобку ¬(Q∧¬A) с закона де Моргана (стыдно их не знать, если что это такие же основы как и таблицы истинности)
P→(¬Q∨¬¬A∨P) = P→(¬Q∨A∨P) = ¬P∨¬Q∨A∨P
¬P∨P=1 то есть всегда истинно и 1∨Х=Х значит ¬P и P можно убрать
остается ¬Q∨A
Значит х либо принадлежит А либо не принадлежит Q
для выполнения этого условия необходимо чтобы все значения Q принадлежали А, тогда минимальное А совпадает с Q
ответ А=[40,77]
n = 10;
var
i, k, j: integer;
a: array[1..n] of integer;
begin
Write('Введите через пробел девять целых чисел в порядке возрастания: ');
for i := 1 to n - 1 do Read(a[i]);
Write('Введите целое число для вставки: '); Read(k);
{Определим позицию для вставки}
i := 1;
while (k > a[i]) and (i < n) do i := i + 1;
{Выполним сдвиг бОльших элементов вправо}
for j := n - 1 downto i do a[j + 1] := a[j];
{Осуществим вставку}
a[i] := k;
{Контрольный вывод}
Writeln('Результирующий массив');
for i := 1 to n do Write(a[i], ' ')
end.
Тестовые решения:
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24
Введите целое число для вставки: 25
Результирующий массив
3 6 8 10 14 15 17 19 24 25
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24
Введите целое число для вставки: 0
Результирующий массив
0 3 6 8 10 14 15 17 19 24
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24
Введите целое число для вставки: 13
Результирующий массив
3 6 8 10 13 14 15 17 19 24