Microsoft Small Basic

Program Listing: FNK878
' Cube Root
' Copyright (c) 2012 Nonki Takahashi

While "True"
TextWindow.Write("Number(1-1000)? ")
x = TextWindow.ReadNumber()
If 1 <= x And x <= 1000 Then
CubeRoot()
TextWindow.WriteLine(x + "^(1/3)=" + y)
EndIf
EndWhile

Sub CubeRoot
' param x
' return y = x^(1/3)
ymin = 1
ymax = x
y = (ymin + ymax) / 2
While ymin < y And y < ymax
y3 = y * y * y
If y3 = x Then
ymin = y
ymax = y
ElseIf y3 > x Then
ymax = y
Else ' y3 < x
ymin = y
EndIf
y = (ymin + ymax) / 2
EndWhile
EndSub