1. Укажіть, які з наведених формул Excel записані без синтаксичних помилок: а) =IF(B1<C1) THEN (B1) б) =IF(B1<C1) THEN (B1) ELSE (С1) В) =IF(B1<C1;В1) г) =IF(B1<C1;B1;C1)
Const N = 10; Var A:array[1..N] of integer; i,j,M,B,C,p,s:integer; Begin Randomize; {Заполнение и вывод} Write('Исходный массив:'); For i:= 1 to N do Begin A[i]:=random(N); Write(' ',A[i]); End; WriteLn; {Сортировка} p:=0; For i:= 1 to N do Begin M:=i; For j:= i+1 to N do if A[j]<A[M] then M:=j; if M<>i then Begin B:=A[M]; A[M]:=A[i]; A[i]:=B; p:=p+1; {Вывод каждого шага сортировки} Write('Перестановка №',p,':'); For j:= 1 to N do Write(' ',A[j]); WriteLn; End; End; WriteLn; Write('Отсортированный массив:'); For i:= 1 to N do Write(' ',A[i]); {Бинарный поиск} WriteLn; Write('Введите число: ');ReadLn(C); m:=N div 2; i:=1; j:=N; s:=0; While (A[m]<>C)and(i<=j) do Begin if C > A[m] then i:=m+1 else j:=m-1; s:=s+1; m:=(i+j) div 2; End; WriteLn; if A[m]=C then WriteLn('В массиве есть данное число') else WriteLn('В массиве нет данного числа'); WriteLn('Кол-во перестановок за сортировку: ',p); WriteLn('Кол-во сравнений за поиск: ',s); End.
Для какого наименьшего целого неотрицательного числа А выражение
(3x + 5y < A) ∨ (x ≥ y) ∨ (y > 8)
тождественно истинно, т. е. принимает значение 1 при любых целых неотрицательных x и y?
Решение.
Решим задачу графически. Условия (x ≥ y) и (y > 8) задают множество, отмеченное на рисунке закрашенной областью. Чтобы исходное выражение было тождественно истинно для любых целых и неотрицательных x и y, прямая 3x + 5y = A должна проходить выше точки (8; 7). Таким образом, наименьшее целое неотрицательное А, удовлетворяющее условию задачи — это A равное 62.
Приведем аналитическое решение.
Если истинно одно из выражений (x ≥ y) или (y > 8), то выражение (3x + 5y < A) ∨ (x ≥ y) ∨ (y > 8) истинно независимо от значения А.
Если же оба выражения (x ≥ y) и (y > 8) ложны, то есть при выполнении условий (x < y) и (y ≤ 8), выражение 3x + 5y < A должно быть истинным.
Найдем максимально возможное значение выражения 3x + 5y при выполнении условий (x < y) и (y ≤ 8).
Заметим, что для целых чисел неравенство (x < y) равносильно неравенству (x ≤ y-1). Тогда
3x+5y ≤ 3(y-1) + 5y = 8y – 3 ≤ 64 – 3 = 61.
Таким образом, должно выполняться условие 61<А, откуда А=62.
N = 10;
Var
A:array[1..N] of integer;
i,j,M,B,C,p,s:integer;
Begin
Randomize;
{Заполнение и вывод}
Write('Исходный массив:');
For i:= 1 to N do
Begin
A[i]:=random(N);
Write(' ',A[i]);
End;
WriteLn;
{Сортировка}
p:=0;
For i:= 1 to N do
Begin
M:=i;
For j:= i+1 to N do
if A[j]<A[M] then M:=j;
if M<>i then
Begin
B:=A[M];
A[M]:=A[i];
A[i]:=B;
p:=p+1;
{Вывод каждого шага сортировки}
Write('Перестановка №',p,':');
For j:= 1 to N do
Write(' ',A[j]);
WriteLn;
End;
End;
WriteLn;
Write('Отсортированный массив:');
For i:= 1 to N do
Write(' ',A[i]);
{Бинарный поиск}
WriteLn;
Write('Введите число: ');ReadLn(C);
m:=N div 2;
i:=1;
j:=N;
s:=0;
While (A[m]<>C)and(i<=j) do
Begin
if C > A[m] then i:=m+1
else j:=m-1;
s:=s+1;
m:=(i+j) div 2;
End;
WriteLn;
if A[m]=C then WriteLn('В массиве есть данное число')
else WriteLn('В массиве нет данного числа');
WriteLn('Кол-во перестановок за сортировку: ',p);
WriteLn('Кол-во сравнений за поиск: ',s);
End.
Примеры:
Исходный массив: 0 4 5 4 1 2 6 7 0 7
Перестановка №1: 0 0 5 4 1 2 6 7 4 7
Перестановка №2: 0 0 1 4 5 2 6 7 4 7
Перестановка №3: 0 0 1 2 5 4 6 7 4 7
Перестановка №4: 0 0 1 2 4 5 6 7 4 7
Перестановка №5: 0 0 1 2 4 4 6 7 5 7
Перестановка №6: 0 0 1 2 4 4 5 7 6 7
Перестановка №7: 0 0 1 2 4 4 5 6 7 7
Отсортированный массив: 0 0 1 2 4 4 5 6 7 7
Введите число: 3
В массиве нет данного числа
Кол-во перестановок за сортировку: 7
Кол-во сравнений за поиск: 4
Исходный массив: 4 4 1 3 4 4 5 0 7 2
Перестановка №1: 0 4 1 3 4 4 5 4 7 2
Перестановка №2: 0 1 4 3 4 4 5 4 7 2
Перестановка №3: 0 1 2 3 4 4 5 4 7 4
Перестановка №4: 0 1 2 3 4 4 4 5 7 4
Перестановка №5: 0 1 2 3 4 4 4 4 7 5
Перестановка №6: 0 1 2 3 4 4 4 4 5 7
Отсортированный массив: 0 1 2 3 4 4 4 4 5 7
Введите число: 5
В массиве есть данное число
Кол-во перестановок за сортировку: 6
Кол-во сравнений за поиск: 2
Для какого наименьшего целого неотрицательного числа А выражение
(3x + 5y < A) ∨ (x ≥ y) ∨ (y > 8)
тождественно истинно, т. е. принимает значение 1 при любых целых неотрицательных x и y?
Решение.
Решим задачу графически. Условия (x ≥ y) и (y > 8) задают множество, отмеченное на рисунке закрашенной областью. Чтобы исходное выражение было тождественно истинно для любых целых и неотрицательных x и y, прямая 3x + 5y = A должна проходить выше точки (8; 7). Таким образом, наименьшее целое неотрицательное А, удовлетворяющее условию задачи — это A равное 62.
Приведем аналитическое решение.
Если истинно одно из выражений (x ≥ y) или (y > 8), то выражение (3x + 5y < A) ∨ (x ≥ y) ∨ (y > 8) истинно независимо от значения А.
Если же оба выражения (x ≥ y) и (y > 8) ложны, то есть при выполнении условий (x < y) и (y ≤ 8), выражение 3x + 5y < A должно быть истинным.
Найдем максимально возможное значение выражения 3x + 5y при выполнении условий (x < y) и (y ≤ 8).
Заметим, что для целых чисел неравенство (x < y) равносильно неравенству (x ≤ y-1). Тогда
3x+5y ≤ 3(y-1) + 5y = 8y – 3 ≤ 64 – 3 = 61.
Таким образом, должно выполняться условие 61<А, откуда А=62.
ответ: 62.
Объяснение: