Определите что будет напечатано в результате выполнения следующего алгоритма

var k, s: integer;
while s < 66 do begin
var k, s: integer;
while k < 30 do begin
var k, s: integer;
while k < 13 do begin
var k, s: integer;
while k < 11 do begin
k 1 2 3 4 5 6 7 8 9 10
s 0 3 6 10 15 21 28 36 45 55
var k, s: integer;
while k < 15 do begin
var n, s: integer;
while n <= 8 do begin
var k, s: integer;
while s < 100 do begin
var k, s: integer;
while s < 50 do begin
var k, s: integer;
while k < 25 do begin
s 3 4 7 12 19 28 39 52 67 84 103 124 147
k 1 3 5 7 9 11 13 15 17 19 21 23 25
var k, i : longint; function f(n: longint) : longint; begin f := -(n+1) * (n+1) * (n+1); end; function g(n: longint) : longint; begin g := -2*n + 2; end; begin readln(k); i := 1; while f(i) > g(k) do i:= i+1; writeln(i) end.
- функция f возвращает отрицательный куб увеличенного на единицу параметра этой функции (если i=1, то n=1, функция f(n) возвратит -2 3 ):
- значение функции g зависит только от введенного k, т.к. k является параметром функции; значение g(k) постоянно и не меняется в программе (т.к. k не меняется);
- при k = 20 функция g возвращает -38:
- после ввода k проверяется условие цикла, который постоянно увеличивает i на единицу, пока f(i) > g(k) , или, другими словами, пока отрицательное значение куба числа i+1 больше -38:
- построим таблицу значений функции f(i) и самого i:
i f(i) Работает ли условие цикла при k=20 1 -2 3 =-8 -28 > -38 — да 2 -3 3 =-27 -27 > -38 — да 3 -4 3 =-64 -64 > -38 — нет - т.е. при i = 3 цикл завершится, а при i = 2 цикл еще работает;
- из функции g видим, что чем больше ее аргумент, тем меньшее значение она выдает;
- чтобы найти наименьшее значение k, надо взять наибольшее значение функции g(k) (при таком же значении i), для которого бы цикл еще продолжал работать, это число -28:
- для того чтобы найти k, подставим значение в функцию g(k):
- поскольку n — это и есть k, то k = 15
var k, i: longint; function f(n: longint): longint; begin f := -n * (n + 1); end; function g(n: longint): longint; begin g := -2 * n + 2; end; begin readln(k); i := 1; while f(i) > g(k) do i := i + 1; writeln(i) end.
- функция f возвращает произведение числа на последующее число со знаком минус (если i=2, то n=2, функция f(n) возвратит -2 * 3):
- значение функции g зависит только от введенного k, т.к. k является параметром функции; значение g(k) постоянно и не меняется в программе (т.к. k не меняется);
- при k = 9 функция g возвращает -16:
- после ввода k проверяется условие цикла, который постоянно увеличивает i на единицу, пока f(i) > g(k) , или, другими словами, пока -i * (i+1) больше -16:
- построим таблицу значений функции f(i) и самого i:
i f(i) Работает ли условие цикла при k=9 1 -1*2 =-2 -2 > -16 — да 2 -2*3 =-6 -6 > -16 — да 3 -3*4=-12 -12 > -16 — да 4 -4*5=-20 -20 > -16- нет - т.е. при i = 4 цикл завершится, а при i = 3 цикл еще работает;
- построим систему уравнений:
- найдем k согласно значениям промежутка:
- получаем k в промежутке:
- Наибольшее k на этом промежутке: k = 11 .
var k, i: longint; function f(n: longint): longint; begin f := 2 * n * n + 5; end; begin readln(k); i := 1; while f(i) < k do i := i + 1; if f(i) — k <= k — f(i — 1) then writeln(i) else writeln(i — 1); end.
var a,b,t,M,R : integer; function F(x: integer) : integer; begin F := 4 * (x+2)*(x-4); 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(M); end.
- В цикле происходит поиск наименьшего значения функции F(t) на отрезке от a до b (строка 12 программы).
- В функции F — квадратное уравнение, которое на графике представляет собой параболу. t — это точка x параболы, а F(t) — у параболы. То есть в цикле организован поиск наименьшего y на отрезке параболы от a до b.
- Преобразуем квадратное уравнение:
- Так как программа выводит на экран M (М — это и есть х), то нам необходимо найти такой x, при котором функция F(x) возвращает наименьшее значение.
- Из уравнения видим, что ветви параболы направлены вверх (старший коэффициент 4x 2 — положительный). Парабола может выглядеть примерно так:

