课件编号20116813

5.4.2 查找算法的应用-教学设计(表格式)

日期:2024-05-20 科目:信息技术 类型:高中教案 查看:58次 大小:379521Byte 来源:二一课件通
预览图 1/4
5.4.2,查找,算法,应用,教学设计,格式
  • cover
教学设计 课程基本信息 课题 5.4 数 据 查 找 ———查找算法的应用 教学目标 1.通过查找应用回顾,引导学生能对给定的文件中的数据进行抽象并建立模型。 2.引导学生能合理选用数据结构,设计查找算法。 3.引导学生能用Python语言编写具体的查找程序。 4.引导学生能自觉对学习生活具体问题抽象建模、设计算法并编写程序及调试程序。 指向的核心素养 ●信息意识:学生能够结合实例对给定的文件中的数据进行抽象并建立模型,有意识地选择恰当的数据结构表达数据比较。 ●计算思维:能够从数据结构的视角审视基于数组、链表的程序,解释程序中数据的组织形式,描述数据的逻辑结构及其操作,评判其中数据结构运用的合理性;能够针对限定条件的实际问题进行数据抽象,运用数据结构合理组织、存储数据,选择合适的算法(查找、迭代等)编程实现、解决问题。 ●数字化学习与创新:要使学生较为熟练地运用查找解决生活中的真实问题,并在此过程中自主或协作探究;能够评估常见的数字化资源与工具对学习数据结构的价值,根据需要合理选择 ●信息社会责任:能够分析数据与社会各领域间的关系,自觉遵守相应的伦理道德和法律法规。 教学内容 教学重点: 1.二分查找的算法思想。 2.能熟练用自然语言、流程图与Python语言来描述查找排序。 教学难点: Python语言描述变式二分查找。 教学过程 情景引入 平时在Excel查找信息,并体验vip号码的excel查找 航空公司VIP会员积分查询部分数据(Excel数据) 抽象与建模 问题:从表中的数据可以看出,每个会员的信息是一条记录,包括VIP号、姓名、飞行里程、积分等数据项。 实践体验:Excel表格中,对记录快速查询会员积分,查找应当如何进行? 设计算法与数据结构 数据组织形式有两种: 方法一是采用4个一维数组按列存储,即每个数组分别存储每个用户的VIP号、姓名、飞行里程(KM) 、积分等,如定义a数组存储表中每个用户的VIP号,其对应的值为[“600214”,” 601278 ” ,” 600815 ” ,” 607854” , ” 605719” ……]; 定义b数组存储表中姓名; 定义c数组存储表中飞行里程(KM); 定义d数组存储表中积分信息。 方法二是采用1个一维数组按行存储,每个数组元素对应某个国家的一条记录信息,如a[1]为[600214,韩江辉,16801 ,519]对应第一条记录的相关信息。 数据查找算法有两种: 查找可采用顺序查找算法或二分查找算法, 对数据进行一次查找,采用顺序查找算法。 对数据重复查找,二分查找算法的效率高于顺序查找算法, 但二分查找提前:被查找的数据序列必须是有序,即在查找VIP号前要按VIP号为关键字进行排序。 (三)编写程序并调试 算法一:顺序查找 程序1: #数据读入 import csv #导入csv模块 csvFile = open("vip.csv", "r") #打开vip.csv数据文件 reader = csv.reader(csvFile) )#建立一个读入数据的对象reader a = [] #定义空列表a for item in reader: #每一行为a列表一个元素 a.append(item) #csv通过这种样式读入的数据为字符串 csvFile.close() #关闭vip.csv数据文件 for i in range(len(a)): #输出VIP表信息 print(a[i]) key=input('请输入要查询的VIP号:') #输入要查询的VIP号:key为字符串 #顺序查找 f=False #设置没查找标记 for i in range(1,len(a)): #查询范围不包含第一行数据 if a[i][0]==key: #逐一比较 m=i #记录找到了的位置 f=True #标记查找成功 break #结束查找 if f==True: #标记查找成功,输出信息 print(a[m][1],"先生/女士,',您的积分为:",a[m][3]) else: #查找不成功,输出信息 print('找不到VIP号对应的用户信息!') 程序2: #数据读入 import csv #导入csv模块 csvFile = open("vip.csv", "r") #打开vip.csv数据文件 reader = csv.reader(csvFile) #建立 ... ...

~~ 您好,已阅读到文档的结尾了 ~~