当前位置:文档之家› 第一章 算法和算法的表示

第一章 算法和算法的表示

第一章 算法和算法的表示
1.1使用计算机解决问题的一般过程
科学技术的进步,社会生产力的发展,都是由于相关的问题得到不断的解决
的结果。在当今社会中,由于信息化概念的提出,许多问题的解决都使用到了计 算机。
人们解决问题一般使用到以下两种方法:
1、理解和分析所面临的问题
(一)、人工解题
2、寻找解题的途径和方法 3、用笔、纸和算盘、计算器等工具进行计算
为使计算机能按照上面确定的方法进行计算,光有计算公式是不 够的,还必须把解决问题的方法步骤化,即要用某种方式告诉计算 机,第1步做什么,第2步做什么。。。。。
对例1而言,在计算前,计算机必须要知道给定的铁丝长度L和 所要求的面积S。即把计算机所需的原始数据L和S输入到计算机 中,然后按照编好的程序一步步进行计算。
1、分析问题确定要用计算机做什么
做什么
2、寻找解决问题的途径和方法 3、用计算机进行处理
怎么做
想要泡茶喝,当时的情况是:开水没有,水 壶要洗,茶壶和茶杯要洗,火已生了,茶叶 也有了,怎么办?
——华罗庚《统筹方法平话及补充》
农夫的故事
一个农夫带着一条狼、一头山羊和一篮 蔬菜要过河,但只有一条船。乘船时,农夫 只能带一样东西。当农夫在场的时候,这三 样东西相安无事。一旦农夫不在,狼会吃羊, 羊会吃菜。请设计一个算法,使农夫能安全 地将这三样东西带过河。
4、验证计算结果
(二)、计算机解题
早期,由于数据量小,人们以手工算法居多,随着科技的发 展和计算机性能的提高,越来越多的人使用计算机来解决各式各 样的问题。
计算机看起来似乎无所不能,实际上,至今为止,计算机 只能按照设计好的程序,一步一步地进行计算。计算机是程序的 忠实执行者!
使用计算机解决问题一般要经历三个阶段:
W=(L/2)-H
输出H、W 退出
输出无解
为解决不同的问题,人们必须设计不同的程序。设计一个程序时,需要考虑 以下的问题:
1、数据的存储
2、计算的过程
典型的指令类型有: 输入指令:通过输入设备向程序输入数据,并存储到指定的变量中。 输出指令:把计算获得的结果,通过输出设备输出。 算术运算指令:进行加、减、乘、除等算术运算。 逻辑判断指令:对指定的两个数进行比较,产生一个逻辑值(真或假)。 控制转移指令:用来改变程序中指令的执行顺序。
对于同一个问题,解决方法是否只有一种??
演示课件
过河步骤:
解一:
解二:
1、农夫带羊过河
2、农夫回来 3、把狼带过河 4、把羊带回来 5、带蔬菜过河 6、农夫回来 7、把羊带过河
1、农夫带羊过河 2、农夫回来 3’、带蔬菜过河
4、把羊带回来 5’、把狼带过河 6、农夫回来 7、把羊带过河
第一章 算法和算法的表示
指令:用来规定计算机操作的命令 程序:为解决某一问题而编排的一个指令序列。通常,一个程序由如下 两部分组成:指令部分和数据部分
1、输入L和S的值
2、判断一元二次方程 Δ是否大于等于0
3、若是则可以求出H和 W,并输出值;
4、若不是则输出无解 信息
开始
输入L,S
D=(-L/2)2-4×S 否
D>=0? 是 W=(L/2+√D)/2或H=(L/2-√D)/2
1.4 算法的概念和表示方法
1、算法的概念: 算法就是解题方法的精确描述。
有穷性:一个算法的执行步骤是有限的 确定性:算法中的每个步骤必须有确切的含义
2、算法的特征
可行性:算法的每个步骤是可行的,是实际能做的 有0个或多个输入 有1个或多个输出
3、算法的表示形式
自然语言 流程图 计算机语言
自然语言表示
开始 取空容器C A容器饮料倒入容器C B容器饮料倒入容器A C容器饮料倒入容器B
结束
作业:
1.用流程图表示从学校回家的算法 2.设计一个算法,对任意输入的三个整数X、Y、Z找 出并输出其中的最大值。(先写出自然语言,再用流 程图表示)
用程序设计语言VB表示算法
Private Sub Command1_Click()
Dim a As Long, b As Long, n As Long
n = Val(Text1.Text)
‘输入整数N
b = Int(Sqr(n)) + 1
‘计算B值
For a = 2 To b
Байду номын сангаасIf n Mod a = 0 Then Exit For ‘判断a是否为N的因子
1)输入整数N的值; 2)将A的值置为2; 3)将B的值置为 N ; 4)判断A≤B?,条件成立执行下一步,否则跳转至第7步; 5)判断N能否整除A,若能整除即找到因子,跳转第7步; 6)A的值增加1,跳转至第4步; 7)判断A>B?,条件成立输出结果“是素数”,否则输出结
果是“合数”。
流程图表示
可得一元二次方程
h2-L/2×h+S=0
对此方程可用求根公式
h1,h2 =
L±√L2-16S
4
设 d=√L2-16S
当d>0时,方程的两个根就是h和w
L+√L2-16S
L-√L2-16S
4
4
当d=0时,方程有两个相同的根,即矩形为一个边长为L/4的正方形 当d<0时,方程无实数根,无解。
1.3 把解决问题的方法步骤化
Next a
If a >= b Then
‘输出结果
Text2.Text = "是素数"
Else
Text2.Text = "是合数,=" + Str(a) + "x" + Str(n \ a)
End If
End Sub
流程图常用符号(5框1线)
练习1:P17 问题与练习 第1题
1.有两个容器A和B,A容器中装满了饮料,B容器中装满了调料,要将A和B 容器内容交换,如何完成?仿照上面方式,写出交换A和B容器内容的算 法(用流程图表示)。
1.2 确定解决问题的方法 下面将通过实例来说明计算机解决实际问题的步骤。
例1:在数学课上,小明遇到了这样一个问题: “有一根长度为L厘米的铜丝,制作一个面积为 S平方厘米的矩形框,请问矩形框的长h和宽w分 别是多少?”
L
面积S w=?
h=?
分析:根据已知条件可以写出式子:
高为h,宽为w=L/2-h,则面积S=h×w
相关主题