Задание EGEINF569BA8: Самостоятельное написание алгоритма

ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий

Открыть решение ↓ Ошибка или пожелание

Тип задачи: Самостоятельное написание алгоритма.

Учебные темы: Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования.

Впишите правильный ответ.

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

Бейсик

Python

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+17

 

FUNCTION F (x)

  F = 2*(x*x-49)*(x*x-49)+5

END FUNCTION

def F(x):

  return 2*(x*x-49)*(x*x-49)+5

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+17)

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

Паскаль

алг

нач

  цел 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+17

кон

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

нач

  знач := 2*(x*x-49)*(x*x-49)+5

кон

var a, b, t, M, R: longint;

function F(x: longint) : longint;

  begin

    F := 2*(x*x-49)*(x*x-49)+5;

  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+17)

end.

Си

#include<stdio.h>

long F(long x)

{

  return 2*(x*x-49)*(x*x-49)+5;

}

int main()

{

  long a, b, t, M, R;

  a = -20; b = 20;

  M = a; R = F(a);

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

    if (F(t)<R) {

      M = t; R = F(t);

    }

  }

  printf("%ld", M+17);

return 0;

}

 



i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Краткий ответ
Номер: 569BA8
НЕ РЕШЕНО Ответить

Решение задания EGEINF569BA8

Ответ: 10

Решение.
Сначала определим, что хранит каждая переменная. Цикл перебирает целые t от −20 до 20 включительно. R хранит наименьшее из уже рассмотренных значений функции, а M — аргумент, при котором это значение получено.
В данном варианте F(x) = 2 · (x² − 49)² + 5. Квадрат неотрицателен, а множитель 2 положителен, поэтому F(x) не меньше 5. Равенство возможно ровно тогда, когда x² = 49.
Отсюда x = −7 или x = 7. Оба целых аргумента входят в диапазон цикла. В обеих точках F равно 5; при остальных t значение строго больше 5. Таким образом, итоговое R = 5.
Осталось учесть условие обновления F(t) < R. При строгом сравнении равное значение не меняет M. Перебор идёт по возрастанию, поэтому остаётся первый аргумент минимума.
При t = −7 впервые достигается минимум: M = −7, R = 5. Затем при t = 7 значение F(t) снова равно 5. Условие 5 < 5 ложно, поэтому M остаётся равным −7.
После t = 7 меньших значений уже нет. Окончательно M = -7, R = 5.
Последняя команда печатает M + 17. В этой строке используется постоянное число 17, а не значение R.
Подставляем: -7 + 17 = 10.
Проверка. В начале M = −20 и R = F(−20), поэтому текущий минимум задан корректно ещё до первой итерации. При каждом обновлении R становится меньшим или равным предыдущему минимуму. Нижняя оценка через квадрат и достижение её в двух точках исключают пропущенный меньший результат. Учитываем знак сравнения и именно выражение в команде вывода.
Ответ: 10.

Помочь улучшить сайт

Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINF569BA8.

Сообщение увидит только команда сайта: на странице оно не публикуется.

Комментарии к решению

Комментарии видны всем посетителям сайта.

Комментариев пока нет. Будьте первым.

Чтобы оставить комментарий, войдите или зарегистрируйтесь.