(
课件网) 授课人:XX 时间:2023.X.XXA. 计算机解决问题的过程 The process of computer problem-solving 第三章 算法基础 目 录 CONTENTS 01. 课前思考 02. 直面问题 03. 本节重难点 04. 课后作业 课前思考 计算机是如何解决问题的,和人工方式有哪些不同? 01 直面问题 02 假如我们从铁路公司、各航空公司和汽车客运公司网站得知,直达B市的交通工具只有火车和汽车两种,出发地有B1,B2 ,...,Bk市(没有A市),从A市出发到B1,B2 ,...,Bk市的交通工具有飞机、火车和汽车三种。 假设从A市到B市的中转城市只有B1,B2市,从A市经B1,B2 市到B市的交通情况如表3-2、3-3所示。求从A市到B市耗时最少的旅行路线。 设计从A市到B市耗时最少的旅行路线方案 问题背景 02 人工解决问题的过程 02 表3-2 从A市经B1市到B市的交通情况 表3-3 从A市经B2市到B市的交通情况 人工解决问题的过程 02 表3-2 从A市经B1市到B市的交通情况 从上表可知,从A市经B1市到B市的联运班次有7X9=63 (班) 人工解决问题的过程 02 表3-3 从A市经B2市到B市的交通情况 从上表可知,从A市经B2市到B市的联运班次有12x9=108 (班) 人工解决问题的过程 02 从以上两表可知从A市出发,经过别的市到达B市的路线合计为S=63+108=171 (班)。然后在171班次中找到能够中转且等待时间加上行驶时间最少的联运班次,如图3-5所示。 人工解决问题的过程 02 明确所要解决的问题 明确给出的条件 根据已有的经验和知识确定解决问题的方法 人工解决问题的过程 02 假如中转城市很多,交通班次也很多呢? 当数据量很大,人工处理效率很低时,我们可以借助计算机,通过编写计算机程序解决问题。 本节重难点 03 计算机解决问题的过程 13 当数据量很大,人工处理效率很低时,我们可以借助计算机,通过编写计算机程序解决问题。编写计算机程序解决问题要经过分析问题、设计算法、编写程序、调试运行程序等若干个步骤。 步骤: 计算机解决问题的过程 03 4.调试运行程序 3.编写程序 2.设计算法 1.分析问题 分析问题 03 需求情况 已知条件 找到从A市到Bi 市(1≤i≤k)能够中转且等待时间加上行驶时间最少的联运班次 找到从A市到B市耗时最少的旅行路线。 直达B市的交通工具只有火车和汽车两种,出发地有B1,B2 ,...,Bk市(没有A市),从A市出发到B1,B2 ,...,Bk市的交通工具有飞机、火车和汽车三种。 要解决的问题 分析问题 03 在从A市到B市耗时最少的旅行路线问题中,在不知道有多少个中转城市和每个城市有多少班车(或飞机)的情况下,我们可以利用大数据挖掘技术中的爬虫程序到铁路网站、各航空公司和汽车客运公司网站获取从A市经中转城市B1,B2 ,...,B 市 到达B市的交通班次信息,再经过数据清洗后,形成结构化的数据存储为Excel文件。 03 以A市到B1市,B1市到B市的数据为例 从A市到B1市 从B1市到B市 设计算法 03 给出解决问题的详细方法和步骤,这一过程叫设计算法 (1)分别找出能够中转且中转等待时间小于1小时的从A市经B1, B2 ,...,B 市到达B市的联运班次,并计算所用的时间。 (2)分别找到能够中转的从A市经B1, B2 ,...,B 市到达B市的联运班次中耗时最少的联运班次,共S条路线。 (3)取S条线路中耗时最少的联运班次为最佳旅行路线 有了清晰可操作的算法描述,就可以选择一种计算机语言工具来编写程序,实现算法。 一般来说,只要算法确定,对计算机程序设计语言的选择没有特别的限定,通常根据问题的特性和编程人员对语言的熟悉程度来选定编写程序。 编写程序 03 编写程序 03 调试运行程序 03 计算机只能识别程序设计语言中所规定的语法规则,如果编写程序时与规则不一致,哪怕是一个标点符号出错,也会因程序出错而中断运行。 ... ...