РУҚА
6

Значение функции в цикле

ЕГЭ · Информатика · Задание 6 · Основы программирования
ПовышеннаяФИПИ7ADAEEКороткий ответ≈ 4 минутыОтвет сверен с ключом

Определите число, которое будет напечатано в результате выполнения следующего алгоритма. Для удобства алгоритм представлен на пяти языках программирования. Функции $\mathrm{abs}$ и $\mathrm{iabs}$ возвращают абсолютное значение своего входного параметра.

Python
1def F(x):
2    return abs(abs(x - 6) + abs(x + 6) - 16) + 2
3
4a = -20
5b = 20
6M = a
7R = F(a)
8for t in range(a, b + 1):
9    if F(t) <= R:
10        M = t
11        R = F(t)
12print(M + R)
Условие как в банке ФИПИ — открыть и сверить
Впишите правильный ответ.

Определите число, которое будет напечатано в результате выполнения следующего алгоритма. Для Вашего удобства алгоритм представлен на пяти языках программирования.

Примечание. Функции abs и iabs возвращают абсолютное значение своего входного параметра.

Бейсик

DIM A, B, T, M, R AS LONG

A = -20: B = 20
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 + R

FUNCTION F(x)

F = abs(abs(x - 6) + abs(x + 6) - 16) + 2

END FUNCTION

Python

def F(x):

return abs(abs(x - 6) + abs(x + 6) - 16) + 2

a = -20

b = 20

M = a

R = F(a)

for t in range(a, b + 1):

if (F(t) <= R):

M = t

R = F(t)

print (M + R)

Алгоритмический язык

алг

нач

цел a, b, t, M, R

a := -20; b := 20

M := a; R := F(a)

нц для t от a до b

если F(t) <= R то

M := t; R := F(t)

все

кц

вывод M + R

кон

алг цел F(цел x)

нач

знач := iabs(iabs(x - 6) + iabs(x + 6) - 16) + 2

кон

Паскаль

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.

C++

#include <iostream>

using namespace std;

long F(long x) {

return abs(abs(x - 6) + abs(x + 6) - 16) + 2;

}

int main() {

long a = -20, b = 20, M = a, R = F(a);

for (int t = a; t <= b; ++t) {

if (F(t) <= R) {

M = t; R = F(t);

}

}

cout << M + R;

return 0;

}



Ваш ответ

Формат: число или слово без единиц измерения; дробную часть отделяйте запятой.

!
3 уровня: от лёгкого толчка до почти готового решения. Следующий открывается, когда прочитан предыдущий, — чтобы не перепрыгнуть сразу к ответу.
1Мягкая — с чего смотретьуровень 1 из 3

Найдите минимальное значение функции $F(t)$ на отрезке от $-20$ до $20$ и учтите, что при равенстве условие также выполняется.

2Наводящая — какие числа считатьуровень 2 из 3

При $|t| \leq 6$ имеем $|t-6|+|t+6|=12$. Для внешних значений рассмотрите выражение $2|t|-16$.

3Прямая — фактически решениеуровень 3 из 3

Минимум $F(t)=2$ достигается при $t=-8$ и $t=8$. Из-за условия $F(t) \leq R$ последним выбирается $t=8$, поэтому $M+R=8+2=10$.

Всё равно не складывается?Полное решение с обоснованием каждого шага — на отдельной странице.
Открыть решение

Задание 6 ЕГЭ, информатика

Задача из темы «Основы программирования»: в ней 160 задач с ответом и разбором по шагам. В 6-м номере бланка — 156 задач.

Ответ можно проверить здесь же, а если не выходит — открыть подсказку или разбор. Регистрация не нужна.