var a,b,t,M,R : integer; function F(x: integer) : integer; begin F := -3 * (x+2)*(x-6); 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(M); end.
- В цикле происходит поиск наименьшего значения функции F(t) на отрезке от a до b.
- В самой функции F — квадратное уравнение, что означает на графике параболу. Тогда t — это точка x параболы, а F(t) — у параболы. То есть в цикле организован поиск наименьшего y на отрезке параболы от a до b.
- Преобразуем квадратное уравнение:
- Так как программа выводит на экран значение M, то необходимо найти такой x, при котором функция F(x) выдает наименьшее значение (М — это и есть х).
- Из уравнения видим, что ветви параболы направлены вниз (старший коэффициент -3x 2 — отрицательный)
- Так как мы рассматриваем только интервал от -20 до 20, то наименьшее значение y на этом промежутке параболы будет либо в точке x=-20, либо в точке x=20.

var a,b,t,M,R,H : integer; function F(H, x: integer) : integer; begin F := (x-10)*(x-H); end; begin readln(H); a:=-20; b:=40; M:=a; R:= F(H,a); for t:=a to b do begin if (F(H,t)<R) then begin M:=t; R:=F(H,t); end; end; write(M); end.
- В цикле происходит поиск наименьшего значения функции F(H,t) на отрезке от a до b.
- Величина H в программе не изменяется, то есть выполняет роль константы; она передаётся в функцию и влияет на значение функции.
- В самой функции F — квадратное уравнение, что означает, что график этой функции — парабола. Тогда t — это точка оси x параболы, а F(H,t) — у параболы. То есть в цикле организован поиск наименьшего y на отрезке параболы от a до b.
- Рассмотрим квадратное уравнение:
- Так как в результате работы программы выводится M, то нам необходимо найти такой x, при котором функция F(H,x) выдает наименьшее значение (М — это и есть х).
- Из уравнения видим, что ветви параболы направлены вверх (старший коэффициент 1*x 2 — положительный). Парабола может иметь такой вид:


var a, b, t, M, R :longint; function F(x: longint): longint; begin F:= 2*(x*x-1)*(x*x-1)+27; 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(M+R) end.
var a, b, t, M, R : longint; function F(x: longint) : longint; begin F := abs(abs(x — 6) + abs(x + 6) — 16) + 2; 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(M + R) end.
- В 9-й строке алгоритма программы находится цикл, счетчик которого (t) принимает целые значения в интервале от a (-20) до b (20):
- В начале программы переменной M присваивается значение a, а переменной R присваивается результат функции с параметром a (в точке a):
- В цикле с помощью условного оператора сравнивается значение функции F(t) со значением переменной R. В случае истинности условия в R присваивается меньшее значение функции, а в M присваивается параметр функции, которая возвратила меньшее значение.
- Таким образом, в цикле происходит поиск минимума функции F(t) на интервале от a до b. В итоге в переменной M оказывается значение параметра t, при котором функция достигает минимума на интервале от a до b.
- Перепишем функцию в более понятном виде:
- Рассмотрев функцию, можно сказать, что на графике она имеет минимумы в тех точках, где выполняется равенство:
- Решим данное уравнение:
- в скобках под знаком модуля необходимо получить нули и отметить данные точки на числовой оси:
- для интервала (–∞; –6) раскроем модули, установив их с обратным знаком:
- полученное значение -8 находится в интервале (–∞; –6), поэтому является решением уравнения;
- раскроем модули для полуинтервала [–6; 6):
- раскроем модули для полуинтервала [6; ∞):
- полученное значение принадлежит полуинтервалу [6; ∞), значит, является решением уравнения.
- Таким образом, мы нашли точки минимума (x = – 8 и x = 8), которые принадлежат отрезку [–20; 20].
- В обеих полученных точках значение функции равно 2, какую же точку необходимо считать за минимум? Поскольку в условии F(t)
var a, b, t, М, R: longint; function F(x: longint): longint; begin F := abs(x — 4) + abs(x + 6) + abs(2 * x — 14) + 2; 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(M + R) end.
Решу ЕГЭ и Незнайка объединились,
чтобы запустить свои курсы ЕГЭ в Тик-Ток формате. Никаких скучных вебинаров, только залипательный контент!
Готовься к ЕГЭ в Тик-Ток формате
«Незнайка» и «Решу ЕГЭ» запускают свои курсы подготовки. Короткие видео, много практики и нереальная польза!
Задание № 12587
В таблице Dat хранятся положительные или отрицательные целые числа. Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх алгоритмических языках.
Задача №21. Работа с циклами и подпрограммами.
Подпрограмма – это поименованная часть программы, которая может быть многократно вызвана из разных частей программы для выполнения некоторых часто используемых действий.
Подпрограммы бывают двух видов: процедуры и функции.
Процедура имеет ту же структуру, что и основная программа. Отличительной чертой функции является то, что она обязательно возвращает одно значение, которое является значением самой этой функции. При этом может принимать на вход любое количество аргументов.
В Паскале функция располагается выше основной программы и оформляется следующим образом (вместо многоточия могут быть любые операторы):
function F(x: integer):integer;
begin
F:= <результат функции>
end;
В заголовке функции записывают имя функции, в скобках – список параметров, далее через двоеточие – тип возвращаемого значения; в приведенном примере функция F принимает один целый параметр x, и возвращает целое число.
Результат функции записывается в переменную, имя которой совпадает с именем функции. Объявлять эту переменную не нужно
Поиск наименьшего значения функции:
Подпрограмма поиска наименьшего значение функции F(x) на интервале [a,b], выглядит следующим образом:
M:=a; R:=F(a);
for t:=a to b do
if F(t) < R then begin
R:=F(t); M:=t;
end;
Поиск наибольшего значения функции:
Подпрограмма поиска наименьшего значение функции F(x) на интервале [a,b], выглядит следующим образом:
M:=a; R:=F(a);
for t:=a to b do
if F(t) > R then begin
R:=F(t); M:=t;
end;
Поиск наибольшего значения функции
Определите, какое число будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырёх языках):
Бейсик
Паскаль
FOR T = A TO B
IF F(T) > R THEN
ENDIF
NEXT T
PRINT R
FUNCTION F(x)
F = 281 — 2 * (17 + x) * (17 + x);
Function F(x:integer):integer;
begin
F : = 281 — 2 * (17 + x) * (17 + x);
end;
begin
for t : = a to b do begin
if (F(t) > R ) then begin
end
end;
write(R);
Си
Алгоритмический язык
int F(int x)
return 281 — 2 * (17 + x) * (17 + x);
void main()
int a, b, t, M, R;
for (t = a; t <= b; t++)<
if (F(t) > R) <
нач
цел a, b, t, R, M
нц для t от a до b
если F(t) > R
то
все
кц
вывод R
кон
алг цел F(цел x)
нач
знач : = 281 — 2 * (17 + x) * (17 + x)
Алгоритм предназначен для поиска наибольшего значения функции F(x) на отрезке от a до b.
F : = 281 — 2 * (17 + x) * (17 + x);
F(x) — квадратичная функция с отрицательным старшим коэффициентом. Ее график — парабола с ветвями вниз и вершиной в точке -17 (рисунок выполнен без соблюдения пропорций).

