Trabb Pardo–Knuth algorithm: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: change a comment.) |
(Added Wren) |
||
Line 3,062: | Line 3,062: | ||
-1 = -4 |
-1 = -4 |
||
10 = OVERFLOW |
10 = OVERFLOW |
||
</pre> |
|||
=={{header|Wren}}== |
|||
{{libheader|Wren-fmt}} |
|||
<lang ecmascript>import "io" for Stdin, Stdout |
|||
import "/fmt" for Fmt |
|||
var f = Fn.new { |x| x.abs.sqrt + 5*x*x*x } |
|||
var s = List.filled(11, 0) |
|||
System.print("Please enter 11 numbers:") |
|||
var count = 0 |
|||
while (count < 11) { |
|||
Fmt.write(" Number $-2d : ", count + 1) |
|||
Stdout.flush() |
|||
var number = Num.fromString(Stdin.readLine()) |
|||
if (!number) { |
|||
System.print("Not a valid number, try again.") |
|||
} else { |
|||
s[count] = number |
|||
count = count + 1 |
|||
} |
|||
} |
|||
s = s[-1..0] |
|||
System.print("\nResults:") |
|||
for (item in s) { |
|||
var fi = f.call(item) |
|||
if (fi < 400) { |
|||
Fmt.print(" f($6.3f) = $7.3f", item, fi) |
|||
} else { |
|||
Fmt.print(" f($6.3f) = overflow", item) |
|||
} |
|||
}</lang> |
|||
{{out}} |
|||
Entering the same numbers as the Ada example: |
|||
<pre> |
|||
Please enter 11 numbers: |
|||
Number 1 : 10 |
|||
Number 2 : -1 |
|||
Number 3 : 1 |
|||
Number 4 : 2 |
|||
Number 5 : 3 |
|||
Number 6 : 4 |
|||
Number 7 : 4.3 |
|||
Number 8 : 4.305 |
|||
Number 9 : 4.303 |
|||
Number 10 : 4.302 |
|||
Number 11 : 4.301 |
|||
Results: |
|||
f( 4.301) = 399.886 |
|||
f( 4.302) = overflow |
|||
f( 4.303) = overflow |
|||
f( 4.305) = overflow |
|||
f( 4.300) = 399.609 |
|||
f( 4.000) = 322.000 |
|||
f( 3.000) = 136.732 |
|||
f( 2.000) = 41.414 |
|||
f( 1.000) = 6.000 |
|||
f(-1.000) = -4.000 |
|||
f(10.000) = overflow |
|||
</pre> |
</pre> |
||