a*算法流程图_第三章 集体备课算法基础2
教学目标:
1、理解和概述算法的概念与特征
2、学会运用恰当描述方法和控制结构表示简单算法
3、懂得描述程序设计语言产生和发展的过程
4、了解不同程序设计语言的特点
知识复习:
(1)随着数据的快速增长,人工处理大量数据的效率与计算机处理相比较正变得( )。
A.更高 B.更低 C.一样 D.无法比较
(2)关于用计算机程序解决问题说法中正确的是( )。
A.利用计算机的高速运算能力提高信息处理能力 B.提高信息加工的效率
C.针对具体问题以专门的程序来实现信息加工的自动化 D.以上说法都正确
(3)小明编写好解密程序后,调试运行时,程序没有报错且能顺利运行,却不能正确解密,造成这个结果的原因是( )。
A.解密算法逻辑错误 B.程序语句语法错误C.程序过期了 D.程序设计窗口配置不对
(4)算法的重要特征不包括以下哪一项?( )
A.有穷性 B.确定性 C.数据输出 D.唯一性
(5)下列关于算法的叙述,正确的是( )。
A.解决一个问题的算法只有一种 B.有穷性是算法的基本特征之一
C.可行性不属于算法基本特征 D.算法对程序设计没有任何作用
新课讲授:
一、算法及其描述
(一)算法的基本特征
数据输入:一个算法必须有0个和多个输入。
数据输出:算法必须有一个或多个输出。
可行性:算法的计算步骤都可以在有限时间内完成。
有穷性:算法 必须有结束。
确定性:算法执行的每一步必须有确定的意义,能拿出现模棱两可的情况。
(二)算法的描述
1、自然语言描述法
(1)请输入鸡兔总数和腿总数:heads,legs
(2)rabbits=(legs-heads*2)/2
(3)chikens=heads-rabbits
(4)判断:兔子、鸡数量大于0,并且都是整数
(5)输入鸡和兔子的数量,否则数据不正确。
2、流程图描述法
3、伪代码描述法
(三)算法的三种基本控制结构
1、顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的。
2、选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种形式。
3、循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。
【算法实践】
辗转相除法的算法描述:
①输入两个正整数m,n(m>n);
②计算m除以n所得的余数r;
③m=n,n=r;
④若r=0,则m,n的最大公约数等于m;否则转到步骤②;
⑤输出最大公约数m;
⑥结束。
【程序如下】
# gongyueshu1.py
a=int(input("a="))
b=int(input("b="))
if a < b:
a, b = b, a
r = 1
while r != 0:
r = a % b
a = b
b = r
print (b)
#gongyueshu2.py
m=int(input(“m=”))
n=int(input(“n=”))
if m < n:
m, n = n, m
for i in range(n,1,-1):
if (m%i==0) and (n%i==0):
print(i)
break
二、计算机程序与程序设计语言
计算机程序设计语言
(1)机器语言:是由“0”和“1”这样的二进制代码指令组来表示。每一条机器指令包含两个主要部分:操作(指出计算机应做什么)和被操作的对象(指出处理的数据或它的地址),计算机能直接识别和执行。
(2)汇编语言:使用了一种类似英文缩略词且带有助记性符号的语言,来替代一个特定的指令的二进制串,每条指令都和一条机器指令相对应。需要一个专门的语言翻译器,负责将程序中的每条语句都翻译成用二进制数表示的机器语言。
(3)高级语言: 接近于数学语言或人的自然语言,并且不再过度地倚赖某种特定的机器或环境,必须经过翻译器将其翻译成机器语言。
【探究体验】分别运行两段求两个大整数的最大公约数的程序,对比分析后,归纳:一个高质量的程序,应具备哪些条件?
#gongyueshu2.py
m=int(input(“m=”))
n=int(input(“n=”))
if m < n:
m, n = n, m
for i in range(n,1,-1):
if (m%i==0) and (n%i==0):
print(i)
break
高质量程序应具备以下条件:
1.便于检查、修正、移植和维护。
2.程序具有良好的结构,逻辑清晰、可读性强。
3.结果必须正确,且在精度和其他各方面均满足要求。
4.程序运行时间尽可能短,同时尽可能合理地使用内存。
课件设计: