Определите число, которое будет напечатано в результате выполнения следующего алгоритма, написанного ниже на пяти языках программирования.
Примечание. Функции и возвращают абсолютное значение своего входного параметра. Бейсик
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;
}