当前位置:文档之家› 算法与程序框图

算法与程序框图


1+2+3+…+100 例8、设计一个计算13+23+33+…+1003的值的算法,并画出程序框图。(p9例5) 算法分析:只需要一个累加变量和一个计数变量,将累加变量的初始值设 为0,计数变量的值可以从1~100。 开始 程序框图 i=1 Sum=0 问题:框图中哪一个是累加 变量?哪一个是计数变量? i=i+1
i=1 Sum=0
i=i+1 sum=sum+i2
i≤100
输出sum 结束
3、算法步骤 第一步:输入人数x,设收取的卫生费为m元。 第二步:判断x与3的大小,若x>3,则费用为m=5+(x-3)×1.2;若x≤3,则费用 为m=5。 开始 第三步:输出m 程序框图: 输入人数x y X>3 n
m=5+(x-3)×1.2
Sum=sum+i
i≤100
否 是
输出sum
结束
思考:根据对条件的不同处理,循环结构又分为两种——当型(while型) 和直到型(until型)。 当型循环在每次执行循环体前对控制循环条件进行判断,当条件满足时执行循 环体,不满足则停止; 直到型循环在执行了一次循环体之后,对控制循环条件进行判断,当条件不 满足时执行循环体,满足则停止。 按照这种分类,例8的循环结构属于哪一种?你能用另一种形式来表达这个问 题的算法吗? 开始 开始 i=1 直到型(until型) i=1 Sum=0 Sum=0 当型(while型) i=i+1 Sum=sum+i i≤100
1.1算法与程序框图
袁清文 龙川县田家炳中学
例1、树高百尺,一只蜗牛从树底往上爬,白天爬3尺夜晚 退2尺,问几天能爬到树顶? 解决步骤: 第一步:树高:100尺 第二步:蜗牛爬的速度:(3-2)尺/天 第三步:最后三尺用的时间:1天;
97 第四步:爬完前97尺用的时间: 天; 3 2 97 第五步:总结出爬到树顶需时间:1 3 2 天。
(1)False或.F.
(2)True或.T. (3)True或.T.
例6、已知一个三角形的三边边长分别为2,3,4,利用海伦—秦九韶公式 设计一个算法,求出它的面积,画出算法的程序框图。(p7例3) (海伦—秦九韶公式:已知三角形三边边长分别为a、b、c,则三角形的面 积为 s p( p a)( p b)( p c)其中p a b c )
所以我们需要对x的符号进行判断,根据判断的结果决定|x|的取值。 开始 输入x 是
程序框图
X≥0?

输出x
输出-x
结束
习题1.1 A组 1、下面是关于城市居民生活用水收费的问题。 为了加强居民的节水意识,某城市制定了以下生活用水收费标准:每户每月 用水未超过
2、算法分析:用循环结构解决本题,设累加变量为sum,其初始值为0,计 数变量为I,其值从1变到100。 具体算法用程序框图表示如下: 开始
各类表达式
表达式类型
算术表达式
表达式 (5-3)*6 2^3 25^(1/2) 8 14/7+15 6-ABS(3-12)
表达式的值 12 8 5 8 17 -3
.T. .F. .F. .T. .T. .F. „Good‟ „Good morning‟
.T. 4<3 逻辑表达式 32>=100 2<>3 NOT(4<3) (4<3)AND(6>5)OR(7>8) „Good‟ 字符串表达式 „Good‟+‟Morning‟
否 是
Sum=sum+i
i=i+1
i>100
是 否
输出sum
结束
输出sum 结束
例5、任意给定一个大于1的整数n,设计一个算法对n是否为 质数做出判定。(质数:只能被1和自身整除的大于1的整数.) (P3例1)
开始
算法分析:
根据质数的定义,很容易设计 出下面的步骤: 第一步:判断n是否等于2, 若n=2,则n是质数;数n>2,则 执行第二步。 第二步:依次从2~(n-1) 检验是不是n的因数,即整除n 的数。若有这样的数,则n不 是质数;若没有这样的数,则 n是质数。
一、算法的概念 算法(algorithm)这个词出现于12世纪,指的是用阿拉伯 数字进行运算的过程。在数学中,现代意义上的“算法”通常 是指可以有计算机来解决的某一类问题的程序或步骤,这些程 序或步骤必须是明确和有效的,而且能够在有限步之内完成。
处理同一个问题可能有不同的算法,采用什么样的算法更简 单、方便呢 例2、著名数学家华罗庚“烧水泡茶”的两个算法。 算法一 第一步:烧水; 第二步:水烧开后,洗刷茶具; 第三步:沏茶。 算法二 第一步:烧水; 第二步:烧水过程中,洗刷茶具; 第三步:水烧开后沏茶。 大家讲讨论一下这两个算法的区别在哪里? 哪 个算法更高效?为什么? 区别是在什么时间洗刷茶具。第二个算法的科学性 在于应用了“统筹方法”。因此,我们可以明白一个好 算法必须用到科学的方法。我们应该好好学习各学科处 理问题的科学方法。
练习:计算下列表达式的值 1、6^3-SQRT(36) 2、NOT(NOT(3>=4)) 3、(2>3)OR(3>4) 1、210 2、.F. 3、.F.
将下列数学表达式改写成程序语言表达式:
(1). cos a sin b ab
b b 2 4ac (2). 2a
(3).a x b
输入n
Flag=1

