内容正文:
算法与程序设计
主题三
算法及其控制结构
1. 算法
算法的概念:算法是在有限步骤内解决某一问题所使用的方法。
算法的特征:
有穷性
01
一个算法在执行有限步骤后在有限的时间内能够实现。
确定性
02
一个算法中的每一个步骤的表述都是确定的、没有歧义的语句。
有0个或多个输入
03
输入是算法执行时从外界获取的数据,没有输入是应为初始设定已经被隐藏在算法中。
有1个或多个输出
04
输出表示算反的执行结果,没有输出的算法没有意义。
可行性
05
每个步骤都能够有效地执行,并且得到确定的结果,同时能够用来方便地解决一类问题。
【例题】
1.算法必须在有限步骤内结束。这体现了算法的( )特征。
A.确定性 B.有穷性 C.输出性 D.可行性
2.如果一个软件运行后没有结果输出,那么他就没有存在的必要了,这体现了算法特征中的( )。
A.可行性 B.有穷性 C.确定性 D.有一个或多个输出
算法及其控制结构
1. 算法
算法的描述方法:
描述方法 自然语言 流程图 伪代码
实例 第一步:输入两个数
第二步:求这两个数的和
第三步:输出和 输入 A
IF A 大于等于60
输出及格
ELSE
输出不及格
END IF
开始
输入S
s≥60
Pass
No Pass
结束
是
否
【例题】
1.计算机能够直接执行的程序设计语言是( )。
A.伪代码 B.高级语言 C.机器语言 D.流程图
2.计算并联电路电阻的算法如下:
①输入两个电阻阻值A、B;
②根据公式计算C=1/(1/A+1/B);
③输出结果C。
这用到了算法的( )描述方法。
A.自然语言 B.流程图 C.伪代码 D.高级语言
算法及其控制结构
1. 算法
流程图符号及其作用
符号 名称 作用
起止框 表示一个算法的开开始或结束
处理框 表示要处理的内容,该框有一个入口和一个出口
输入或输出框 表示数据的输入或结果的输出
判断框 表示条件判断的情况。满足条件,执行一条路径;不满足条件,执行另一条路径
连接框 用于连接因画不下而断开的流程线
流程线 指出流程控制方向
【例题】
1.用流程图描述算法时,选择结构中的条件判断语句要用到的符号是( )。
A. B. C. D.
2.用流程图描述算法时,表示输入的流程图图形框是( )。
A. B. C. D.
算法及其控制结构
2.算法基本控制结构
控制结构 顺序结构 选择结构 循环结构
图例
语句一
语句二
语句三
条件
语句块一
语句块二
否
是
条件
语句块
是
否
语句块
条件
是
否
【例题】
1.下列选项中,表示循环结构的是( )。
A. B. C. D.
2.下面是判断成绩是否及格的算法,该算法的基本结构是( )。
A.循环结构 B.双分支结构 C.顺序结构 D.单分支结构
是
否
否
是
是
否
输入成绩
成绩小于60?
输出及格
输出不及格
程序和程序设计语言
1. 程序设计语言
程序是一组操作指令或语句序列,是计算机执行算法的一系列操作步骤。
程序设计语言是人们编制程序所使用的计算机语言。
程序设计语言主要经历了机器语言、汇编语言、高级语言三个发展历程。
1
机器语言
由二进制代码的指令组表示,可以被计算机直接执行。
2
汇编语言
类似英语缩略词并带有助记符号的语言。
3
高级语言
接近人类自然语言,是的程序的开发过程更有效率。
【例题】
1.随着计算机技术的发展,程序设计语言经历了从机器语言到高级语言的发展历程。我们现在所用的Python语言属于( )。
A.机器语言 B.汇编语言 C.低级语言 D.高级语言
2.在计算机发展初期,程序设计语言是由二进制代码指令组表示的。当时,编写者手边都放有一本编程手册,随时查找指令与代码,编写完成的程序可以直接运行。这种程序设计语言是( )。
A.机器语言 B.汇编语言 C.自然语言 D.高级语言
程序和程序设计语言
1. 程序设计语言
程序设计语言的一般过程
运行调试程序
04
修改语法错误,运行程序,发现错误并修改。
编写程序
03
选择程序设计语言,编写程序。
设计算法
02
选择描述算大的方法,设计算法。
分析问题
01
确定解决问题的方法,描述数据。
【例题】
1.为了求数列1,3,5,...,100的和,小明准备用等差数列的求和公式来解决,并画出了流程图。在程序设计的过程中,这一步骤是( )。
A.分析问题 B.设计算法 C.编写程序 D.运行调试程序
2.设计程序解决问题的第一个步骤是( )。
A.编写代码 B.设计算法 C.分析问题 D.运行调试
2.完成代码编写并不是程序设计的终结,还要运行程序,核对结果。这是程序设计的( )阶段。
A.编写代码 B.设计算法 C.分析问题 D.运行调试
程序和程序设计语言
2. Python程序设计语言
常量和变量是程序设计中数据的两种表示方式。
常量是直接给定、在程序中不能改变的数值。
常量描述的是存储空间的概念,用于引用在程序中可能会变化的数值。
为了增加程序的可读性,编写程序时,变量的名称应尽量体现数据的意义。Python语言中变量的命名规则为:
由大小写英文字母、数字或下划线组成,以英文字母或下划线为首字符,不能以数字开开头。
长度任意,大小写敏感,如A与a、myBook与mybook是不同的。
不能与Python中的关键字(又叫保留字,是指语言里事先定义的、有特别意义的标识符)同名。例如,input、int、if等是Python的关键字,不能作为变量名。
【例题】
1.在Python语言中,可以作为变量名的有( )。
①ab1 ②_Nanning ③A+B-C ④int ⑤For_123
A.①②③ B.②③⑤ C.①②⑤ D.①②③④⑤
2.在Python语言中,可以作为变量名的有( )。
①a4 ②_Guangxi ③2b ④float ⑤while_123
A.①②⑤ B.②③⑤ C.①②③ D.①②③④⑤
程序和程序设计语言
2. Python程序设计语言
数据类型:
数据类型 示例
整型(int) 123
浮点型(float) 1.23,1.2E4
布尔类型(bool) True,False
字符串类型(str) “abcde”,’xyz’
列表(list) [1,2,3,4,5]
【例题】
1.在Python语言中,语句a=“12.3”执行后,比变量a的数据类型是( )。
A.整数类型 B.字符串类型 C.浮点数类型 D.布尔类型
2.在Python语言中,下列选项属于浮点型常量的是( )。
A.“3.1415” B.12345 C.3E+3 D.True
程序和程序设计语言
2. Python程序设计语言
常用函数用法:
函数名 作用 示例
input( ) 数据输入 a=input( ),将输入数据存储到a中
print( ) 数据输出 print(“abc”),打印abc
int( ) 转为整数 int(“345”),将字符串转为整数
float( ) 转为浮点数 float(“12.35”),将字符串转为浮点数
sqrt( ) 开方函数 sqrt(9),结果为3
abs( ) 绝对值函数 abs(-15),求-15的绝对值,结果是15
【例题】
1.在Python语言中,已知a=5,程序表达式print(“a=”,a)的执行结果是( )。
A.“a=”,a B.a=a C.5=5 D.a=5
2.在Python语言中,执行语句x=input(“请输入一个整数:”)时,如果输入12345后回车,那么x的类型是( )。
A.字符串 B.整型 C.布尔型 D.浮点型
程序和程序设计语言
2. Python程序设计语言
range()函数用法:
示例 说明
range(2,8,2)
产生的整数序列为:2,4,6 。注意不包括 8
range(2,5)
产生的整数序列为:2,3,4 。注意不包括 5,并且序列间隔默认为 1
产生的整数序列为:0,1,2,3 。注意不包括4
range(4)
range(5,2,-1) 产生的整数序列为:5,4,3 。注意不包括 2
range()函数是Python语言中实现循环结构的常用函数,它用于产生一个等差的整数序列。range(start,stop,step) 表示从start开始,到小于stop的最大整数结束,间隔为step。
【例题】
1.在Python语言中,执行以下语句后,输出( )。
A. 15 B. 18 C. 21 D. 45
2.要产生等差数列3,8,13,18,23可以使用range函数。下列选项可以完成上述要求的是( )。
A. range(3,23) B. range(3,23,5)
C. range(3,24,5) D.range(23,3,5)
s = 0
for i in range(2,10,3):
s = s+i
print(s)
程序和程序设计语言
2. Python程序设计语言
常用运算符:
运算类型 运算符 含义 示例 示例运算结果
算术运算符 + 加法 2+3 5
- 减法 5-3 2
* 乘法 2*3 6
/ 除法 5/2 2.5
// 整除 5//2 2
% 求余数 5%2 1
** 次幂 5**2 25
程序和程序设计语言
2. Python程序设计语言
常用运算符:
运算类型 运算符 含义 示例 示例运算结果
关系运算符 < 小于 4<3 False
<= 小于等于 4<=5 True
> 大于 3>2 True
>= 大于等于 4>=5 False
== 等于 3==2 False
!= 不等于 4!=5 True
程序和程序设计语言
2. Python程序设计语言
常用运算符:
运算类型 运算符 含义 示例 示例运算结果
逻辑运算符 and 并且 False and True False
or 或者 False or True True
not 非 not False True
程序和程序设计语言
2. Python程序设计语言
逻辑运算符的运算规则:
逻辑运算符 逻辑运算 运算结果
not not True False
not False True
and True and True True
True and False False
False and True False
False and False False
or True or True True
True or False True
False or True True
False or False False
【例题】
1.在Python语言中,表示代数式2a2( )。
A. 2a*a B. 2a**a C. 2*a**2 D. 2a*a
2.在Python中,已知A、B、C存储的是三角形三边长度数据,下列表达式中运算结果一定为True的是( )。
A. A>=B B. A-B>C C. A+B>C D. A+B=C
3.在Python语言中,一下语句的运算结果为True的是( )。
A. 5>3 and 4<3 B. 5<3 or 4<3
C. 5>=3 and 4<=3 D. 5>=3 and 3<=3
程序和程序设计语言
2. Python程序设计语言
运算符的运算级别从高到低依次是:算术运算符→关系运算符→逻辑运算符。
优先级 运算符(从高到低) 运算结果
高
↓
低 算术运算符 1 ** 13//2*3**2
先算3**2,再算13//2,最后算*运算
2 *、/、%、//
3 +、-
关系运算符 <、>、<=、>=、==、!= 4+3>2*3
先做4+3和2*3,再做“>”运算
逻辑运算符 1 not 4>3 or not 5<6 and 7>3
先做not 5<6运算,再做and运算,最后是or运算
2 and
3 or
【例题】
1.在Python语言中,程序表达式(4+13//3)%5的计算结果是( )。
A. 4 B. 3 C. 2 D. 1
2.在Python中,程序表达式(1+2)**3//3的计算结果是( )。
A. 0 B. 3 C. 9 D. 51
3.在Python语言中,若a=5,b=3,计算结果是False的是( )。
A. not a<b B. a>b and b<2
C. a<=b or b>0 D. a!=b
程序和程序设计语言
2. Python程序设计语言
赋值语句形式:
变量 =
常量
变量
表达式
例如,a = 3 含义是把 3 赋给变量 a;
a = b 含义是把变量 b 的值赋给变量 a;
a = b+c 含义是吧表达式 b+c 的值赋给变量 a。
【例题】
1.在Python语言中,没有语法错误的选项是( )。
A. 2a=30 B. A-B=C-D C. a=12+”34“ D. Y=5>3
2.在Python语言中,下列赋值语句正确的是( )。
A. a=5 B. a==5 C. 5=A D. 5==A
程序和程序设计语言
3. 常用算法
枚举法
根据已知条件,在给定的范围内对所有可能的答案按某种顺序进行逐一枚举和检验,从中找出那些符合要求的答案。
例如,求a和b的最大的公约数,先检查a是不是答案,若不是在检查a-1,a-2,...,直到找到为止。
a = 8
b = 12
if a > b:
min = b
else:
min = a
for i in range(1, min+1):
if (a % i == 0) and (b % i == 0):
c = i
print('这两个数的最大公约数为:%d' % c)
程序和程序设计语言
3. 常用算法
解析法
通过找出问题中各要素之间的关系,使用相关公式求出解决问题的解析式,并计算解析式来求解问题。
例如,用求根公式求解一元二次方程的根,用等差数列求和公式求1+2+3+...+N的和。
#求一元二次方程x2+2x+1=0
#求根公式
a = 1
b = 2
c = 1
x1 = (-b+(b**2-4*a*c)*1/2)/2*a
x2 = (-b+(b**2+4*a*c)*1/2)/2*a
print(x1,x2)
#求数列1,2,3,4,...,100的和
#等差数列求和公式
n = 100
a1 = 1
an = 100
Sn = (n*(a1+an))/2
print(Sn)
【例题】
1.下图程序代码解决了寻找a和b的最小公倍数的问题。解决方法是先猜测其中一个最小公倍数,若经检测不是,则将其加1,在检测,知道猜中为止。这种解决问题的算法思想是( )。
A. 枚举法 B. 解析法 C. 分冶法 D. 递归法
a = int(input())
b = int(input())
c = a
while c%a>0 or c%b>0:
c = c+1
print(“最小公倍数是:”,c)
【例题】
1.下图程序代码解决了输入n,求1+2+3+...+n的问题,程序利用求和公式将和求解出来。这种解决问题的算法思想是( )。
A. 枚举法 B. 解析法 C. 分冶法 D. 递归法
n=int(input())
s=(1+n)*n/2
print(“1+2+3+...+n=”,s)
$$