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>def f(x):
<lang python>import math
return abs(x) ** 0.5 + 5 * x**3


def ask():
def f(x):
return [float(y)
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__':
s = ask()
for x in ask_numbers().reverse():
if (result := f(x)) > 400:
s.reverse()
print(f'f({x}): overflow')
for x in s:
result = f(x)
if result > 400:
print(' %s:%s' % (x, "TOO LARGE!"), end='')
else:
else:
print(' %s:%s' % (x, result), end='')
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}}==