专题02 算法与问题解决 复习资料-2024-2025学年高中信息技术一轮复习(浙教版)

资源下载
  1. 二一教育资源

专题02 算法与问题解决 复习资料-2024-2025学年高中信息技术一轮复习(浙教版)

资源简介

专题02 算法与问题解决
【学习目标】
理解算法的基本概念和重要性:学生应能够解释算法的定义,并认识到算法在解决问题中的作用。
掌握算法的特征与要素:学生需要了解算法的五个基本特征(有穷性、可行性、确定性、输入输出),以及算法的三个核心要素(数据、运算、控制转移)。
学习不同的算法描述方法:学生应熟悉自然语言、流程图、伪代码和计算机程序设计语言等不同方式描述算法,并能根据实际问题选择适当的描述方法。【思维导图】
【知识梳理】
知识点一:数据整理
(1)数据缺失:最简单(忽略缺失值);常见(平均值、中间值、概率统计值)
(2)数据重复:分析后合并或删除
(3)异常数据:可能是没用的噪声,也可能是重要数据。
(4)逻辑错误:属性值和实际值不符。
(5)数据格式不同:数据转换
知识点二:Excel
1.公式及函数
(1)公式必须以”=”开头
(2)公式及函数
SUM(a1,a2,…,an) 求和 AVERAGE(a1,a2,…,an) 求平均数
MIN(a1,a2,…,an) 求最小值 MAX(a1,a2,…,an) 求最大值
单元格引用
例:在E2单元格输入:=(C2-B2)/$A2+D$2,复制公式到G4单元格,公式变为:
=(E4-D4)/$A4+F$2
常见错误提示
【题型精讲】
例1 1
2.排序(升序、降序)
选择区域:①选全部列②如果关键字是列A列B等,不选标题③避开合并单元格
3.筛选
①文本筛选:通配符(?表示任意一个字符。*表示任意多个字符)、包含、结尾是、开头是
②数字筛选:大于、小于、介于、自动筛选前10个(10/9/11/……个最大/最小的值)
③筛选最大前三项,筛选出的记录可能超过3项,并列项也会筛选出来
④多条件筛选:选出女生中成绩最好的三个,需要筛选‘女生’,排序选前三个,顺序可反
4.图表
(1)数据标签:设置图表上对应的各系列数据是否显示数值
(2)选定数据区域解题方法
例2
用UltraEdit软件查看“2021高三加油!”的字符内码,部分界面如图所示。
①根据图2中的X轴,确定数据区域A6:A9
②根据图2的图例,确定数据区域C2:D2(如果图例是“系列1,系列2”,则不包括C2:D2)
③根据图2图表上对应的各系列的数据,确定数据区域C2:D9
④通过对称(高平齐、长对正)确定数据区域A2
⑤总区域为A2,A6:A9,C2:D2,C2:D9
(3)图表影响因素
图表会发生变化:①图表相关单元格数据发生变化②图表中的数据参加排序、筛选
图表不会发生变化:①修改单元格格式(特别是小数位数)
知识点三:大数据处理的基本思想和架构
分治思想:一个大问题分成多个小问题
静态数据:批处理计算
举例:3年内学生的高考成绩
Hadoop架构:
①HDFS:分布式文件系统
将大规模数据以文件的形式保存,适合部署在廉价的机器上。
应用:云盘、网盘的底层
②Hbase:分布式数据库
建立在HDFS建立的基础上,采用基于列的存储方式,是谷歌BigTable的开源实现
Hbase:分布式数据库
③MapReduce:分布式并行计算模型
流数据:流计算
举例:交通路况的实时更新
软件:Twitter
图数据:图计算
举例:社交网络、传染病的传播路径等
实时处理+批处理
软件:SummingBird
好处:缩短切换时间、减少系统开销、降低使用成本
知识点四:Pandas
1.常用模块
①Numpy模块:Python中做科学计算的基础库;
②Scipy模块:增强了在高等数学、信号处理、图像处理、统计等方面的处理能力;
③Pandas模块:主要用于数据的处理和分析。
2.导入:import pandas as pd
3.数据结构:Series(一维数组:一列索引一列值)
属性:index(索引)、values(值)
将178改成188:s2[‘s02’]=188或s2[1]=188
4.数据结构:DataFrame(二维数组:一列索引多列值)
(1)属性:index(索引)、values(值)、columns(列标题)
(2)获取数值
获取第二行数据:df1[1:2]
获取‘性别’列数据:df1[‘性别’]或df1.性别
获取’性别’列第二行的数据:df1.at[1,’性别’]或df1[‘性别’][1]
筛选性别为女的数据:df1[df1[‘性别’]==‘女’]
(3)函数:见函数表
知识点五:Matplotlib模块绘图
1.导入:import matplotlib.pyplot as plt
2.函数:见函数表
知识点六:文本数据处理
1.典型的文本处理过程主要包括分词、特征提取、数据分析、结果呈现等。
2.中文分词
方法:基于词典的分词(jieba)、基于统计的分词(上下文)、基于规则的分词(试验)。
3.特征提取
①特征词:在中文文本分析中可以采用字、词或短语作为表示文本的特征项。大多数中文文本分析中采用词作为特征项。
②特征提取目的:减少特征词的数量。
③方式:根据专家的知识挑选有价值的特征;用数学建模构造评估函数自动选取特征(大多)。
4.文本数据分析与应用
①标签云:用词频表现文本特征,以文字大小的形式代表词语的重要性。
②文本情感分析:主要运用于网络舆情监控、用户评论分析与决策、信息预测等。
知识点七:数据可视化
1.概念:指将数据以图形、图像等形式表示。
2.可视化的基本方法
有关时间趋势的可视化:采用柱形图、折线图等。
有关比例的可视化:采用饼图、环形图(也称面包圈图)等。
有关关系的可视化:探究具有关联性数据的分布关系,可以使用散点图、气泡图等。
有关差异的可视化:探寻包含多种变量的对象与同类之间的差异和联系,采用雷达图。
有关空间关系的可视化:运用不同颜色或图表直接在地图上进行展示。
【题型精讲】
例1
算法在计算机科学领域内指的是什么?
A) 用计算机进行数值计算的步骤
B) 用计算机解决非数值计算的数据处理
C) 人执行的算术运算
D) 社会生活中各种事务的处理步骤
【答案】B
【讲解】在计算机科学领域内,"算法"指的是用计算机解决问题的步骤,是为了解决问题而需要让计算机有序执行的、无歧义的、有限步骤的集合。这些需要解决的问题不仅包含了数值计算,还包含了非数值计算的数据处理。例如,在包含上万人信息的数据中查找某人的数据、导航程序中两个地点之间最短路线的规划等。
例2
解释算法的定义,并给出一个生活中的例子。
【答案】算法是一系列解决问题或完成任务的明确、有序的步骤。这些步骤必须是有限的,且在现实环境中可以实施并完成。例如,学校在校园入口处摆放的“高一新生报到流程”示意图就是一个算法,它帮助新生解决报到问题。
【讲解】算法自古有之,欧几里得在《几何原本》中提出的“辗转相除法”就是算法的一个早期例子,它可以用来求出任意两个正整数的最大公约数。该方法包括输入两个正整数、若第一个数小于第二个则交换值、用第一个数除以第二个数并取余数、若余数为0则输出第二个数作为最大公约数,否则继续执行特定步骤直至余数为0。
【强化训练】
1.欧几里得算法是用来做什么的?
A) 求解一元二次方程的实数根
B) 求两个正整数的最大公约数
C) 编写计算机程序
D) 设计学校课程表
2.关于算法的描述,以下哪项是正确的?
A) 所有算法必须使用自然语言描述
B) 流程图是描述算法的一种直观方式
C) 伪代码比计算机程序设计语言更接近计算机能理解的语言
D) 计算机程序设计语言是唯一能被计算机理解的语言
3.“辗转相除法”在计算两个正整数最大公约数时,如果余数为0会发生什么?
A) 输出较小数作为最大公约数
B) 继续执行直到余数不为0
C) 结束算法并输出任意一个数作为最大公约数
D) 交换两个数的值并重新计算
4.根据文档,下列哪个不是算法的特征?
A) 有穷性
B) 可行性
C) 不确定性
D) 输入和输出至少有一个
5.用自然语言描述一个简单的算法,例如如何煮意大利面。
6.使用C++或Python编程语言,编写一个程序来计算给定数字的平方根(假设输入的数字总是正数)。
参考答案
B
【详解】
欧几里得算法,也称为辗转相除法,是古代数学家欧几里得在《几何原本》中提出的,用于计算任意两个正整数的最大公约数。该方法通过连续整除和取余操作来找出两个数的最大公约数。
2.B
【详解】
流程图是一种使用图形符号表示规定操作并借助带箭头的流程线连接这些图形符号来表示操作进行方向的图表。它提供了一种直观的方式来描述算法的结构。3.C
【详解】
在使用辗转相除法求两个正整数m和n的最大公约数时,若余数r为0,则意味着当前的除数n即为两数的最大公约数,此时算法结束并输出n的值。
4.C
【详解】
根据文档内容,算法具有有穷性、可行性、确定性、0个或多个输入以及至少一个输出等特征。不确定性并不是算法的特征之一。
5.准备一锅水,加热至沸腾。
加入适量的盐和橄榄油。
将意大利面放入沸水中,根据包装上的指示时间煮熟(通常为7-10分钟)。
在煮面的同时,准备酱料。例如,可以炒蒜末、洋葱和番茄酱,加入一些香料如干罗勒、迷迭香等。
煮好的意大利面捞出,沥干水分。
将煮好的意大利面与酱料混合,搅拌均匀。
可选地,撒上一些新鲜的香菜或巴马干酪作为装饰。
享用美味的意大利面!
【详解】
这个问题要求提供一个具体的自然语言描述的算法,通常这类问题的答案会包括具体操作步骤的描述。
6.
import math
def calculate_square_root(number):
return math.sqrt(number)
# 示例
number = float(input("请输入一个正数: "))
if number < 0:
print("错误:请输入一个正数")
else:
result = calculate_square_root(number)
print(f"{number}的平方根是: {result}")
【详解】
大此题需要编写代码片段,通常这种问题的答案会包含函数定义、参数检查、数学运算和逻辑判断等编程元素。

展开更多......

收起↑

资源预览