n是大于1的整数
n>2

d =2
d整除n?

flag=0

D=d+1

d<=n-1且 flag=1?
是 Flag=1?
这是判断一个大于上的整 数是否为质数的最基本的算法
n是质数 结束
n不是质数
探究:画出用二分法求方程x22=0的近似根(精确度为0.005) 的程序框图,并指出哪些部分构 成顺序结构、条件结构和循环结 构?
图形符号 名称 终端框(起止框) 输入、输出框 处理框(执行框) 说明 表示一个算法的开始或者结束 框内标输入、输出内容 框内标明所进行的处理 框内标明判断条件,框外标明 条件成立及不成立的不同流向 表示从某一框到另一框的流向
判断框 带箭头的流线
例4、用流程图描述求一元二次方程:
ax bx c 0(a 0)
m=5
输出m 结束
习题1.1 B组 1、算法步骤: 第一步:把计数变量n的初值 设为1. 第二步:输入一个成绩r,判断 r与6.8的大小,若r≥6.8,则执 行下一步;若r<6.8, 则输出r, 并执行下一步。 第三步:使计数变量n的值增 加。 第四步:判断计数变量n与成 绩个数9的大小,若n≤9,则返 回第二步;若n>9, 则结束。 是
例3、求1+2+3+·+100的和。 · ·
算法分析:
第一步:对称地取前后两数相加,即1+100,2+99, 3+98,·,50+51,得出两数之和都是101的规律。 · · 第二步:这样的和式共有
100 2
个,即50个 ;
100 第三步:总结出计算方法:101× 2
第四步:计算上式得出结果5050。 方法二:直接累加求1+2+3+ ·+100的和,虽然也能求得 · · 结果,但是要做99次加法,这显然是十分烦琐的。
开始 n=1输入rR Nhomakorabea6.8 是

输出r
n=n+1
n≤9?
否 结束
A1x+b1y=c1 A2x+b2y=c2
① ②
a u 2 ,由②+①×u得 第一步:判断a1是否等于0,如果a1≠0,令 a1
(b2+b1)y=c2+c1u 如果a1=0,计算 第二步:
1.2
基本算法语句
• 计算机完成任何一项任务都需要算法。但是,我们用 自然语言或程序框图描述的算法,计算机是无法“理 解”的,因此还需要将算法用计算机能够理解的程序 设计语言(programming language)翻译成计算机程序。 • 程序设计语言有很多种。为了实现算法中三种基本的 逻辑结构:顺序结构、条件结构和循环结构,各种程 序设计语言中都包含下列基本的算法语句。
2
实数根的算法(如下图)
用程序框图来表示算法,算法的基本逻辑结构展现得非常清 楚,一共有三种不同的基本逻辑结构,分别称为顺序结构、条件 结构和循环结构。 顺序结构:完全按照框图的排列顺序执行的结构。如下图:
语句1 语句2
不成立
条件
成立
条件不成立时 要处理的问题
条件成立时要 处理的问题
语句3
顺序结构
A+b>c,a+c>b, b+c>a是否同 时成立 是
存在这样的 三角形 结束

不存在这样 的三角形
从某处开始,按照一定条件,反复执行一处理步骤,就是循环结构。反复执 行的处理步骤循环体。显然,循环结构中一定包含条件结构。 在循环结构中,通常都有一个起到循环计数作用的变量,这个变量的取值一 般都含在执行或中止循环体的条件中。
x y (4).2 sin x y
(1).ABS(cos a+sin b)/(a+b) (2).(-b+SQRT(b^2-4*a*c))/2*a
(3).a < = x < = b
(4).2*sin ((x-y)/(x+y))
请用True或False填写表达式的值(大小写都可以)。 (1). NOT(3<4)AND(3>2) (2). NOT(5>6)AND(5<6) (3). (1>2)OR(3<4) AND NOT(6>7)
相关主题