Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
21.Анализ программ с циклами и подпрограммами Наибольшее значение функции 6. Определите, какое число будет напечатано в результате выполнения следующего алгоритма: Var a, b,t, M,R :integer; Function F(x:integer):integer; begin F:=x*x-8*x+10; end; BEGIN a:=-5; b:=5; M:=a; R:=F(a); for t:=a to b do begin if (F(t)> R)then begin M:=t; R:=F(t); end; end; write(R); END. Пояснение. 1. Алгоритм ищет наибольшее значение функции F(t) на интервале от a до b 2. F(x)=x2-8x+10 график этой функции – парабола, оси которой направлены вверх, следовательно наибольшее значение на интервале будет достигаться в одном из его концов(для понимания полезно нарисовать рисунок) 3. Посчитаем значение функции на концах интервала: Fa=25+40+10=75; Fb=25-40+10=-5 4. В программе написано "write(R)", следовательно наибольшее значение из двух получившихся и будет ответом. 12. Определите, какое число будет напечатано в результате выполнения следующего алгоритма: var a, b,t, M,R :integer; Function F(x:integer):integer; begin F:= x*x - 8*x + 10; end; BEGIN a:=-5; b:=5; M:=a; R:=F(a); for t:=a to b do begin if (F(t)> R)then begin M:=t; R:=F(t); end; end; write(R); END. Пояснение. 1. Алгоритм ищет наибольшее значение функции F(t) на интервале от a до b 2. F(x)=x2-8x+10 график этой функции – парабола, ветви которой направлены вверх, поэтому функция имеет наибольшее значение на одном из концов отрезка. 3. F(-5)=25+40+10=75 |
Ответ: 75
18, Напишите в ответе число, которое будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырёх языках).
Бейсик | Паскаль |
DIM A, B, T, M, R AS INTEGER A = -10: B = 27 M = A: R = F(А) FOR T = A TO B IF F(T) > R THEN M = T R = F(T) END IF NEXT T PRINT M FUNCTION F(x) F = 2*(x -5)*(x-5)+55 END FUNCTION | var a, b,t, M,R :integer; Function F(x:integer):integer; begin F := 2*(x -5)*(x-5)+55 end; begin a := -10; b := 27; M := a; R := F(a); for t := a to b do begin if (F(t) > R) then begin M := t; R := F(t) end end; write(M) end. |
Пояснение.
Алгоритм предназначен для поиска наибольшего t, при котором функция F(t) имеет наибольшее значение на отрезке от a до b. Функция F(x)=2(x-5)(x-5)-55 — квадратный трёхчлен с положительным старшим коэффициентом, следовательно, функция достигает наибольшего значения в точке b. Таким образом, программа выведет на экран число 27.
Ответ: 27.
24 Напишите в ответе число, которое будет напечатано в результате выполнения следующего алгоритма (для вашего удобства алгоритм представлен на четырёх языках).
Бейсик | Паскаль |
DIM A, B, T, M, R AS INTEGER A = -25: B = 25 M = A: R = F(A) FOR T = A TO B IF F(T) > R THEN M = T R = F(T) END IF NEXT T PRINT M FUNCTION F(x) F = 19*(4+x)*(4+x)+ 52 END FUNCTION | var a, b,t, M,R :integer; Function F(x: integer):integer; begin F := 19*(4+x)*(4+x)+ 52; end; BEGIN a := -25; b := 25; M := a; R := F(a); for t := a to b do begin if (F(t) > R) then begin M := t; R := F(t); end; end; write(M); END. |
Пояснение.
Алгоритм предназначен для поиска наименьшего t, при котором функция F(t) имеет наибольшее значение на отрезке от a до b. Заметим, что функция является квадратным трёхчленом с положительным старшим коэффициентом, следовательно, наибольшее значение достигается на конце отрезка [a; b]. Программа выведет на экран число 25.
Ответ: 25.
Наименьшее значение функции
Задача 1. Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
Var a, b,t, M,R :integer;
Function F(x:integer):integer;
begin
F:=4*(x-5)*(x+3);
end;
BEGIN
a:=-20; b:=20;
M:=a; R:=F(a);
for t:=a to b do begin
if (F(t)< R)then begin
M:=t;
R:=F(t);
end;
end;
write(R);
END.
Пояснение.
1. Алгоритм предназначен для поиска наименьшего значения функции F(t) на отрезке от a до b.
2. F(x)=4(x-5)(x+3) Квадратный трехчлен F(t) с положительным старшим коэффициентом пересекает ось абсцисс в точках 5 и −3 и, следовательно, наименьшее значение достигается в вершине 1 и равно F(1) = −64.
Задача 2. Напишите в ответе количество различных значений входной переменной k, при которых программа выдаёт тот же ответ, что и при входном значении k = 64. Значение k = 64 также включается в подсчёт различных значений k. Для Вашего удобства программа приведена на пяти языках программирования.
Бейсик | Паскаль |
DIM K, I AS LONG INPUT K I = 12 WHILE I > 0 AND F(I) >= K I = I - 1 WEND PRINT I FUNCTION F(N) F = N * N + 20 END FUNCTION | var k, i : longint; function f(n: longint) : longint; begin f := n * n + 20 end; begin readln(k); i := 12; while (i>0) and (f(i)>=k) do i := i-1; writeln(i) end |
Пояснение.
При k = 64 программа выведет число 6. Переменная k отвечает за количество выполнений цикла
«while (i>0) and (f(i)>=k) do
i := i-1;».
Запишем неравенство: i2+20≥x Для того, чтобы результат вывода программы был равен 6 при i=7 неравенство ещё должно выполняться, а при i=6 уже нет. Получаем двойное неравенство: 56x≤ 69 То есть нам подходит 13 чисел. Ответ: 13.
Задача 3. 59. Определите, какое число будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырёх языках).
Бейсик | Паскаль |
DIM A, B, T, N, P AS INTEGER A = -20: B = 20 P = 130 N = 0 FOR T = A TO B IF F(T) > P THEN N = N+1 END IF NEXT T PRINT N FUNCTION F(x) F = 16*(9+x)*(9+x)+127 END FUNCTION | var a, b,t, N,P :integer; Function F(x: integer):integer; begin F := 16*(9+x)*(9+x)+127; end; BEGIN a := -20; b := 20; P := 130; N := 0; for t := a to b do begin if (F(t) > P) then begin N := N+1; end; end; write(N); END. |
Пояснение.
Алгоритм предназначен для нахождения количества целых точек на отрезке [−20; 20] в которых функция F(x) = 16 · (9 + x)2+127 имеет значение больше 130. Следовательно, задачу можно свести к неравенству:16⋅(9+х)2+127>130 ⇔16⋅(9+х)2+127>3
Данное неравенство будет выполнятся во всех целых точках отрезка [−20; 20], кроме точки −9, в которой F(x) = 127. Всего отрезок [−20; 20] содержит 41 целую точку. Следовательно, ответ 40. Ответ: 40.
Задача 4. 66.Напишите в ответе число различных значений входной переменной k, при которых программа выдаёт тот же ответ, что и при входном значении k = 64. Значение k = 64 также включается в подсчёт различных значений k. Для Вашего удобства программа приведена на пяти языках программирования.
Бейсик | Паскаль |
DIM K, I AS LONG INPUT K I = 12 WHILE I > 0 AND F(I) >= K I = I - 1 WEND PRINT I FUNCTION F(N) F = N * N END FUNCTION | var k, i : longint; function f(n: longint) : longint; begin f := n * n end; begin readln(k); i := 12; while (i>0) and (f(i)>=k) do i := i-1; writeln(i) end. |
Пояснение.
При k = 64 = 82, программа выведет число 7. Переменная k отвечает за количество выполнений цикла «while (i>0) and (f(i)>=k) do i := i-1;».
Заметим, что при любом k большем чем 64, программа выведет число больше 7, а при k = 72 — меньшее. Следовательно, нам подходят все целые числа, меньшие или равные 64, но большие 49. Таких чисел 15. Ответ: 15.
Задача 1 (рассматриваемая на МО). Напишите в ответе число различных значений входной переменной k, при которых программа выдает тот же ответ, что и при входном значении k=36. Значение k=36 также включается в подсчет различных значений k.
Бейсик | Паскаль |
DIM K, I AS LONG INPUT K I = 0 WHILE F(I) < K I = I + 1 WEND PRINT I FUNCTION F(N) F = N * (N-1)+10 END FUNCTION | var k, i : longint; function f(n: longint) : longint; begin f := n * (n-1)+10 end; begin readln(k); i := 0; while (f(i)<k) do i := i+1; writeln(i) end. |


