当前位置:
文档之家› 1.2算法和算法的描述PPT课件
1.2算法和算法的描述PPT课件
结束
例2:鸡兔同笼问题。
一个笼子里有鸡和兔,现在只知道里面一共有35个头,94只脚。鸡和兔各有 多少只?
(一)、用自然语言描述算法
(二)、用流程图描述算法
开始
1、输入a和b的值。
2、计算鸡数X=(4a-b)/2。
输入a和b的值
3、计算兔数Y=(b-2a)/2。 4、输出X和Y的值。
计算鸡数X=(4a-b)/2
否
I=I+1 是
I《=100
否
结束
是
输出I的值
设计一个算法求三个数中的 最大数
开始
输入a b c
如果a>b且a>c
否
如果b>c
否
输出c
是
输出a
是
输出b
结束
韩信点兵问题: 相传汉高祖刘邦问大将军韩信统御士兵多少,韩信答道: 每3人一列余1人,5人一列余2人,7人一列余4人,13人一 列余6人…….刘邦听后茫然而不知其数,你能说出有多少士 兵吗?
11 求101+102+103+104+…+1001的和。
Private Sub Command1_Click() S=0 For i=101 to 1001 step 1 S=S+i Next i End sub
12 求1*6*11*……*46的积。
Private Sub Command1_Click() S=1 For i=1 to 46 step 5 S=S*i Next i End sub
1、输入A B 2、交换AB的值 3、输出A B
1、输入A B 2、c = b
b=a a=c 3、输出A B
设计一个算法,求出100以内能被3整除的所 有正整数。
1、令I=1; 2、如果I能3整除,则输出I; 3、I=I+1; 4、如果I《=100,则返回第2步。 5、结束。
算法的特征
算法的特征: • 有穷性:算法的步骤必须是有限的 • 确定性:算法每一步必须有明确的意义 • 输出:算法必须保证有结果输出,可以有一个或者多个 • 输入:算法可以有0个或多个输入 • 可行性:原则上用纸笔也可精确算出结果
9、反向输出三位数 或反向输出4位数
Private Sub Command1_Click() Dim x As Integer, x1 As Integer, x2 As Integer, x3 As Integer, y As Integer x = InputBox("X=", "输入") x1 = x \ 100 x2 = (x - x1 * 100) \ 10 x3 = x - x1 * 100 - x2 * 10 y = x3 * 100 + x2 * 10 + x1 Print "y="; y End Sub
程序复习小口诀,让你轻松写程序
顺序结构
例1:编程求解半径为R的圆的周长L和面积S。
做计算 用顺序 Private Sub Command1_Click()
输入已知数据 r = InputBox("r=", "输入半径")
给出计算公式 输出计算结果
s = 3.14 * r * r L = 2 * 3.14 * r
1、广义的算法是指完成某项工作的方法和步骤,在我 们日常生活中也经常使用算法,只是没意识到罢了。如: 洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜 的算法等等。 2、在数学中或计算机中,现代意义的算法是指可以用 计算机来解决的某一类问题的程序和步骤,这些程序或 步骤必须是明确和有效的,而且能够在有限步之内完成。
方法2: 1. 把81个球分成3组各27个球 2. 先比较其中两组,如果不平衡,找出较轻那一组再分成3组个9个
球;如果平衡,找出剩余那一组再分成3组个9个球 3. 先比较其中两组,如果不平衡,找出较轻那一组再分成3组个3个
球;如果平衡,找出剩余那一组再分成3组个3个球 4. 在最后剩余的三个球中找出轻的那个球
x2 = (-b - Sqr(b ^ 2 - 4 * a * c)) / (2 * a)
Print "x1="; x1, "x2="; x2
Else
d= b ^ 2 - 4 * a * c
Print "此方程无实数根"
If d>=0 then
End If
X1= (-b + Sqr(d)) / (2 * a)
二、算法的描述
➢自然语言 ➢流程图 ➢伪代码
流程框图标准
开始结束框 输入输出框 处理框 判断框 流程线
例1:编程求解半径为R的圆的
周长L和面积S。
(二)、用流程图描述算法
开始
(一)、用自然语言描述算法
(1)输入半径R。 (2)计算周长L和面积S。 (3)输出L和S。 (4)结束。
输入半径R 计算周长L=2*PI*R 计算面积S=PI*R*R 输出L和S的值
• 算法有优劣之分 • 解决问题的步骤多少不是
衡量算法优劣的依据
扫地机
算法,决定了扫地机器人是否智能,既然是机器人, 我们当然希望它能有智慧,因而智能程度的高低成成 为衡量扫地机器人优劣最重要的指标。算法决定了在 扫地机器人的清扫模式:随机式清扫和规划式清扫。
给计算机输入两个数,将两个数的值交换后 输出
5、输入一个数判断是否是偶数,如果是输出零, 不是则输出1
Private Sub Command1_Click() Dim x As intrger x = InputBox(“x=", "输入x的值") If int(x/2)=x/2 then Print 0 Else Print 1 End if End Sub
渡河的方法与步骤:
首先两个野人过去,一个野人回来,再 两个野人过去一个回来,再次是两个人 过去,然后一个人和一个野人回来,然 后两个人再过去,这时到岸边的有三个 人和一个野人,对岸有两个野人。再让 一个野人回来接一个野人,然后野人又 回来接另一个,野人过河完毕。
什么是算法(algorithm)?
(4)否则x=x+1,跳转到2 穷举法 用人工计算,得出结果是多少?
开始
X=1 否
x/3余1,x/5余2,x/7余3;1
开始 N=1
N被3、5、7整除后 余数为2、3、2
N
Y
N=N+1
输出N
结束
韩信点兵流程图
4、已知长方体的长宽高,求长方体的全面积和体积
5、输入一个数判断是否是偶数,如果是输出零, 不是则输出1
10、 某图书城书籍促销,一次购买100元以上书籍8折,100 元以下9折程序。
Private Sub Command1_Click( ) Dim X As Single, Y As Single X = InputBox("X=", "输入钱数") If X >= 100 Then
Y = X * 0.8 Else Y = X * 0.9 End If Print "折后钱数Y="; Y End Sub
5、结束。
计算兔数Y=(b-2a)/2
输出x和y的值
结束
例3:设计一个算法,求出100以内能被3整除的所有正整数。
(一)、用自然语言描述算法
1、令I=1; 2、如果I能3整除,则输出I; 3、I=I+1; 4、如果I《=100,则返回第2步。 5、结束。
(二)、用流程图描述算法 开始
I=1
I能被3整除
探究活动一: 先解决一个小问题: 求整除3余1,整除5余2,整除7余4的最小自然数 1、分析问题: 利用数学知识,找出题目已知什么,求什么。 设所求的数X,则X满足X除以3余1,X除以5余2,X除以7余4,则记下 x
2、设计算法: 根据已知与未知之间的关系写出求解问题的步骤。 (1)令X为1 (2)如果x/3余1,x/5余2,x/7余4,则记下x。 (3)如果算出则写出答案
End Sub
X2= (-b - Sqr(d)) / (2 * a)
8、交换A B 的值
Private Sub Command1_Click() Dim a As Single, b As Single, c As Single a = InputBox("a=", "输入a的值") b = InputBox("b=", "输入b的值") c=b b=a a=c Print "a="; a, "b="; b End Sub
4、已知长方体的长宽高,求长方体的全面积和体积
Private Sub Command1_Click() Dim a As Single, b As Single, h As Single, s As Single, v As Single a = InputBox("a=", "输入长方体的长") b = InputBox("b=", "输入长方体的宽") h = InputBox("h=", "输入长方体的高") s = 2 * (a * b + a * h + b * h) v=a*b*h Print "长方体的面积="; s, "长方体的体积="; v End Sub
三个人和三个野人过河问题
三个人和三个野人同行,走到前面有一条河挡住了去 路,而河面上只有一支小船,小船最多一次只能乘载 两个人,《问题关键》当河的这边和河的对面以及船 上的野人数量多过人时;人就会被野人吃掉。问 :三 个人和三个野人怎样过河 人才不会被野人吃掉。 〈 补充:河的两边以及船上的 人和野人的数量平等时 人也不会被野人吃掉〉