Microsoft Small Basic
Program Listing:
Embed this in your website
<object id='sbapp' data='data:application/x-silverlight-2,' type='application/x-silverlight-2' width='640' height='480'> <param name='source' value='http://smallbasic.com/program/ClientBin/SBWeb.xap'/> <param name='onError' value='onSilverlightError' /> <param name='background' value='white' /> <param name='minRuntimeVersion' value='3.0.40624.0' /> <param name='autoUpgrade' value='true' /> <param name='initParams' value='programId=TJB740' /> </object>
GraphicsWindow
.
BackgroundColor
=
"Black"
GraphicsWindow
.
PenColor
=
"LightGreen"
GraphicsWindow
.
Width
=
700
+
10
GraphicsWindow
.
Height
=
700
+
10
GraphicsWindow
.
DrawEllipse
(
100
-
3
,
100
,
600
+
2
,
600
)
'设圆的半径为1 1:300的比例放大作图
'最大(外切)正方形边长为2
w
=
600
n
=
math
.
SquareRoot
(
(
600
/
2
)
*
(
600
/
2
)
+
300
*
300
)
'外切1:
GraphicsWindow
.
DrawRectangle
(
100
-
3
,
100
,
600
+
2
,
600
)
'则此时外切矩形边长为2
'(粗略PI)为 (4* 2 )/2=4
'内割1:
'GraphicsWindow.DrawRectangle
Turtle
.
PenUp
(
)
turtle
.
speed
=
10
'9
Turtle
.
MoveTo
(
100
+
300
,
100
)
Turtle
.
PenDown
(
)
turtle
.
MoveTo
(
100
,
100
+
300
)
'Turtle.Turn(-90)
turtle
.
speed
=
11
'加速
turtle
.
MoveTo
(
100
+
300
,
100
+
600
)
turtle
.
MoveTo
(
100
+
600
,
100
+
300
)
turtle
.
MoveTo
(
100
+
300
,
100
)
'回起点
'则此时内接(内割)矩形边长为 math.squareRoot(1^2+1^2) --(实际大小) 为2的算术平方根
'(粗略PI)为 (4 * squareRoot(2) )/2= 2*squareroot(2)
n1
=
(
math
.
SquareRoot
(
2
)
)
PI1
=
(
4
*
n1
)
/
2
TextWindow
.
WriteLine
(
n1
)
TextWindow
.
WriteLine
(
"PI(内接1)="
)
TextWindow
.
WriteLine
(
PI1
)
TextWindow
.
WriteLine
(
"内接2-八边形边长="
)
n2
=
Math
.
squareroot
(
(
n1
/
2
)
*
(
n1
/
2
)
+
(
1
-
n1
/
2
)
*
(
1
-
n1
/
2
)
)
PI2
=
(
8
*
n2
)
/
2
TextWindow
.
WriteLine
(
n2
)
TextWindow
.
WriteLine
(
"PI(内接2-八边形)="
)
TextWindow
.
WriteLine
(
PI2
)
For
i
=
1
To
10
Step
1
TextWindow
.
WriteLine
(
i
)
TextWindow
.
WriteLine
(
"内接N边形边长="
)
n2
=
Math
.
squareroot
(
(
n1
/
2
)
*
(
n1
/
2
)
+
(
1
-
n1
/
2
)
*
(
1
-
n1
/
2
)
)
PIn
=
(
4
*
(
a_2_iMi
(
2
,
i
)
)
*
n2
)
/
2
'TextWindow.WriteLine(n2)
TextWindow
.
WriteLine
(
"PI(内接正N边形时)="
)
TextWindow
.
WriteLine
(
PIn
)
n1
=
n2
EndFor
Sub
a_2_iMi
(
n2
,
n
)
For
i
=
1
To
n
result1
=
2
*
result1
EndFor
a_2_iMi
=
result1
EndSub
Copyright (c) Microsoft Corporation. All rights reserved.