Напишите АЯ алгоритм вычисления у по формуле у=(1-х2+5х4)2(степень), где х- заданное число. Учтите следующие ограничения:
1) в арифмитических выражения можно использовать только операции сложения, вычитания и умножения. 2) Каждое выражение может содержать только одну арифметическую операцию. Выполните трассировку алгоритма при х= 2.
у(х) = (1 - х^2 + 5*х^4)^2 - я правильно записал выражение? Пожалуйста, используйте знаки умножения "*" и возведения в степень "^" при записи выражений!
Пусть запись // означает, что последующая часть строки является комментарием.
С учетом ограничений (1) и (2), алгоритм может выглядеть следующим образом:
1. Вычислить tmp1 = х*х // tmp1 = х^2
2. Вычислить tmp2 = tmp1*tmp1 // tmp2 = х^4
3. Вычислить tmp2 = 5*tmp2 // tmp2 = 5*х^4
4. Вычислить tmp1 = 1 - tmp1 // tmp1 = 1 - x^2
5. Вычислить tmp1 = tmp1 + tmp2 // tmp1 = 1 - x^2 + 5*х^4
6. Вычислить y = tmp1*tmp1 // y = (1 - x^2 + 5*х^4)^2
При x = 2 получим:
1. Вычислить tmp1 = 2*2 = 4 // tmp1 = 4
2. Вычислить tmp2 = 4*4 = 16 // tmp2 = 16
3. Вычислить tmp2 = 5*16 = 80 // tmp2 = 80
4. Вычислить tmp1 = 1 - 4 = -3 // tmp1 = -3
5. Вычислить tmp1 = -3 + 80 = 77 // tmp1 = 77
6. Вычислить y = 77*77 = 5929 // y = 5929
Вычислим у(х) при х = 2: y(2) = (1 - 2^2 + 5*2^4)^2 = (1 - 4 - 5*16)^2 = 5929. Т.е. наш алгоритм дает верный результат при х = 2.