Trabb Pardo–Knuth algorithm: Difference between revisions
Content added Content deleted
(Trabb Pardo–Knuth algorithm in various BASIC dialents) |
(→Procedural: read single number per line; update to more modern Python (string interpolation, walrus operator)) |
||
Line 3,020: | Line 3,020: | ||
===Procedural=== |
===Procedural=== |
||
{{Works with|Python|3.10}} |
|||
<lang python> |
<lang python>import math |
||
return abs(x) ** 0.5 + 5 * x**3 |
|||
def |
def f(x): |
||
return |
return math.sqrt(abs(x)) + 5 * x**3 |
||
for y in input('\n11 numbers: ').strip().split()[:11]] |
|||
def ask_numbers(n=11): |
|||
print(f'Enter {n} numbers:') |
|||
return (float(input('>')) for _ in range(n)) |
|||
if __name__ == '__main__': |
if __name__ == '__main__': |
||
for x in ask_numbers().reverse(): |
|||
⚫ | |||
s.reverse() |
|||
⚫ | |||
for x in s: |
|||
result = f(x) |
|||
⚫ | |||
⚫ | |||
else: |
else: |
||
print(' |
print(f'f({x}) = {result}')</lang> |
||
{{out}} |
|||
print('')</lang> |
|||
<pre>Enter 11 numbers: |
|||
{{out|Sample output}} |
|||
>1 |
|||
<pre> |
|||
>532 |
|||
11 numbers: 1 2 3 4 5 6 7 8 9 10 11 |
|||
>465 |
|||
11.0:TOO LARGE! 10.0:TOO LARGE! 9.0:TOO LARGE! 8.0:TOO LARGE! 7.0:TOO LARGE! 6.0:TOO LARGE! 5.0:TOO LARGE! 4.0:322.0 3.0:136.73205080756887 2.0:41.41421356237309 1.0:6.0</pre> |
|||
>0 |
|||
>-8456 |
|||
>1 |
|||
>2 |
|||
>3 |
|||
>4 |
|||
>5 |
|||
>98465465 |
|||
f(98465465.0): overflow |
|||
f(5.0): overflow |
|||
f(4.0) = 322.0 |
|||
f(3.0) = 136.73205080756887 |
|||
f(2.0) = 41.41421356237309 |
|||
f(1.0) = 6.0 |
|||
f(-8456.0) = -3023186413988.0435 |
|||
f(0.0) = 0.0 |
|||
f(465.0): overflow |
|||
f(532.0): overflow |
|||
f(1.0) = 6.0</pre> |
|||
=={{header|R}}== |
=={{header|R}}== |