СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
Информатика
Cайты, меню, вход, новости


Задания
Версия для печати и копирования в MS Word
Задание 21 № 17339

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

 

 

БейсикPython

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

A = −9: B = 9

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)

    IF X > 0 THEN

        F = (x−10)*(x−10)+10

    ELSE

        F = (x+9)*(x+9)+11

    END IF

END FUNCTION

def F(x):

    if x > 0:

        return (x−10)*(x−10)+10

    else:

        return (x+9)*(x+9)+11

 

a = −9; b = 9

M = a; R = F(a)

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

    if F(t) < R:

        M = t; R = F(t)

print(M+R)

 

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

var

    a, b, t, M, R: integer;

 

function F(x: integer): integer;

begin

    if x > 0

        then F := (x−10)*(x−10)+10

        else F := (x+9)*(x+9)+11;

end;

 

begin

    a := −9; b := 9;

    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.

 

алг

нач

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

    a := −9; b := 9

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

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

        если F(t) < R

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

        все

    кц

    вывод M + R

кон

 

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

нач

    если x > 0

        то знач := (x−10)*(x−10)+10

        иначе знач := (x+9)*(x+9)+11

    все

кон

 

С++

#include <iostream>

using namespace std;

long f(int x) {

    if (x > 0) return (x−10)*(x−10)+10;

    else return (x+9)*(x+9)+11;

}

 

int main()

{

    int a, b, t, M, R;

    a = −9; b = 9;

    M = a; R = f(a);

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

        if (f(t) < R) {

            M = t; R = f(t);

        }

    }

    cout << M + R;

    return 0;

}

 

Решение.

1. Алгоритм предназначен для поиска наименьшего значения функции F(t) на отрезке от a до b, суммирования наименьшего значения с t, при котором значение F(t) будет наименьшим и вывода этой суммы на экран.

2. , если x > 0, и , если x ≤ 0. Заметим, что наименьшее значение функции, равное 11, достигается в точках −9 и 9. Поскольку в условии присвоения значения функции стоит знак «<» (if F(t) < R), программа выведет результат для точки −9. Теперь складываем −9 и 11 и получаем 2.

 

Ответ: 2.