Вася написал такую функцию: Pascal:
function f(n:integer):integer;
var s: integer;
begin
s := 1;
while n <> 0 do begin
s := s * (n mod 10);
n := n div 10;
end;
f := s;
end;
Python:
def f(n):
s = 1
while (n != 0):
s = s * (n % 10)
n = n // 10
return(s)
А затем вычислил значение f(512), оно оказалось равным 10. Затем пришла Маша и заменила в его коде в двух строках число 10 на число 2. Чему теперь будет равно значение f(512)? В ответе запишите одно целое число.
в простейшем случае, трассировка - вывод значений переменных на экран (например, в окно консоли) , либо расчёт их на бумажке для каждого шага.
в более продвинутом варианте используются точки останова, окно наблюдения, выполнение по шагам и, если есть, контекстный интерпретатор выражений.
есть также специальная "трассирующая консоль" - интерфейс вывода информации из программы в отладчик, если таковой присутствует.
почти любой современный отладчик показывает состояние програмm при её останове, что делает трассировку процессом легко доступным
1) a x a = a² ⇒ b; b x a = a³ ⇒ результат
2) a x a = a² ⇒ b; b x b = a⁴ ⇒ c; c x c = a⁸ ⇒ c; c x b = a¹⁰ ⇒ результат
Программа на языке PascalABC.Net
var
a,b,c,y:real;
begin
Write('Введите число: '); Read(a);
b:=a*a; y:=b*a; Writeln('Третья степень числа равна ',y);
c:=b*b; c:=c*c; y:=b*c;
Writeln('Десятая степень числа равна ',y)
end.
Тестовые решения:
Введите число: 2
Третья степень числа равна 8
Десятая степень числа равна 1024
Введите число: -13.594
Третья степень числа равна -2512.128188584
Десятая степень числа равна 215512594781.574