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

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

  • автор:

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

задача B14 ЕГЭ по информатике 2012

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 — положительный). Парабола может выглядеть примерно так:

решение 21 задания егэ

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.

y минимален либо при ч=20, либо при х=-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 — положительный). Парабола может иметь такой вид:

y наименьшее при х=-20 или 2=40

график параболы для решения 21 задания егэ

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):

задача B14 ЕГЭ по информатике 2012

На рисунке видно ,что функция минимальна при х=2 .

Преобразуем функцию F=4*(x-1)*(x-3):

в точках экстремума F´(x)=0. Тогда 8х-16=0. Отсюда х=2.

Определяем, х=2-минимум или максимум. Подставляем в уравнение значение х меньше и больше 2-х. Определили,что это минимум. Поэтому х=2 -искомое значение.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *