高中信息技术选修一解析法穷举法课件

时间:2025-06-08

第三章 算法的程序实现 一、解析法、穷举法 解析法、

信息技术组

例1:某超市规定,顾客购买同种商品10件以上(含10件) 10件以上 某超市规定,顾客购买同种商品10件以上( 10件 可享受批发价。请设计一个收款机程序, 可享受批发价。请设计一个收款机程序,输入顾客所购买商 品的零售价、批发价、购买数量、及付款数,计算出顾客的 品的零售价、批发价、购买数量、及付款数, 应付款及找零。 应付款及找零。

变量分析:

数学模型: 应付款=

零售价*数量 ,当数量<10

批发价*数量 ,当数量>=10

找零=付款-应付款解析表达式

程序代码: 程序代码:Private Sub Command1_Click() 零售价 = Val(InputBox("输入零售价:")) Val(InputBox("输入零售价:")) 批发价 = Val(InputBox("输入批发价:")) Val(InputBox("输入批发价:")) 数量 = Val(InputBox("输入购买数量:")) Val(InputBox("输入购买数量:")) 付款 = Val(InputBox("输入付款数:")) Val(InputBox("输入付款数:")) If 数量 < 10 Then 应付款 = 零售价 * 数量 Else 应付款 = 批发价 * 数量 ___________________ End If 找零 = 付款 - 应付款 _____________________ Print "应付款:", 应付款 "应付款:", Print "找零", 找零 "找零", End Sub

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

练习:已有的研究成果表明,海拔每升高100米, 100米 练习:已有的研究成果表明,海拔每升高100 年平均气温降低0.5 0.5℃ 年平均气温降低0.5℃。编写程序输入山下的气温及 山顶的相对海拔高度,输出山顶的气温。 山顶的相对海拔高度,输出山顶的气温。 Private Sub Command1_Click() t0 = Val(InputBox(“输入山下的气温:")) Val(InputBox(“输入山下的气温:")) h= Val(InputBox(“输入山顶的相对海拔高度:")) Val(InputBox(“输入山顶的相对海拔高度:")) t0-h/100*0.5 t=_______________ Print “山顶的气温为:", t “山顶的气温为:", End Sub

注意:需要添加 picture1和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,y1) x1 = r * Cos(a * i) y1 = r * Sin(a * i) For j = 1 To nodes '枚举 求(x2,y2) 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

程序代码: 程序代码:Private Sub Command1_Click() a1 = Val(Text1.Text) b1 = Val(Text2.Text) c1 = Val(Text3.Text) a2 = Val(Text4.Text) b2 = Val(Text5.Text) c2 = Val(Text6.Text) x = (c2 - b2 * c1) / (a2 - a1 * b2 / b1) y = (c1 - a1 * x) / b1 Label5.Caption = "X=" & x Label6.Caption = "Y=" & y End Sub

例:韩信点兵今有物不知其数,三三数之余二,五 五数之余三,七七数之余二,问物几 何? 求符合条件的最小的数。尝试用解析法解决: 尝试用解析法解决: 很难得到有效的解析式。 x mod 3=2 x mod 5=3 x mod 7=2 采取从小到大一一尝试的办法。

穷举法

穷举法解韩信点兵问题: 穷举法解韩信点兵问题:Private Sub Command1_Click() i=0 Do i=i+1 Loop Until (i Mod 3=2) And (i Mod 5=3)And (i Mod 7=2) Print i End Sub 穷举范围? 1~x

条件? Not((i Mod 3=2) And (i Mod 5=3)And (i Mod 7=2)) Not((i 7=2))

穷举法:(枚举法、列举法) 穷举法:(枚举法、列举法) :(枚举法将求解对象一一列举出来,然后逐一加以分 析、处理,并验证结果是否满足给定的条件, 穷举完所有对象,问题最终得以解决。 注意判断穷举的范围和条件。 注意判断穷举的范围和条件。

练习:水仙花数 练习:

分析: 100~999 可能的数的范围是_________ 数x(abc)需要满足的关系式是 _____________________ a^3+b^3+c^3=x

For x = 100 To 999 a = x \ 100 水仙花是指一个三位数,它的各个位数 b = (x Mod 100) \ 10 的立方和正好等于该数本身。 10 c = x Mod If x = a ^ 3 + b ^ 3 + c ^ 3 Then 如:153=1^3+5^3+3^3 如:153=1^3+5^3+3^3 Print x 求所有的水仙花数。 End If Next x

水仙花数解法二:X(abc) abc) 水仙花数解法二:Private Sub Command2_Click() For a = 1 To 9 For b = 0 To 9 For c = 0 To 9 If a * 100 + b * 10 + c = a ^ 3 + b ^ 3 + c ^ 3 Then Print a * 100 + b * 10 + c End If Next c Next b Next a End Sub

达标练习:判断用解析法还是穷举法。 达标练习:判断用解析法还是穷举法。1、求解二元一次方程组。 求解二元一次方程组。 a1*x+b1*y=c1 a2*x+b2*y=c2 解析法x=(c2-b2*c1)/(a2-a1*b2/b1) y=(c1-a1*x)/b1

穷举法?

x,y为实数,无法枚举。 x,y为实数,无法枚举。

达标练习:判断用解析法还是穷举法。 达标练习:判断用解析法还是穷举法。2、百钱百鸡问题:“公鸡五文钱一只,母鸡三文 钱一只,小鸡一文钱三只”,一百文钱买一百只 鸡,问买公鸡、母鸡、小鸡各多少只? 分析: Private Sub Command1_Click() x+y+z=100 For x = 1 To 20 5x+3y+z/3=100 …… 此处隐藏:1545字,全部文档内容请下载后查看。喜欢就下载吧 ……

高中信息技术选修一解析法穷举法课件.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219