算法初步
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任意给定一个大于1的整数 的整数n, 例1 任意给定一个大于 的整数 ,试设计一 个算法步骤对n是否为质数做出判断 是否为质数做出判断。 个算法步骤对 是否为质数做出判断
总体思路:如果 大于 大于2, 依次除以2~n-1,检查每一次是否整除, 总体思路:如果n大于 ,将n依次除以 依次除以 ,检查每一次是否整除, 若某一次整除, 不是质数, 若某一次整除,则n不是质数,否则,全部检查完,仍没有整除的情况, 不是质数 否则,全部检查完,仍没有整除的情况, 是质数; 则n是质数;n=2,直接判断是质数。 是质数 ,直接判断是质数。 Step1:输入n,如果 :输入 ,如果n=2,则n是质数;若n>2,执行第二步; 是质数; , 是质数 ,执行第二步; Step2:令flag=1,标记 : 区分是否存在整除的情况; ,标记flag区分是否存在整除的情况; 区分是否存在整除的情况 Step3:依次从2~n-1循环检验是否为 的因数,在某一步,若是 的因数, :依次从 循环检验是否为n的因数 的因数, 循环检验是否为 的因数,在某一步,若是n的因数 则令flag=0,中途直接停止即可,并作出判断,n不是质数; 不是质数; 则令 ,中途直接停止即可,并作出判断, 不是质数 Step4:如果循环检查完2~n-1中的每一个数,flag=1仍然成立,则可以 :如果循环检查完 中的每一个数, 仍然成立, 中的每一个数 仍然成立 做出判断, 是质数 是质数。 做出判断, n是质数。
2、程序框图 、
解:
开始
i =1
开始
i =1
sum=0
sum=0
sum=sum+i
i=i+1
i=i+1 否 i >100? 是 输出sum 输出sum i <=100? 否 是
sum=sum+i
结束
结束
直到型
当型
习题: 习题:
1、设计一个求12+22+…+1002的值。(思考) 、设计一个求 的值。(思考) 。(思考 2、某居民区的物业部门每月向居民收取卫生费:3 、某居民区的物业部门每月向居民收取卫生费: 人和3人以下的住户 每月收取5元 超过3人的住户 人以下的住户, 人的住户, 人和 人以下的住户,每月收取 元,超过 人的住户, 每超过1人加收 人加收1.2元 设计算法 根据输入的人数, 设计算法, 每超过 人加收 元.设计算法,根据输入的人数, 计算应收取的卫生费,画出框图。(思考) 。(思考 计算应收取的卫生费,画出框图。(思考)
1、算法的含义 算法的含义
举例:求一元二次方程 的实根。 举例:求一元二次方程ax2+bx+c=0的实根。 的实根 用算法的思想怎样来求? 全解 例三) 全解p7例三 用算法的思想怎样来求?(全解 例三
解:
Step1:确定a,b,c :确定 Step2:计算判别式 : Step3:判别 的符号 : Step4:三种结果 : 1)无实根; )无实根; 2)有两个相等实根; )有两个相等实根; 3)有两个不等实根。 )有两个不等实根。 Step5:输出实根 :
1、算法的含义 算法的含义
算法: 算法:用计算机解决问题的某一类问题的程 序或步骤,且在有限步内完成。 序或步骤,且在有限步内完成。
理解: 理解: 1、算法是一种解决问题的过程和步骤。 、算法是一种解决问题的过程和步骤。 2、算法是解决某一类问题的。 、算法是解决某一类问题的。 3、算法具有某种意义上的通用性和普适性。 、算法具有某种意义上的通用性和普适性。 4、算法是与计算机对话的一种思维方式。 、算法是与计算机对话的一种思维方式。 5、算法必须有限步完成。 、算法必须有限步完成。
结束
返回
2、程序框图 、
通过框图,算法的逻辑结构表现得 通过框图, 非常清楚,通常有三种结构: 非常清楚,通常有三种结构:
1.顺序结构; 顺序结构; 顺序结构 2.条件(选择)结构; 条件( 条件 选择)结构; 3.循环结构。 循环结构。 循环结构
2、程序框图 、
(1)顺序结构 )
已知三角形的三边边长为2,3,4,计算面积。 计算面积。 例3:已知三角形的三边边长为 已知三角形的三边边长为 计算面积 思路: 思路: 1、秦九韶面积公式:S=[p(p-a)(p-b)(p-c)]1/2 、秦九韶面积公式: 2、其中,p=(a+b+c)/2 、其中, 解决: 解决: 1、输入边长a,b,c,计算p的值。 、输入边长 ,计算 的值。 的值 2、按公式计算S,输出 。 、按公式计算 ,输出S。
框图
1、算法的含义 算法的含义
的近似根的算法。 例2、 用二分法求方程 2-2=0的近似根的算法 、 用二分法求方程x 的近似根的算法
总体思路:设定一个区间,包含方程的根,每次取区间的中点, 总体思路:设定一个区间,包含方程的根,每次取区间的中点,改变 原区间的一个端点,以缩小区间,但始终保持该区间包含方程的根, 原区间的一个端点,以缩小区间,但始终保持该区间包含方程的根, 最后使区间缩小到非常小的程度,达到近似根的精度要求, 最后使区间缩小到非常小的程度,达到近似根的精度要求,则区间内 任意点都可以作为方程的根。 任意点都可以作为方程的根。 Step1:令f (x)=x2-2,取区间端点为 1=1,x2=2,则f (x1)<0, f (x2)>0; : ,取区间端点为x , , ; Step2:令m=(x1+x2)/2,判断 (m) =0 ? 若是,m即为所求,停止; : 若是, 即为所求 停止; 即为所求, ,判断f Step3:否则,判断f (x1) ·f (m) >0 ? 若成立,令x1= m ; :否则,判断 若成立, 否则, 否则,令x2= m; ; Step4:判断| x1-x2 |<e (e=0.005;0.0005;0.00005等)? :判断 等 若是, 之间的任意点均为满足条件的近似根; 若是, x1,x2之间的任意点均为满足条件的近似根; 否则,返回 重复进行。 否则,返回Step2重复进行。 重复进行
例1的框图
开始
输入n 否 n>2?
flag=1
d=2 否 d整除 整除n? 整除 是 flag=0 是 d<n-1且flag=1? 且 否 flag=1? 是 n是质数 是质数 n不是质数 不是质数 否 d=d+1
结束
返回
例2的框图
开始
f (x)=x2-2 输入初值x1,x2,误差e
m=(x1+x2)/2 是 f (m)=0? 否 否 f (x1) f (m)>0? 是 x1=m 否 | x1-x2 |<e? 是 输出m x2=m
是 x1=x2? 两个相等 实根x1,x2 否 输出不等 实根x1,x2 无实根
开始
输入a,b,c
因式分解的方法行不行 因式分解的方法行不行? 的方法行不行 不具有通用性! 不具有通用性!
否
=b2-4ac; p=-b/2a;q= | |1/2/2a >=0 是 x1=p+q; x2=p-q;
ቤተ መጻሕፍቲ ባይዱ结束
1、算法的含 算法的含义 算法的含
2、程序框图 、
解:
开始 输入a,b,c
a+b>c且a+c>b且b+c>a 且 且 同时成立? 是 存在这样 的三角形
否
不存在这样 的三角形
结束
2、程序框图 、
(3)循环结构 )
的值的算法。 例5:设计一个计算 :设计一个计算1+2+…+100的值的算法 的值的算法 思路: 思路: 1、算法要实现累加:问题是一个连加,按照算法的通用性和 、算法要实现累加:问题是一个连加, 普适性来说,该问题的共性是加法,且重复。 普适性来说,该问题的共性是加法,且重复。 2、有限次完成。 、有限次完成。 解决: 解决: 1、设置一个累加变量,用于存放总和。 、设置一个累加变量,用于存放总和。 2、设置一个计数变量,用于判断累加次数是否超过100次。 、设置一个计数变量,用于判断累加次数是否超过 次
框图
1、算法的含义 算法的含义
f(x)=x2-2
x1=1
1.25 1.375 1.5 x2=2
1、算法的含义 算法的含义
小结:算法是“傻瓜式” 小结:算法是“傻瓜式”的,即算法要 面面俱到” “面面俱到”,不能省略任何一个细小的 步骤,只有这样,才能在设计出算法后, 步骤,只有这样,才能在设计出算法后, 把具体的执行过程交给计算机完成。 把具体的执行过程交给计算机完成。 算法有“ 不好” 之分, 但,算法有“好”与“不好” 之分,“好” 的算法可以节约计算机的执行时间, 的算法可以节约计算机的执行时间,“不 的算法占用大量的计算机时间。 好” 的算法占用大量的计算机时间。
2、程序框图 、
框图:又称流程图,是表达算法的重要工具, 框图:又称流程图,是表达算法的重要工具, 借助框图,人们可以清晰而条理地表达思想。 借助框图,人们可以清晰而条理地表达思想。
理解: 理解: 1、框图的表现形式:程序框和流程线的组合形式。 、框图的表现形式:程序框和流程线的组合形式。 的组合形式 2、程序框和流程线是一种形式规范,好的形式规范,是交 、程序框和流程线是一种形式规范,好的形式规范, 流重要前提。 流重要前提。 3、通过框图将解题思想表达为计算机的“思维”习惯。 、通过框图将解题思想表达为计算机的“思维”习惯。 框图将解题思想表达为计算机的
解答: 解答
1、略。 略 2、分析:卫生费是一个分段函数: 分析:卫生费是一个分段函数 分析
开始
5 x ≤3 f (x) = 5+(x −3)⋅1.2 x > 3
输入人数x 否 x>3? 是 m=5+(x-3)·1.2 m=5
输出m
结束
3、实现算法的程序
1、算法的含义 算法的含义
例如:枚举法。 例如:枚举法。 x1,x2,x3,x4,x5为0-999之间的整数,求满足 之间的整数, 之间的整数 x1+x2+x3+x4+x5=2050的条件下,乘积 的条件下, 的条件下 x1·x2·x3·x4·x5 达到最大。 达到最大。 解:计算机枚举出所有可能的组合 (1000)5=1015,现有计算机计算约为 现有计算机计算约为200多年。 多年。 多年 而实际上,可以找到算法算出, 而实际上,可以找到算法算出,当 x1=x2=x3=x4=x5=410时,x1·x2·x3·x4·x5 达到最大。 时 达到最大。
2、程序框图 、
解:
开始 输入a,b,c
p =(a+b+c)/2
S=[p(p-a)(p-b)(p-c)]1/2
输出S
结束
2、程序框图 、
(2)条件结构 )
任意给定3个正实数 例4:任意给定 个正实数,判断分别以这些实数为边长的三角 任意给定 个正实数, 形是否存在。 形是否存在。 思路: 思路: 1、条件:a+b>c且a+c>b且b+c>a 、条件: 且 且 2、条件成立,存在该三角形,否则,不存在。 、条件成立,存在该三角形,否则,不存在。 解决: 解决: 1、输入边长a,b,c,判断思路1中的条件。 、输入边长 ,判断思路 中的条件。 中的条件 2、根据思路2中的结论,输出结论。 、根据思路 中的结论 输出结论。 中的结论,
1、算法初步 算法初步
目标:了解算法的基本思想; 目标:了解算法的基本思想;培养使用算法 的思想进行思考与表达解决问题的能力。 的思想进行思考与表达解决问题的能力。
内容: 内容: 1、算法的含义。 、算法的含义。 2、程序框图。 、程序框图。 3、实现算法的程序。 、实现算法的程序。 4、典型的算法介绍。 、典型的算法介绍
1、算法的含义 算法的含义
例1、详细步骤: 、详细步骤:
Step1:输入n,如果 :输入 ,如果n=2,则n是质数,结束;若n>2,执行第二步; 是质数, , 是质数 结束; ,执行第二步; Step2:令flag=1; : ; Step3:1)d=2; : ) ; 2)d整除 ? ) 整除 整除n 21)是,flag=0; ) ; 22)否,d自增加 (d=d+1); ) 自增加1( 自增加 ); 3)d<=n-1且flag=1 ? ) 且 31)是,重新判断第2)步(即转 )步); ) 即转2) 重新判断第 ) 32)否,下一步; ) 下一步; Step4:flag=1 ? 41)是, n是质数; : 是质数; ) 是质数 42)否, n不是质数。 ) 不是质数。 不是质数
总体思路:如果 大于 大于2, 依次除以2~n-1,检查每一次是否整除, 总体思路:如果n大于 ,将n依次除以 依次除以 ,检查每一次是否整除, 若某一次整除, 不是质数, 若某一次整除,则n不是质数,否则,全部检查完,仍没有整除的情况, 不是质数 否则,全部检查完,仍没有整除的情况, 是质数; 则n是质数;n=2,直接判断是质数。 是质数 ,直接判断是质数。 Step1:输入n,如果 :输入 ,如果n=2,则n是质数;若n>2,执行第二步; 是质数; , 是质数 ,执行第二步; Step2:令flag=1,标记 : 区分是否存在整除的情况; ,标记flag区分是否存在整除的情况; 区分是否存在整除的情况 Step3:依次从2~n-1循环检验是否为 的因数,在某一步,若是 的因数, :依次从 循环检验是否为n的因数 的因数, 循环检验是否为 的因数,在某一步,若是n的因数 则令flag=0,中途直接停止即可,并作出判断,n不是质数; 不是质数; 则令 ,中途直接停止即可,并作出判断, 不是质数 Step4:如果循环检查完2~n-1中的每一个数,flag=1仍然成立,则可以 :如果循环检查完 中的每一个数, 仍然成立, 中的每一个数 仍然成立 做出判断, 是质数 是质数。 做出判断, n是质数。
2、程序框图 、
解:
开始
i =1
开始
i =1
sum=0
sum=0
sum=sum+i
i=i+1
i=i+1 否 i >100? 是 输出sum 输出sum i <=100? 否 是
sum=sum+i
结束
结束
直到型
当型
习题: 习题:
1、设计一个求12+22+…+1002的值。(思考) 、设计一个求 的值。(思考) 。(思考 2、某居民区的物业部门每月向居民收取卫生费:3 、某居民区的物业部门每月向居民收取卫生费: 人和3人以下的住户 每月收取5元 超过3人的住户 人以下的住户, 人的住户, 人和 人以下的住户,每月收取 元,超过 人的住户, 每超过1人加收 人加收1.2元 设计算法 根据输入的人数, 设计算法, 每超过 人加收 元.设计算法,根据输入的人数, 计算应收取的卫生费,画出框图。(思考) 。(思考 计算应收取的卫生费,画出框图。(思考)
1、算法的含义 算法的含义
举例:求一元二次方程 的实根。 举例:求一元二次方程ax2+bx+c=0的实根。 的实根 用算法的思想怎样来求? 全解 例三) 全解p7例三 用算法的思想怎样来求?(全解 例三
解:
Step1:确定a,b,c :确定 Step2:计算判别式 : Step3:判别 的符号 : Step4:三种结果 : 1)无实根; )无实根; 2)有两个相等实根; )有两个相等实根; 3)有两个不等实根。 )有两个不等实根。 Step5:输出实根 :
1、算法的含义 算法的含义
算法: 算法:用计算机解决问题的某一类问题的程 序或步骤,且在有限步内完成。 序或步骤,且在有限步内完成。
理解: 理解: 1、算法是一种解决问题的过程和步骤。 、算法是一种解决问题的过程和步骤。 2、算法是解决某一类问题的。 、算法是解决某一类问题的。 3、算法具有某种意义上的通用性和普适性。 、算法具有某种意义上的通用性和普适性。 4、算法是与计算机对话的一种思维方式。 、算法是与计算机对话的一种思维方式。 5、算法必须有限步完成。 、算法必须有限步完成。
结束
返回
2、程序框图 、
通过框图,算法的逻辑结构表现得 通过框图, 非常清楚,通常有三种结构: 非常清楚,通常有三种结构:
1.顺序结构; 顺序结构; 顺序结构 2.条件(选择)结构; 条件( 条件 选择)结构; 3.循环结构。 循环结构。 循环结构
2、程序框图 、
(1)顺序结构 )
已知三角形的三边边长为2,3,4,计算面积。 计算面积。 例3:已知三角形的三边边长为 已知三角形的三边边长为 计算面积 思路: 思路: 1、秦九韶面积公式:S=[p(p-a)(p-b)(p-c)]1/2 、秦九韶面积公式: 2、其中,p=(a+b+c)/2 、其中, 解决: 解决: 1、输入边长a,b,c,计算p的值。 、输入边长 ,计算 的值。 的值 2、按公式计算S,输出 。 、按公式计算 ,输出S。
框图
1、算法的含义 算法的含义
的近似根的算法。 例2、 用二分法求方程 2-2=0的近似根的算法 、 用二分法求方程x 的近似根的算法
总体思路:设定一个区间,包含方程的根,每次取区间的中点, 总体思路:设定一个区间,包含方程的根,每次取区间的中点,改变 原区间的一个端点,以缩小区间,但始终保持该区间包含方程的根, 原区间的一个端点,以缩小区间,但始终保持该区间包含方程的根, 最后使区间缩小到非常小的程度,达到近似根的精度要求, 最后使区间缩小到非常小的程度,达到近似根的精度要求,则区间内 任意点都可以作为方程的根。 任意点都可以作为方程的根。 Step1:令f (x)=x2-2,取区间端点为 1=1,x2=2,则f (x1)<0, f (x2)>0; : ,取区间端点为x , , ; Step2:令m=(x1+x2)/2,判断 (m) =0 ? 若是,m即为所求,停止; : 若是, 即为所求 停止; 即为所求, ,判断f Step3:否则,判断f (x1) ·f (m) >0 ? 若成立,令x1= m ; :否则,判断 若成立, 否则, 否则,令x2= m; ; Step4:判断| x1-x2 |<e (e=0.005;0.0005;0.00005等)? :判断 等 若是, 之间的任意点均为满足条件的近似根; 若是, x1,x2之间的任意点均为满足条件的近似根; 否则,返回 重复进行。 否则,返回Step2重复进行。 重复进行
例1的框图
开始
输入n 否 n>2?
flag=1
d=2 否 d整除 整除n? 整除 是 flag=0 是 d<n-1且flag=1? 且 否 flag=1? 是 n是质数 是质数 n不是质数 不是质数 否 d=d+1
结束
返回
例2的框图
开始
f (x)=x2-2 输入初值x1,x2,误差e
m=(x1+x2)/2 是 f (m)=0? 否 否 f (x1) f (m)>0? 是 x1=m 否 | x1-x2 |<e? 是 输出m x2=m
是 x1=x2? 两个相等 实根x1,x2 否 输出不等 实根x1,x2 无实根
开始
输入a,b,c
因式分解的方法行不行 因式分解的方法行不行? 的方法行不行 不具有通用性! 不具有通用性!
否
=b2-4ac; p=-b/2a;q= | |1/2/2a >=0 是 x1=p+q; x2=p-q;
ቤተ መጻሕፍቲ ባይዱ结束
1、算法的含 算法的含义 算法的含
2、程序框图 、
解:
开始 输入a,b,c
a+b>c且a+c>b且b+c>a 且 且 同时成立? 是 存在这样 的三角形
否
不存在这样 的三角形
结束
2、程序框图 、
(3)循环结构 )
的值的算法。 例5:设计一个计算 :设计一个计算1+2+…+100的值的算法 的值的算法 思路: 思路: 1、算法要实现累加:问题是一个连加,按照算法的通用性和 、算法要实现累加:问题是一个连加, 普适性来说,该问题的共性是加法,且重复。 普适性来说,该问题的共性是加法,且重复。 2、有限次完成。 、有限次完成。 解决: 解决: 1、设置一个累加变量,用于存放总和。 、设置一个累加变量,用于存放总和。 2、设置一个计数变量,用于判断累加次数是否超过100次。 、设置一个计数变量,用于判断累加次数是否超过 次
框图
1、算法的含义 算法的含义
f(x)=x2-2
x1=1
1.25 1.375 1.5 x2=2
1、算法的含义 算法的含义
小结:算法是“傻瓜式” 小结:算法是“傻瓜式”的,即算法要 面面俱到” “面面俱到”,不能省略任何一个细小的 步骤,只有这样,才能在设计出算法后, 步骤,只有这样,才能在设计出算法后, 把具体的执行过程交给计算机完成。 把具体的执行过程交给计算机完成。 算法有“ 不好” 之分, 但,算法有“好”与“不好” 之分,“好” 的算法可以节约计算机的执行时间, 的算法可以节约计算机的执行时间,“不 的算法占用大量的计算机时间。 好” 的算法占用大量的计算机时间。
2、程序框图 、
框图:又称流程图,是表达算法的重要工具, 框图:又称流程图,是表达算法的重要工具, 借助框图,人们可以清晰而条理地表达思想。 借助框图,人们可以清晰而条理地表达思想。
理解: 理解: 1、框图的表现形式:程序框和流程线的组合形式。 、框图的表现形式:程序框和流程线的组合形式。 的组合形式 2、程序框和流程线是一种形式规范,好的形式规范,是交 、程序框和流程线是一种形式规范,好的形式规范, 流重要前提。 流重要前提。 3、通过框图将解题思想表达为计算机的“思维”习惯。 、通过框图将解题思想表达为计算机的“思维”习惯。 框图将解题思想表达为计算机的
解答: 解答
1、略。 略 2、分析:卫生费是一个分段函数: 分析:卫生费是一个分段函数 分析
开始
5 x ≤3 f (x) = 5+(x −3)⋅1.2 x > 3
输入人数x 否 x>3? 是 m=5+(x-3)·1.2 m=5
输出m
结束
3、实现算法的程序
1、算法的含义 算法的含义
例如:枚举法。 例如:枚举法。 x1,x2,x3,x4,x5为0-999之间的整数,求满足 之间的整数, 之间的整数 x1+x2+x3+x4+x5=2050的条件下,乘积 的条件下, 的条件下 x1·x2·x3·x4·x5 达到最大。 达到最大。 解:计算机枚举出所有可能的组合 (1000)5=1015,现有计算机计算约为 现有计算机计算约为200多年。 多年。 多年 而实际上,可以找到算法算出, 而实际上,可以找到算法算出,当 x1=x2=x3=x4=x5=410时,x1·x2·x3·x4·x5 达到最大。 时 达到最大。
2、程序框图 、
解:
开始 输入a,b,c
p =(a+b+c)/2
S=[p(p-a)(p-b)(p-c)]1/2
输出S
结束
2、程序框图 、
(2)条件结构 )
任意给定3个正实数 例4:任意给定 个正实数,判断分别以这些实数为边长的三角 任意给定 个正实数, 形是否存在。 形是否存在。 思路: 思路: 1、条件:a+b>c且a+c>b且b+c>a 、条件: 且 且 2、条件成立,存在该三角形,否则,不存在。 、条件成立,存在该三角形,否则,不存在。 解决: 解决: 1、输入边长a,b,c,判断思路1中的条件。 、输入边长 ,判断思路 中的条件。 中的条件 2、根据思路2中的结论,输出结论。 、根据思路 中的结论 输出结论。 中的结论,
1、算法初步 算法初步
目标:了解算法的基本思想; 目标:了解算法的基本思想;培养使用算法 的思想进行思考与表达解决问题的能力。 的思想进行思考与表达解决问题的能力。
内容: 内容: 1、算法的含义。 、算法的含义。 2、程序框图。 、程序框图。 3、实现算法的程序。 、实现算法的程序。 4、典型的算法介绍。 、典型的算法介绍
1、算法的含义 算法的含义
例1、详细步骤: 、详细步骤:
Step1:输入n,如果 :输入 ,如果n=2,则n是质数,结束;若n>2,执行第二步; 是质数, , 是质数 结束; ,执行第二步; Step2:令flag=1; : ; Step3:1)d=2; : ) ; 2)d整除 ? ) 整除 整除n 21)是,flag=0; ) ; 22)否,d自增加 (d=d+1); ) 自增加1( 自增加 ); 3)d<=n-1且flag=1 ? ) 且 31)是,重新判断第2)步(即转 )步); ) 即转2) 重新判断第 ) 32)否,下一步; ) 下一步; Step4:flag=1 ? 41)是, n是质数; : 是质数; ) 是质数 42)否, n不是质数。 ) 不是质数。 不是质数