Задание#T800

Определите число, которое будет напечатано в результате выполнения следующего алгоритма, написанного ниже на пяти языках программирования.
Примечание. Функции absabs и iabsiabs возвращают абсолютное значение своего входного параметра.

Бейсик

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.

С++

#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;
}
Показать ответ
Это задание взято из демоварианта ФИПИ 2019
1К попыток решения15% решили верно
Яндекс.Репетитор пришёл на смену сервису Яндекс.ЕГЭ, и мы активно собираем отзывы пользователей. Пожалуйста, пишите нам через форму обратной связи.