【公开课】第三章+算法基础高中信息技术粤教版(2019)必修1.pptx
必修一 数据与计算第一章第一章 数据与信息数据与信息项目范例:体验庆祝国庆多媒体作品的数据与信息处理项目范例:体验庆祝国庆多媒体作品的数据与信息处理第二章第二章 知识与数字化学习知识与数字化学习项目范例:运用数字化工具探究数理知识项目范例:运用数字化工具探究数理知识第三章第三章 算法基础算法基础项目范例:设计从项目范例:设计从A市到市到B市好事最少的旅行路线方案市好事最少的旅行路线方案第四章第四章 程序设计基础程序设计基础项目范例:设计购买纪念品的最佳方案项目范例:设计购买纪念品的最佳方案第五章第五章 数据处理和可视化表达数据处理和可视化表达项目范例:网络购物平台可数行为数据分析和可视化表达项目范例:网络购物平台可数行为数据分析和可视化表达第六章第六章 人工智能及其应用人工智能及其应用项目范例:剖析空调企业智能客服机器人项目范例:剖析空调企业智能客服机器人第三章 算法基础l数数据据在在信信息息社社会会中中具具有有重重要要价价值值,掌掌握握数数据据处处理理的的基基本本方方法法与与技技能能具具有有重重要要意意义义。随随着着数数据据的的快快速速增增长长,掌掌握握利利用用计计算算机机和和算算法法更更高高效地分析和解决海量数据问题的方法对人类社会发展具有重要作用。效地分析和解决海量数据问题的方法对人类社会发展具有重要作用。l本本章章将将通通过过“设设计计从从A A市市到到B B市市最最佳佳的的旅旅行行路路线线方方案案”项项目目,进进行行自自主主、协协作作、探探究究学学习习,让让同同学学们们体体验验计计算算机机解解决决问问题题的的过过程程,理理解解和和概概述述算算法法的的概概念念与与特特征征,学学会会运运用用恰恰当当的的描描述述方方法法和和控控制制结结构构表表示示简简单单算算法法,懂懂得得描描述述程程序序设设计计语语言言产产生生与与发发展展的的过过程程,了了解解不不同同种种类类程程序序设设计计语语言言的的特特点点,从从而而将将知知识识建建构构、技技能能培培养养与与思思维维发发展展融融入入运运用用数数字字化化工工具具解解决决问问题题和和完完成成任任务务的的过过程程中中,促促进进信信息息技技术术学学科科核心素养达成核心素养达成,完成项目学习目标。完成项目学习目标。项目范例:设计从A市到B市好事最少的旅行路线方案l情境情境 中国桥、中国路、中国车、中国港、中国网,一个个奇迹般的工程,让人民切切实实地感受到生活的便捷、美好和幸福。截至2017年10月,中国高速公路里程13.1万千米,位居世界第一,2020 年将达15万千米,高铁里程22万千米,位居世界第一(图3-11:城市轨道交通4153千米,位居世界第一-;光缆线路3041万千米,位居世界第一 世界前10的斜拉桥,中国占7座:世界前10的悬索桥,中国占6座:吞吐量世界前10的港口,中国占7席。当从A市到B市没有直达的交通工具时(不考虑水上交通工具),人们可以利用铁路公司、汽车客运公司和航空公司公布的信息,设计出耗时最少的旅行路线。l主题主题 设计从A市到B市耗时最少的旅行路线方案l规划规划 根据项目范例的主题,在小组中组织讨论,利用思维导图工具,制订项目范例的学习规划,如图3-2所示。l探究探究 根据项目学习规划的安排,通过调查、案例分析、文献阅读和网上资料搜索,开展。设计从A市到B市耗时最少的旅行路线方案”项目学习探究活动,如表3-1所示。对应章节对应章节探究活动探究活动学习内容学习内容知识技能知识技能3.1体验计算体验计算机解决问题的机解决问题的过程过程体验人工与计算机解决问题的过程设计从A市到B市耗时最少旅行路线的问题分析。人工解决问题的过程。体验计算机解决问题的建程。计算机解决问题的过程。3.2算法及其算法及其描述描述探究计算机解决问题的算法设计从A市到B市耗时最少旅行路线的算法。算法的概您与特征,理解和模述算法的概念与特征。运用恰当的提述方法和控制结构表示简单算法。算法的描述方法,3.3计算机程计算机程序与程序设计序与程序设计语言语言了解计算机解决问题的程序编写求解从A市列B市耗时最少的旅行路找网题的程序。计算机程序。描述程序设计语言产生与发展的过程。了解不同种类程序设计谓言的特点。程序设计语宫的产生与发展。l实施实施 实施项目学习各项探究活动,进一步设计耗时最少的旅行路线。l成果成果 在小组开展项目范例学习过程中,利用思维导图工具梳理小组成员在“头脑风暴”活动中的观点,建立观点结构图,运用多媒体创作工具(如演示文稿、在线编辑工具等),综合加工和表达,形成项目范例可视化学习成果,并通过各种分享平台发布,共享创造、分享快乐。例如,运用在线编辑工具制作的。设计从A市到B市耗时最少的旅行路线方案”可视化报告,可以在教科书的配套学习资源包中查看,其目录截图如图3-3所示。l评价评价 根据教科书附录2的“项目活动评价表”,对项目范例的学习过程和学习成果在小组或班级上进行交流,开展项目学习活动评价。l项目选题项目选题 同学们以3-6人组成一个小组,选择下面一个参考主题,或者自担一个感兴趣的主题,开展项目学习。1.设计从A市到B市交通费最少的旅行路线方案 2设计从A市到B市路程最短的旅行路线方案 3.设计从A市到B市交通费大约相同而耗时最少的旅行路线方案l项目规划项目规划 各小组根据项目选题,参照项目范例的样式,利用思维导图工具,制订相应的项目方案。l方案交流方案交流 各小组将完成的方案在全班进行展示交流,师生共同探讨、完善相应的项目方案。3.1体验计算机解决问题的过程 l在在现现实实生生活活中中,我我们们经经常常需需要要对对数数据据进进行行统统计计、分分析析。当当数数据据量量不不多多时时,我我们们可可以以采采用用人人工工方方法法来来处处理理:然然而而,当当数数据据量量变变多多时时,我我们运用计算机来解决问题将是一种更高效、更便捷的方法。们运用计算机来解决问题将是一种更高效、更便捷的方法。3.1.1人工解决问题的过程l采采样样人人工工方方法法解解决决问问题题,首首先先需需要要明明确确所所要要解解决决的的问问题题给给出出的的条条件件,然后再根据已有的经验和知识确定解决问题的方法,从而解决问题。然后再根据已有的经验和知识确定解决问题的方法,从而解决问题。l探究活动探究活动l思考思考 如何设计从A市到B市耗时最少的旅行路线方案呢?假如我们从铁路公司、各航空公司和汽车客运公司网站得知,直达B市的交通工具只有火车和汽车两种,出发地有B1,B2,Bk市(没有A市),从A市出发到B1,B2,Bk市的交通工具有飞机、火车和汽车三种,这样从A市经B1,B2,Bk市到B市的交通情况如右图所示。由于从A市到B1,B2,Bk市有不同的交通工具,每一种交通工具又有不同的班次,因此从A市出发到中转城市B1,B2,Bk市就有M1、M2,Mk种班次。同样,从中转城市B1,B2,Bk市到B市也有不同的交通工具,每一种交通工具有不同的班次,因此从中转城市B1,B2,Bk市到B市就有N1,N2,Nk种班次。于是从A市经B1,B2,Bk市到B市的交通班车(班机)数共有:S=M1N1+M2N2+MkNk 寻找从A市到B市耗时最少的旅行路线问题就转化为在S种联运班次中找到一种耗时最少的联运班次。这样就需要遍历每一个班次进行比较。若用人工方式找出能够中转且等待时间和行驶时间最少的班次,工作量将极其浩大!假设从A市到B市的中转城市只有B1、B2市,从A市经B1、B2市到B市的交通情况如表3-2和表3-3所示。从以上两表可知,从A市经B,市到B市的联运班次有79=63(班),从A市经B,市到B市的联运班次有129=108(班),合计为S=63+108=171(班)。然后在171班次中找到能够中转且等待时间加上行驶时间最少的联运班次,如图3-5所示。l分析分析 根据表3-2和表3-3给出的已知条件,可以采用以下的思路求解耗时最少的联运班次问题:(1))找出能够中转的从A市经B,市到达B市的联运班次,并计算所用的时间。(2)找到能够中转的从A市经B,市到达B市的联运班次中耗时最少的联运班次。(3)找出能够中转的从A市经B,市到达B市的联运班次,并计算所用的时间。(4)找到能够中转的从A市经B,市到达B市的联运班次中耗时最少的联运班次。(5)取两条线路中耗时最少的联运班次为最佳旅行路线。l上上述述问问题题中中,假假如如中中转转城城市市很很多多,交交通通班班次次也也很很多多,找找出出耗耗时时最最少少路线的工作量会非常大路线的工作量会非常大,若用人工穷举遍历若用人工穷举遍历,其效率就会很低。其效率就会很低。3.1.2计算机解决问题的一般过程l当当数数据据量量很很大大,人人工工处处理理效效率率很很低低时时,我我们们可可以以借借助助计计算算机机,通通过过编编写写计计算算机机程程序序解解决决问问题题。编编写写计计算算机机程程序序解解决决问问题题要要经经过过分分析析问问题。设计算法,编写程序、调试运行程序等若干个步骤。题。设计算法,编写程序、调试运行程序等若干个步骤。l1.1.分析问题分析问题l在在利利用用计计算算机机解解决决问问题题之之前前,我我们们首首先先要要分分析析问题的需求情况、已知条件和需要解决的问题。问题的需求情况、已知条件和需要解决的问题。l例例如如,在在从从A A市市到到B B市市耗耗时时最最少少的的旅旅行行路路线线问问题题中中,在在不不知知道道有有多多少少个个中中转转城城市市和和每每个个城城市市有有多多少少班班车车(或或飞飞机机)的的情情况况下下,我我们们可可以以利利用用大大数数据据挖挖掘掘技技术术中中的的爬爬虫虫程程序序(参参见见配配套套学学习习资资源源包包“第第三三章章课课本本素素林林程程序序3-1”)3-1”)到到铁铁路路网网站站、各各航航空空公公司司和和汽汽车车客客运运公公司司网网站站获获取取从从A A市市经经中中转转城城市市B B1 1,B B2 2,B B3 3市市到到达达B B市市的的交交通通班班次次信信息息,再再经经过过数数据据请请洗洗后后,形形成成结结构构化化的的数数据据存存储储为为ExcelExcel文文件件(部部分分截截图图如如图图3.63.6所所示示,详详细细文文件件可可参参见见配配套套学学习习资资源源包包“第第三三章章课本素彬课本素彬ExelExel文件夹文件夹)。l2.2.设计算法设计算法l问问题题分分析析清清楚楚后后,需需要要给给出出解解决决问问题题的的详详细细方方法法和和步步骤骤,这这一一过过程程称称为为设计算法。设计算法。l例例如如,对对于于从从A A市市到到B B市市耗耗时时最最少少的的旅旅行行路路线线问问题题,根根据据获获取取的的从从A A市市到到B B市市的的中中转转城城市市B B1 1,B B2 2,B Bk k的的班班次次,以以及及各各城城市市各各交交通通班班次次的的发发车车时时间间和和行行驶驶时时间间等等信信息息,采采用用以以下下的的思思路路找找出出耗耗时时最最少少的的联联运运班班次次问问题题:l(1)(1)分分别别找找出出能能够够中中转转的的从从A A市市经经B B1 1,B B2 2,B Bk k市市到到达达B B市市的的联联运运班班次次,并计算所用的时间。并计算所用的时间。l(2)(2)分分别别找找到到能能够够中中转转的的从从A A市市经经B B1 1,B B2 2,B Bk k到到达达B B市市的的联联运运班班次次中中耗时最少的联运班次,共耗时最少的联运班次,共k k条线路。条线路。l(3)(3)取取k k条线路中耗时最少的联运班次为最佳旅行路线。条线路中耗时最少的联运班次为最佳旅行路线。l3.3.编写程序编写程序l有有了了清清晰晰可可操操作作的的算算法法描描述述,就就可可以以选选择择t t种种计计算算机机语语言言工工具具来来编编写写程程序序,实实现现算算法法。一一般般来来说说,只只要要算算法法确确定定,对对计计算算机机程程序序设设计计语语言言的的选选择择没没有有特特别别的的限限定定,通通常常根根据据问问题题的的特特性性和和编编程程人人员员对对语语言的熟悉程度来选定编写程序。言的熟悉程度来选定编写程序。l例例如如,用用PyhonPyhon语语言言编编写写从从A A市市到到B B市市耗耗时时最最少少的的旅旅行行路路线线问问题题的的算算法法的的程程序序可可参参见见配配套套学学习习资资源源包包“第第三三章章课课本本素素林林程程序序3-1”3-1”。其其中中,找找出出能能够够从从入入市市经经B B(i=1,(i=1,2,2,,k)k)市市到到达达B B市市的的中中转转联联运运班班次次,并并计计算算所所用用的的时时间间以以及及找找到到耗耗时时最最少少的的联联运运路路线线的的关键程序段如下。关键程序段如下。l4.4.调试运行程序调试运行程序l程程序序编编写写完完成成以以后后,再再通通过过键键盘盘把把程程序序输输人人计计算算机机中中运运行行,检检查查程程序序能能否否按按预预想想的的效效果果执执行行,这这一一过过程程称称为为程程序序的的调调试试运运行行。计计算算机机只只能能识识别别程程序序设设计计语语言言中中所所规规定定的的语语法法规规则则,如如果果编编写写程程序序时时与与规规则则不不一一致致,哪哪怕怕是是一一个个标标点点符符 号号出出错错,也也会会因因程程序序出出错错而而中中断断运运行行。此此时时,我我们们可可以以根根据据计计算算机机提提示示的的出出错错信信息息修修改改程程序序,重重新新调调试试运运行行。由由于于PythonPython是是解释程序,因此它的调试是在运行过程中逐行进行的。解释程序,因此它的调试是在运行过程中逐行进行的。l当当程程序序能能够够顺顺利利运运行行以以后后,我我们们还还需需要要对对程程序序运运行行的的结结果果进进行行检检查查。因因为为如如果果程程序序语语句句符符合合语语法法规规则则,而而程程序序中中却却有有逻逻辑辑或或计计算算方方法法等等错错误误,计计算算机机是是检检查查不不出出来来的的。因因此此,如如果果结结果果不不合合理理,还还要要对对程程序序甚甚至至算算法法进行修改,直到程序的功能符合设计要求为止。进行修改,直到程序的功能符合设计要求为止。l实践实践 打开配套学习资源包“第三章课本素材程序3-1”,调试并运行程序3-1,找出从A市到B市耗时最少的旅行路线问题的结果,如图3-7所示。l项目实施项目实施 各小组根据项目选题及拟订的项目方案,结合本节所学知识,体验计算机解决问题的过程。1.体验运用计算机解决问题经历的问题描述、数据抽象和结构分析、模型建立、算法设计、程序编写、程序调试和测试验证等过程。2.总结归纳运用计算机解决问题的方法和步骤。3.2 算法及其描述3.2.1算法l1.1.算法算法l算算法法是是指指在在有有限限步步骤骤内内求求解解某某一一问问题题所所使使用用的的一一组组定定义义明明确确的的规规则则。通通俗俗地地说说,算算法法就就是是用用计计算算机机求求解解某某一一问问题题的的方方法法,是是能能被被机机械械地地执行的动作或指令的有穷集合。执行的动作或指令的有穷集合。l探究活动探究活动l观察观察 若要求方程6x+5y+4=50的正整数解的个数t,则解决问题的算法步骤如下:t=0;x=1;y=1;z=1;如果满足式子6x+5y+42=50,则解的个数加t(即t=t+1,表示右边式子的值赋值給左边式子),并输出这个解(即输出t,x,y,z的值);z=z+1;如果z12则转步骤,否则继续步骤;Y=y+1;如果y10则转步骤,否则继续步骤;x=x+1;如果x8则转步骤,否则继续步骤;结束。l2.2.算法的特征算法的特征l算法作为能确实解决某个问题的策略,具有五个方面的重要特征算法作为能确实解决某个问题的策略,具有五个方面的重要特征:l(1)(1)有穷性。有穷性。一个算法在执行有穷步之后必须结束,即一 个算法所包含的计算步骤是有限的。例如,在上面的算法中,x的值从1开始穷举,重复执行语句,直到8时终止执行。l(2)(2)确定性。确定性。算法执行的每一个步骤必须有确切的定义,不能出现模棱两可的情况。例如,上面算法步骤就明确规定:当满足式于6+5y+4-50时,则解的个数加1(即1=1+1),并输出这个解。l(3)(3)数据输人。数据输人。一个算法必须有零个或多个数据输人,以刻画运算对象的初始情况。例如,在上面的算法中,就没有数据输人。l(4)(4)数据输出。数据输出。一个算法有一个或多个数据输出,以反映对输人数据加工后的结果,没有输出的算法是毫无意义的。例如,在上面的算法中,有两个输出,即步骤的个数和具体解(x,y,z的值)。l(5)(5)可行性。可行性。算法中执行的任何计算步骤都可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成。例如,上面的算法中每一步都是可以在有限时间内完成的。l3.2.23.2.2算法的描述算法的描述l算法是对解题过程的精确描述,且需要使用某种方法将其表示出来。算法是对解题过程的精确描述,且需要使用某种方法将其表示出来。l1.1.描述算法的常用方法描述算法的常用方法 描述算法的常用方法有自然语言描述算法、流程图描述算法和伪代码描述算法。l(1)(1)用自然语言描述算法。用自然语言描述算法。用自然语言描述算法,就是用人们日常所用的语言,如汉语、英语等来描述算法。例如,从A市到B市耗时最少的旅行路线问题的算法描述,即使用了自然语言。使用自然语言描述算法比较容易掌握,但也存在明显的缺点。例如,当算法中含有多分支或循环操作较多时,使用自然语言很难将其清晰地表示出来:并且由于自然语言的歧义性,也容易导致算法执行的不确定性。l(2)(2)用流程图描述算法。用流程图描述算法。用流程图描述算法是用程序枢图来描述算法的一种表示方法。使用流程图描述算法。可使算法的流程描述得清晰、简洁。流程图的基本图形及其功能如表3-4所示。例如,用流程图描述求 方 程 6x+5y+4z=50的正整数解的算法,如图3-8所示。l(3(3)用伪代码描述算法。)用伪代码描述算法。l用用伪伪代代码码描描述述算算法法就就是是用用介介于于自自然然语语言言和和计计算算机机语语言言之之间间的的文文字字和和符符号号来来描描述述算算法法。它它不不用用图图形形符符号号,书书写写方方便便,格格式式紧紧凑凑,易易于于理理解解,便便于于向向计计算算机程序设计语言过渡。机程序设计语言过渡。例如,用伪代码描述求解方程6x+5y+4z=50的算法如下:l交流交流 各小组交流三种算法描述方法的优势和不足,并完成表3-5。l实践实践 在几何原本一书中,欧几里得阐述了关于求两个正整数的最大公约数的过程,这就是著名的欧几里得算法辗转相除法,其具体过程如下:设给定的两个正整数为m和n,求它们的最大公约数的步骤为:以m除以n,令所得的余数为R。若R=0,则输出结果n,算法结束;否则,继续步骤。令m=n,n=R,并返回步骤继续进行。用流程图将上述算法表示出来,试探索欧几里得算法在现实生活中有哪些应用,举出两个应用实例。l2.2.三种基本控制结构三种基本控制结构l前前面面的的算算法法描描述述中中,我我们们用用到到r r顺顺序序结结构构、选选择择结结构构和和循循环环结结构构这这三三种种基基本本控控制制结结构构(其其流流程程图图如如图图3.3.-9-9所所示示),而而任任何何复复杂杂的的算算法法都可以用这三种基本控制结构组合来表示。都可以用这三种基本控制结构组合来表示。l这三种基本控制结构的主要作用是这三种基本控制结构的主要作用是:(1)顺序结构表示程序中的各步操作按出现的先后顺序执行。(2)选择结构表示程序的处理步骤出现了分支,需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种。(3)循环结构表示程序反复执行某个或某些操作,直到判断条件为假(或为真)时才可终止循环。l使使用用三三种种基基本本控控制制结结构构的的组组合合来来描描述述算算法法,可可以以改改善善算算法法的的清清晰晰度度,提高算法的可读性提高算法的可读性,原因如下原因如下:(1)以控制结构为单位,只有一个入口和一个出口,各单位之间接口简单,比较容易独立地理解每一单位。(2)缩小了算法的静态描述与动态执行过程之间的差异,使得两者容易对应,易于理解。l项目实施项目实施 各小组根据项目选题及拟订的项目方案,结合本节所学知识,开展以下活动。1完成相应问题的算法设计及其描述。2.总结归纳所采用的方法和步骤。3.3计算机程序与程序设计语言l目目前前,我我们们已已对对计计算算机机解解决决问问题题的的基基本本过过程程和和算算法法有有了了一一定定的的了了解解。通通过过对对本本节节任任务务的的探探究究学学习习,我我们们将将更更深深切切体体会会计计算算机机程程序序在在解解决决问题过程中的重要作用。问题过程中的重要作用。l探究活动探究活动l思考思考 在完成问题分析和算法设计两个环节之后,接下来就要开始编写计算机程序对数据进行统计分析,进而形成解决问题的方案。各小组交流什么是计算机程序语言。1.围绕交流的问题展开“头脑风暴”活动,确定认识计算机程序需要解决的问题和知识,具体可参考表3-6。2表3-6中所要解决的每一个问题都可以制作成各类相关图表,如思维导图、概念图或者时间线表等。参考表3-7,思考其他问题的列表形式。3.3.1 计算机程序l计计算算机机程程序序是是指指为为了了得得到到某某种种结结果果而而可可以以由由计计算算机机等等具具有有信信息息处处理理能能力力的的装装置置执执行行的的代代码码化化指指令令序序列列,或或者者可可被被自自动动转转换换成成代代码码化化指指令令序序列列的的符符号号化化指指令令序序列列或或者者符符号号化化语语句句序序列列。简简而而言言之之,计计算算机机程序就是指计算机可以识别运行的指令集合。程序就是指计算机可以识别运行的指令集合。l常常用用的的计计算算机机主主要要包包括括运运算算器器、控控制制器器、存存储储器器、输输人人设设备备和和输输出出设设备备五五大大基基本本部部件件。计计算算机机内内部部采采用用二二进进制制形形式式表表示示和和存存储储指指令令或或数数据据,把把解解决决问问题题的的程程序序和和需需要要加加工工处处理理的的原原始始数数据据事事先先转转换换成成二二进进制制数数,并并存存人人存存储储器器中中。计计算算机机的的工工作作过过程程实实际际上上是是周周而而复复始始地地获获取取指指令令、执执行行指指令令的的过过程程,如如图图3-3-1010所示。所示。3.3.2 计算机程序设计语言l在在用用计计算算机机解解决决问问题题时时,用用自自然然语语言言、流流程程图图或或是是伪伪代代码码所所描描述述的的解解决决问问题题的的算算法法都都不不能能被被计计算算机机直直接接执执行行,还还必必须须将将算算法法按按照照定定 的的规规则则编编写写成成计计算算机机能能够够识识别别和和运运行行的的程程序序。而而人人们们编编写写程程序序时时需需要要遵遵循循的的规规则则就就是是计计算算机机语语言言规规则则。计计算算机机程程序序设设计计语语言言,是是指指一一组组用用来来定定义义计计算算机机程程序序的的语语法法规规则则,通通常常简简称称为为“编编程程语语言言”。它它是是一一-种种被被标标准准化化的的交交流流技技巧巧,用用于于向向计计算算机机发发出出指指令令。正正确确地地使使用用计计算算机机程程序序设设计计语语言言,能能让让程程序序员员准准确确地地定定义义计计算算机机所所需需要要使使用用的数据,并精确地定义在不同情况下所应执行的命令。的数据,并精确地定义在不同情况下所应执行的命令。l计计算算机机程程序序设设计计语语言言的的发发展展,经经历历了了从从机机器器语语言言、汇汇编编语语言言到到高高级级语言的发展历程。语言的发展历程。l1.1.机器语言机器语言l目目前前,计计算算机机采采用用的的物物理理器器件件主主要要是是电电子子元元件件,但但由由于于电电子子元元件件的的物物理理特特性性,计计算算机机只只能能识识别别“0”0”和和“1”1”组组成成的的二二进进制制数数。因因此此,二二进进制制是是计计算算机机语语言言的的基基础础。计计算算机机发发明明之之初初,人人们们只只能能使使用用计计算算机机的的基基础础语语言言(图图3-11)3-11)。因因此此,早早期期的的程程序序设设计计语语言言是是由由“0”0”和和“1”1”所所表表示示的的二二进进制制代代码码指指令令组组表表示示的的。这这样样的的语语言言是是计计算算机机能能直直接接接接收收和和执执行行的的,通通常常被称为被称为“机器语言机器语言”。机器语言是第一代计算机语言。机器语言是第一代计算机语言。l不不同同计计算算机机的的机机器器指指令令系系统统会会有有所所不不同同,但但每每一一条条机机器器指指令令都都包包含含两两个个 主主要要部部分分:操操作作(指指出出计计算算机机应应做做什什么么)和和被被操操作作的的对对象象(指指出出处处理理的的数数据据或或它它的的地地址址)。在在这这些些指指令令的的控控制制下下,计计算算机机可可以以实实现现最最基基本本的的算算术术运运算算和和逻逻辑辑运运算算。例例如如,表表3-3-8 8是是用用Intel Intel 8038680386完完成成“9+8”9+8”加法运算的机器指令。加法运算的机器指令。l早早期期人人们们与与计计算算机机的的通通信信都都是是通通过过机机器器语语言言编编写写的的程程序序完完成成的的,程程序序中中的的所所有有语语句句都都被被分分解解成成一一系系列列由由0 0和和1 1组组成成的的代代码码记记录录在在穿穿孔孔带带上上,如如图图3-123-12所示。所示。l这这种种机机器器语语言言所所编编写写的的程程序序难难以以被被理理解解,程程序序设设计计任任务务也也非非常常繁繁重重,而而且且在在程程序序出出现现错错误误需需要要修修改改时时,效效率率更更是是低低下下。除除此此之之外外,由由于于每每台台计计算算机机的的指指令令系系统统往往往往各各不不相相同同,所所以以在在一一台台计计算算机机上上执执行行的的程程序序,如如果果想想要要在在另另一一台台计计算算机机上上执执行行,就就必必须须另另编编程程序序,这这就就造造成成了了重重复复工工作作。由由此此可可见见,机机器器语语言言与与人人类类的的自自然然语语言言之之间间存存在在着着巨巨大大的的鸿鸿沟沟。但但由由于于使使用用的的是是针针对对特特定定型型号号计计算算机机的的语语言言,因因此此运运算算效效率率也也是是所所有有语语言言中中最最高的。高的。l2.2.汇编语言汇编语言l为为了了让让使使用用机机器器语语言言编编写写的的程程序序更更容容易易被被理理解解,人人们们使使用用了了一一种种类类似似英英文文缩缩略略词词且且带带有有助助记记性性符符号号的的语语言言,来来替替代代-个个特特定定的的指指令令二二进进制制串串,每每条条指指令令都都和和-条条机机器器指指令令相相对对应应,只只是是指指令令码码和和操操作作数数都都采采用用符符号号形形式式,这这种种程程序序设设计计语语言言就就被被称称为为汇汇编编语语言言,即即第第二二代代计计算算机机语语言言。例例如如,指指令令码码用用ADDADD代代表表加加法法,用用“MOVMOV代代表表数数据据传传递递等等。这这样样一一来来,人人们们就就会会比比较较容容易易读读懂懂并并理理解解程程序序,纠纠错错及及维维护护也也会会变变得得更更加加方方便便了了。例例如如,表表3-93-9列出了用汇编语言来实现列出了用汇编语言来实现“9+8”9+8”加法运算的有关指令。加法运算的有关指令。l但但是是,计计算算机机是是不不能能直直接接认认识识这这些些符符号号的的,计计算算机机还还需需要要个个 专专门门的的语语言言翻翻译译器器,负负责责将将程程序序中中的的每每条条语语句句都都翻翻译译成成用用二二进进制制数数表表示示的的机机器器语言语言(图图3-13)3-13)。l汇汇编编语语言言同同样样与与特特定定的的机机器器及及特特定定的的微微处处理理器器相相关关,这这也也导导致致了了汇汇编编语语言言的的移移植植性性不不好好。这这一一点点与与机机器器语语言言相相比比差差异异不不大大,然然而而汇汇编编语语言言程程序序的的效效率率仍仍然然很很高高。针针对对计计算算机机特特定定硬硬件件而而编编制制的的汇汇编编语语言言程程序序,能能准准确确发发挥挥计计算算机机硬硬件件的的功功能能和和特特长长,其其编编写写的的程程序序不不仅仅精精练练、质质量量高高,而而且且易于理解,所以至今在一此领域仍是易于理解,所以至今在一此领域仍是-种常用而强有力的软件开发工具。种常用而强有力的软件开发工具。l3.3.高级语言高级语言l人人们们在在使使用用机机器器语语言言和和汇汇编编语语言言这这两两种种语语言言与与计计算算机机交交流流的的过过程程中中,依依然然存存在在很很大大的的障障碍碍,而而且且对对于于程程序序的的理理解解和和调调试试仍仍然然十十分分困困难难。于于是是,高高级级语语言言应应运运而而生生。高高级级语语育育接接近近于于数数学学语语言言和和人人的的自自然然语语言言,并并且且不不再再过过度度地地依依赖赖某某种种特特定定的的机机器器或或环环境境。第第一一种种高高级级语语言言是是FortranFortran语语言言,它它主主要要用用于于科科学学和和工工程程计计算算。在在FortranFortran语语言言之之后后,出出现现了了许许多多高高级级语语言言,如如ALCOLALCOL、COBOLCOBOL、BasicBasic、LISP.LISP.SNOBOLSNOBOL、PascalPascal、C C、PROLOGPROLOG、AdaAda、VCVC、VBVB、DelphiDelphi、JavaJava、PythonPython等等。例例如如,在在计计算算“9+8”9+8”的的问问题题时时,若若使使用用高高级级语语言言Python,Python,则则只只需需要语句要语句“rin(19+8)rin(19+8)就能完成,既简单又易于理解。就能完成,既简单又易于理解。l用用高高级级语语 言言编编写写的的程程序序也也不不能能直直接接被被计计算算机机所所识识别别和和执执行行,必必须须经经过过编编译译程程序序或或解解释释程程序序将将其其翻翻译译成成机机器器语语言言(图图3-14)3-14)。所所谓谓编编译译程程序序是是指指计计算算机机把把高高级级语语言言程程序序的的每每一一条条语语句句都都编编译译成成机机器器语语言言,并并保保存存成成二二进进制制文文件件后后才才运运行行的的程程序序。解解释释程程序序是是指指计计算算机机在在执执行行高高级级语语言言程程序序时时,逐逐条条语语句句解解释释成成机机器器语语言言并并立即执行的程序。立即执行的程序。l由由于于高高级级语语言言抽抽象象度度高高,源源代代码码无无须须与与硬硬件件、系系统统底底层层操操作作对对应应,所所以以移移植植性性非非常常好好,理理想想的的情情况况下下甚甚至至不不必必为为不不同同的的系系统统平平台台或或者者机机器器改改动动源代码。源代码。l高高级级语语言言的的出出现现为为计计算算机机的的应应用用开开辟辟了了广广阔阔的的前前景景,它它的的发发展展也也经经历历了了从从早早期期语语言言到到结结构构化化程程序序设设计计语语言言、从从面面向向过过程程到到非非过过程程化化程程序序设设计计语语言言的的过过程程。所所谓谓非非过过程程化化程程序序设设计计语语言言,就就是是面面向向应应用用,即即只只需需要要告告诉诉程程序序要要干干什什么么,程程序序就就能能自自动动生生成成算算法法,自自动动进进行行处处理理,这这是是高高级级语语言言的下一一个发展目标,的下一一个发展目标,将给人们解决问题带来更大的便利。将给人们解决问题带来更大的便利。l交流交流 以小组为单位开展交流活动,试用自己的语言表述程序与程序设计语言之间的关系。l讨论讨论 1.一个高质量的程序应具备哪些条件?2.学习了本节的有关内容后,我们是否能够用生活中熟悉的事物来形容或比喻程序及其功能?3.高级语言的翻译程序有两种类型:编译程序和解释程序。试通过网络检索相关知识,比较编译型语言和解释型语言的优势和不足,并填写在表3-10中。4高级语言的编译过程和解释过程是不同的,请通过查阅相关资料,将两个不同的执行过程用图表形式呈现出来,完成图3-15。5以程序设计语言的发展过程为主题,预测程序设计语言将来的发展趋势,就其便捷性及其功能等方面,大胆展望未来程序设计语言的特点,自拟调查提纲,写一篇调查报告。l拓展:自动计算思想发展回顾拓展:自动计算思想发展回顾 一般而言,计算与自动计算要解决以下四个问题:数据的表示;数据的存储及自动存储;3计算规则表示;计算规则的执行及自动执行。算盘是一种计算工具,算盘上的珠子可以表示和存储数,计算规则是一套口诀,按照口诀拨动珠子可以进行四则运算。然而所有的操作都要靠人的大脑和手完成,因此算盘被认为是一种计算辅助工具,不能被归入自动计算工具范畴。1642年,法国科学家帕斯卡发明了著名的帕斯卡机械计算机,首次确立了计算机器的概念。该机器用齿轮来表示和存储十进各数位上的数字,通过齿轮比来解决进位问题。低位上的齿轮每转动10圈,高位上的齿轮只转动1圈。机器可自动执行一些计算规则,“数”在计算过程中自动存储。帕斯卡机的意义是让人们认识到“用纯机械装置可代替人的思维和记忆”,开辟了自动计算的道路。如图3-16所示是一台手摇计算器。1674年,莱布尼茨提出了“二进制”数的概念。1847年,英国的数学家布尔发表著作逻辑的数学分析和思维规律的研究逻辑与概率的数学理论基础,创立了一门全新的学科布尔代数,为百年后出现的数字计算机的开关电路设计提供了重要的数学方法和理论基础。1938年,香农发表了著名的论文继电器和开关电路的符号分析,首次用布尔代数进行开关电路分析,并证明布尔代数的逻辑运算可以通过继电器电路来实现,明确地给出了实现加、减、乘、除等运算的电子电路的设计方法。这篇论文成为开关电路理论的开端。1936年,阿兰图灵提出了抽象计算模型“图灵机”。一切可计算的函数都可用图灵机计算,反之亦然。1940年,“控制论之父”维纳提出了计算机五原则:不是模拟式,而是数字式;由电子元件构成,尽量减少机械部件;采用二进制,而不是十进制;内部存放计算表,计算控制规则;在计算机内部存储数据。1945年,美国宾夕法尼亚大学“莫尔小组”汲取前人关于计算机的结构、存储程序和二进制编码等研究思想,设计制造了世界上的一台早期计算机ENIAC(图3-17)。ENIAC是可编程的通用计算机,可以解决不同的问题。l项目实施项目实施 各小组根据项目选题及拟订的项目方案,结合本节所学知识,安装相应的计算机程序语言软件,了解计算机程序设计语言的特点,进一步完善该项目方案中的各项学习活动,并参照项目范例的样式,撰写相应的项目成果报告。l成果交流成果交流 各小组运用数字化学习工具,将所完成的项目成果,在小组或班级上进行展示与交流,共享创造、分享快乐。l活动评价活动评价 各小组根据项目选题、拟订的项目方案、实施情况以及所形成的项目成果,利用教科书附录2的“项目活动评价表”,开展项目学习活动评价。本章扼要回顾l同同学学们们通通过过本本章章学学习习,根根据据“算算法法基基础础”知知识识结结构构图图,扼扼要要回回顾顾、总结、归纳学过的内容,建立自己的知识结构体系。总结、归纳学过的内容,建立自己的知识结构体系。本章学业评价同学们完成下列测试题(更多的测试题可以在教科书的配套学习资源包中查看),并通过“本章扼要回顾”以及本章的项目活动评价,综合评价自己在信息技术知识与技能、解决实际问题的过程与方法,以及相关情感态度与价值观的形成等方面,是否达到了本章的学习目标。l1.1.单选题单选题l(1)(1)人人们们利利用用计计算算机机解解决决问问题题的的基基本本过过程程为为()调调试试运运行行程程序序分析问题分析问题设计算法设计算法问题解决问题解决编写程序编写程序 A.B.C.D.l(2)(2)下面关于算法的描述,正确的是下面关于算法的描述,正确的是()()。A.算法不可以用自然语言描述 B.算法只能用流程图来描述 C.一个算法必须保证它的执行步骤是有限的 D.算法的流程图表示法