Sudan function: Difference between revisions
Content added Content deleted
(Sudan function in FreeBASIC) |
(Sudan function in various BASIC dialents (BASIC256, PureBasic and Yabasic)) |
||
Line 110: | Line 110: | ||
F(2, 2, 1) = 27 |
F(2, 2, 1) = 27 |
||
</pre> |
</pre> |
||
=={{header|BASIC}}== |
|||
==={{header|BASIC256}}=== |
|||
{{trans|FreeBASIC}} |
|||
<lang freebasic>for n = 0 to 1 |
|||
print "Values of F(" & n & ", x, y):" |
|||
print "y/x 0 1 2 3 4 5" |
|||
print ("-"*28) |
|||
for y = 0 to 6 |
|||
print y; " |"; |
|||
for x = 0 to 5 |
|||
print rjust(string(F(n,x,y)),4); |
|||
next x |
|||
print |
|||
next y |
|||
print |
|||
next n |
|||
print "F(2,1,1) = "; F(2,1,1) |
|||
print "F(3,1,1) = "; F(3,1,1) |
|||
print "F(2,2,1) = "; F(2,2,1) |
|||
end |
|||
function F(n, x, y) |
|||
if n = 0 then return x + y |
|||
if y = 0 then return x |
|||
return F(n - 1, F(n, x, y - 1), F(n, x, y - 1) + y) |
|||
end function</lang> |
|||
{{out}} |
|||
<pre>Same as FreeBASIC entry.</pre> |
|||
==={{header|PureBasic}}=== |
|||
<lang PureBasic>Procedure.d F(n.i, x.i, y.i) |
|||
If n = 0 |
|||
ProcedureReturn x + y |
|||
ElseIf y = 0 |
|||
ProcedureReturn x |
|||
Else |
|||
ProcedureReturn F(n - 1, F(n, x, y - 1), F(n, x, y - 1) + y) |
|||
EndIf |
|||
EndProcedure |
|||
OpenConsole() |
|||
For n = 0 To 1 |
|||
PrintN("Values of F(" + Str(n) + ", x, y):") |
|||
PrintN("y/x 0 1 2 3 4 5") |
|||
PrintN("---------------------------------------------------") |
|||
For y = 0 To 6 |
|||
Print(Str(y) + " |") |
|||
For x = 0 To 5 |
|||
Print(#TAB$ + F(n,x,y)) |
|||
Next x |
|||
PrintN("") |
|||
Next y |
|||
PrintN("") |
|||
Next n |
|||
PrintN("F(2,1,1) = " + Str(F(2,1,1))) |
|||
PrintN("F(3,1,1) = " + Str(F(3,1,1))) |
|||
PrintN("F(2,2,1) = " + Str(F(2,2,1))) |
|||
Input() |
|||
CloseConsole()</lang> |
|||
{{out}} |
|||
<pre>Similat to FreeBASIC entry.</pre> |
|||
==={{header|Yabasic}}=== |
|||
{{trans|FreeBASIC}} |
|||
<lang freebasic>for n = 0 to 1 |
|||
print "Values of F(", n, ", x, y):" |
|||
print "y/x 0 1 2 3 4 5" |
|||
print "----------------------------" |
|||
for y = 0 to 6 |
|||
print y, " | "; |
|||
for x = 0 to 5 |
|||
print F(n,x,y) using ("###"); |
|||
next x |
|||
print |
|||
next y |
|||
print |
|||
next n |
|||
print "F(2,1,1) = ", F(2,1,1) |
|||
print "F(3,1,1) = ", F(3,1,1) |
|||
print "F(2,2,1) = ", F(2,2,1) |
|||
end |
|||
sub F(n, x, y) |
|||
if n = 0 return x + y |
|||
if y = 0 return x |
|||
return F(n - 1, F(n, x, y - 1), F(n, x, y - 1) + y) |
|||
end sub</lang> |
|||
{{out}} |
|||
<pre>Same as FreeBASIC entry.</pre> |
|||
=={{header|C}}== |
=={{header|C}}== |