От -17 до бесконечности функция убывает, значит на отрезке [-7; 25] наибольшее значение достигается в левой границе интервала и равно F(−7) = 81.
Поиск наименьшего значения функции
Определите, какое число будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырёх языках).
Бейсик
Паскаль
FOR T = A TO B
IF F(T) < R THEN
ENDIF
NEXT T
PRINT M
FUNCTION F(x)
Function F(x:integer):integer;
begin
end;
begin
for t := a to b do begin
if (F(t) < R) then begin
;end
end;
write(M);
Си
Алгоритмический язык
int F(int x)
return 3*(x-8)*(x-8);
void main()
int a, b, t, M, R;
for (t=a; t<=b; t++)<
if (F(t) < R) <
нач
цел a, b, t, R, M
нц для t от a до b
если F(t)< R
то
все
кц
вывод M
кон
алг цел F(цел x)
нач
знач := 3*(x-8)*(x-8)
Алгоритм ищет значение аргумента t, при котором функция F(t) имеет наименьшее значение на отрезке от a до b. Если наименьшее значение будет достигнуто в нескольких точках, то выведется первая (левая), т.к. стоит строгий знак <.
Функция F(x) — квадратичная функция с положительным старшим коэффициентом. Ее график – парабола с вершиной в точке x = 8 и ветвями, направленными вверх (рисунок выполнен без соблюдения пропорций).

Наименьшее на интервале значение функции F(x) достигается в вершине х = 8.
Поиск значений, при которых программа выдает тот же результат
Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 10. Для Вашего удобства программа приведена на пяти языках программирования.
infoegehelp.ru
Определите, какое число будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырех языках):
Данная программа рассматривает функцию F=4*(x-1)*(x-3) на интервале, где х принадлежит [-20,20] (цикл проходит все значения х на этом интервале:-20,-19,-18 и т.д).
М хранит значение х, а R-значение F(x), где F(x)-минимальное. Т.е. программа ищет минимум функции: minF(x) и соответствующее минимуму значение х. Выводится х. Значит х мы должны определить.
Нарисуем,как выглядит функция 4*(x-1)*(x-3):

На рисунке видно ,что функция минимальна при х=2 .
Преобразуем функцию F=4*(x-1)*(x-3):
в точках экстремума F´(x)=0. Тогда 8х-16=0. Отсюда х=2.
Определяем, х=2-минимум или максимум. Подставляем в уравнение значение х меньше и больше 2-х. Определили,что это минимум. Поэтому х=2 -искомое значение.