【新教材】教科版(2019)高中信息技术必修一第4章计算与问题解决 单元知识点检测 (含答案)

文档属性

名称 【新教材】教科版(2019)高中信息技术必修一第4章计算与问题解决 单元知识点检测 (含答案)
格式 doc
文件大小 382.0KB
资源类型 教案
版本资源 教科版(2019)
科目 信息技术(信息科技)
更新时间 2021-10-13 12:21:08

图片预览

文档简介

第四章 计算与问题解决
知识点汇总:
计算机解决问题的过程:分析问题——》设计算法——》编写代码——》调试运行
算法:算法解决问题的过程和方法,也是一种数学模型。
算法描述:自然语言、流程图、伪代码、PAD图等
算法5大特征:
有穷性:有限步骤后能终止。
确切性:每一次运算都有明确的定义,具有无二义性。
输入:有0个或多个输入。
输出:一定要有输出。
可行性:可以在有限时间内完成。
算法的三种结构:顺序结构、分支结构和循环结构。
常见算法:枚举法(穷举法)、解析法、二分查找法、顺序查找法、哈希查找法、迭代算法和递归算法等。
枚举法(穷举法):把所有可能的答案一一列举,找到合适的保留,不合适的就丢弃。
解析法:通过代数数学公式计算的得到答案。
二分查找法:必须是有序的序列,折半查找。
迭代算法:每一次对过程的重复称为迭代。
递归算法:直接或间接的调用自身的方法称为递归。
本章用到的模块:
numpy:科学计算包,包含很多数学函数。
matplotlib:绘图库。
Python中加载模块的方法:
import numpy 或 import numpy as np #加载numpy模块并取名np
import matplobtlib.pyplot 或 import matplobtlib.pyplot as plt #加载matplobtlib.pyplot模块并取名plt
习题检测:
1.图一程序 是算法 结构;
2.图二自定义函数名称 。
3.图三程序使用了 算法。
4.图四程序使用了 算法。
5.以下关于算法中输入、输出的描述正确的是( )。
A.算法可以没有输入,表示该算法不涉及任何数据信息
B.算法可以没有输出,表示该算法运行结果为“无解”
C.算法必须要有输入,否则算法无法进行
D.算法至少要有一个输出
6.采用盲目搜索的方法,在搜索的过程中,对所得的结果逐一筛选,排除不符合要求的结果,保留那些符合要求的结果,这种方法叫做( )。
A.解析法 B.递推法 C.枚举法 D.选择法
7.在软件的生命周期中,明确软件系统具备哪些功能的阶段是( )。
A.可行性分析 B.需求分析 C.概要设计 D.详细设计
8.图中代码输入是()
A.输入是1 B.输入是s C.输入是0 D.没有输入
9.有N根小棒(N是偶数),没根小棒长1厘米,要将这些小棒拼成矩形,怎样拼才能使其面积最大?
分析:用什么算法解决问题?
课本程序分析
课本88页寻找“开关对应关系”流程图
课本p90页 寻找被删的ID号
课本p91页
课本P95页利用python绘制正弦曲线y1=sin(x)、y2=sin(-x)、y3=sin(2*x)/2
程序
import numpy as np #加载numpy模块并取别名为np
import matplotlib.pyplot as plt #加载matplotlib.pyplot并取别名为plt
x=np.arange(0,2*np.pi,0.01) #列表x在0到2π之间,毎隔0.01取一个点
y1=np.sin(x) #求sin(x)对应的列表y1的值
y2=np.sin(-x) #求sin(-x)对立的列表y2的值
y3=np.sin(2*x)/2 #求sin(2x)/2对应的列表y3的值
plt.plot(x,y1) #绘制sin(x)的图像
plt.plot(x,y2) #绘制sin(-x)的图像
plt.plot(x,y3) #绘制sin(2x)/ 2的图像
plt.title(‘sin(x)’) #设置图像标题
plt.xlabel(‘X’) #设置X轴标题
plt.ylabel(‘Y’) #设置Y轴标题
plt.show( ) #将绘制的函数图像窗口显示出来
课本p98页
Python程序代码如下:
def fib(n):
#迭代求Fibonacci数列
f2=f1=1 #第1个月、第2个月初始值的设定
for i in range(3,n+1): #从第3个月至第n个月依次计算
f1,f2=f2,f1+f2
return f2
n=int(input('输入需要计算的月份数:'))
print('兔子总对数为:',fib(n)) #输出最终值
课本p102页 二分查找
x=int(input("请输入要查找的1000以内的整数:"))
step=0
flag1=1
flag2=1000
while(flag1<=flag2):
mid=(flag1+flag2)//2
if mid>x:
flag2=mid-1
elif midflag1=mid+1
else:
break
print("查找次数为:",step)
课本拼104页汉诺塔
def hanno(n,s,m,t):
#定义一个函数,n层塔,将盘子从s借助m移动到t
if n==1:
print(s,'-->',t) #将一个盘子从s移动到t
else:
hanno(n-1,s,t,m) #将前n-1个盘子从s移动到m上
print(s,'-->',t) #将最底下的最后一个盘子从s移动到t上
hanno(n-1,m,s,t) #将m上的n-1个盘子移动到t上
#主程序
n=int(input('请输入汉诺塔的层数:'))
hanno(n,'A','B','C')