算法的程序实现——解析法、穷举法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法的程序实现——解析法、穷举法

一、目标导学:

1、认识并学会使用解析法、穷举法分析问题、解决问题;

2、尝试编程实现解析法、穷举法实例。

二、自主探究:

1、解析法:

就是在分析具体问题的基础上,抽取出一个数学模型,这个数学模型能用若干解析表达式表示出来,解决了这些表达式,问题也就得以解决。

用解析法解决问题的关键是寻找________________。

☆实例:画钻石图案(如右图,教师机展示)

分析:钻石图案是由一个圆周上的各个点的连线组成的,要首

先建立一个坐标系,并求出各个点的坐标,然后画线(line方法)。

如右图:可以得出第一个点的坐标是(r*cos(θ),r*sin(θ)),

第二个点的坐标是(r*cos(2*θ),r*sin(2*θ)),……依次类推,

可得出所有点的坐标。

实现:(1)设置界面。在form1上添加picture1和command1。

设置picture1的height和width属性相等,command1的caption

属性为“绘制钻石”。

(2)双击command1按钮,打开其代码窗口,输入相关代码。

运行验证。

Private Sub Command1_Click() Const pi = 3.14159265

Dim i As Integer, j As Integer

Dim x1 As Single, y1 As Single Dim x2 As Single, y2 As Single Dim a As Single

Dim r As Single

Dim nodes As Integer

Picture1.Scale (-1.5, 1.5)-(1.5, -1.5) Picture1.Cls

r = 1

nodes = 15

a = 2 * pi / nodes For i = 1 To nodes

x1 = r * Cos(a * i)

y1 = r * Sin(a * i)

For j = 1 To nodes

If i <> j Then

x2 = r * Cos(a * j)

y2 = r * Sin(a * j)

Picture1.Line (x1, y1)-(x2, y2), vbBlue End If

Next j

Next I

End Sub

2、穷举法:(枚举法、列举法)

将求解对象一一列举出来,然后逐一加以分析、处理,并验证结果是否满足给定的条件,穷举完所有对象,问题最终得以解决。 ☆实例: 输出100~200间不能被3整除的数。

分析:验证100到200间所有的数,如果满足条件则输出。 实现:在窗体上添加command1按钮,在其代码窗口中输入代码,如右所示。

说明:

(1)10个数打印一行,a 为计数变量。i 为要验证的数。

(2)“Print ”为打印一回车,光标跳至下一行;“Print i;” 为在当前位置打印,光标向后移动。 三、交流点拨:

思考:1、我们前面解决的以下问题用的是解析法还是穷举法?

“韩信点兵”_________ “圆的周长、面积”__________“水仙花数”__________ 2、穷举法的适用问题的范围?

求解对象是________(有限/无限) 的,________(可/不可)按规则列举。 一元二次方程求根________(可/不可)用穷举法列举?

四、建构拓展:

五、效果评价:

姓名 解析法 穷举法 交流点拨 建构拓展

Private Sub Command1_Click()

Dim a As Integer, i As Integer a = 0

For i = 100 To 200

If i Mod 3 <> 0 The n If a = 10 The n Print a = 0 Else

a = a + 1 Print i; End If End If Next I print End Sub

相关文档
最新文档