Microsoft Small Basic

Program Listing: QGW926
DrawForm()
Controls.ButtonClicked = OnButtonClicked

Sub OnButtonClicked
dividend = Math.Abs(Math.Floor(Math.Max(Controls.GetTextBoxText(txtBox[1]), Controls.GetTextBoxText(txtBox[2]))))
divisor = Math.Abs(Math.Floor(Math.Min(Controls.GetTextBoxText(txtBox[1]), Controls.GetTextBoxText(txtBox[2]))))

If dividend * divisor <> 0 Then
GetGFC()
Else
Shapes.SetText(writeResult, Math.Max(dividend, divisor))
EndIf
EndSub

Sub GetGFC
If Math.Remainder(dividend, divisor) > 0 Then
j = divisor
divisor = Math.Remainder(dividend, divisor)
dividend = j
GetGFC()
Else
Shapes.SetText(writeResult, divisor)
EndIf
EndSub

Sub DrawForm
txtBox[1] = Controls.AddTextBox(10, 10)
txtBox[2] = Controls.AddTextBox(10, 40)

GraphicsWindow.DrawText(180, 12, "1st number")
GraphicsWindow.DrawText(180, 12+30, "2nd number")

btn = Controls.AddButton("=", 10, 70)

writeResult = Shapes.AddText("GCF")
Shapes.Move(writeResult, 40, 74)

GraphicsWindow.FontSize = GraphicsWindow.FontSize * 0.8
GraphicsWindow.DrawText(10, 100, "decimals truncate to integers")
EndSub