资源简介 第3章 算法基础 信息技术 必修1 1、计算机解决问题的过程 2、算法的概念 3、算法的描述方法 4、计算机的组成部件 5、计算机工作原理 6、计算机程序的概念 7、计算机程序设计语言的种类 8、计算机程序的执行过程 本章主要内容 第3章 算法基础 本章学习知识地图 第3章 算法基础 数据在信息社会中具有重要价值,掌握数据处理的基本方法与技能具有重要意义。随着数据的快速增长,人工方式处理海量数据的效率正变得低下,因此掌握利用计算机和算法更高效地分析和解决问题的方法在计算机科学界的作用日益凸显。 本章节同学们将体验计算机解决问题的过程,理解和概述算法的概念与特征,学会运用恰当的描述方法和控制结构表示简单算法,懂得描述程序设计语言产生与发展的过程,了解不同种类程序设计语言的特点,从而将知识建构、技能培养与思维发展融入运用数字化工具解决问题和完成任务的过程中,促进信息技术学科核心素养达成,完成项目学习目标。 前言 第3章 算法基础 3.1 体验计算机解决问题的过程 第3章 算法基础 每天三分钟 信考更轻松 【了解】人工解决问题的过程 人工方法来解决问题,首先需要明确所要解决的问题和给出的条件,然后再根据已有的经验和知识确定解决问题的方法,从而解决问题。 “韩信点兵”问题:“相传汉高祖刘邦问大将军韩信统御兵士多少,韩信答说,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人、17人一列余8……。刘邦茫然而不知其数。” 3.1.1 人工解决问题的过程 第3章 算法基础\体验计算机解决问题的过程 采用人工解决这个问题的过程如下: (1)提出问题。 “韩信点兵”问题:求整除3余1、整除5余2、整除7余4的最小自然数。 (2)分析问题:找出已知和未知、列出已知和未知之间的关系。利用已学过的数学知识找出题目已知什么求什么、明确已知和未知之间的关系和写出求解问题的解题步骤。 (3)得出答案,问题得到解决。经过对问题的分析,建立了数学模型,确定了应该做什么,接着就应该解决怎么做的问题了,即寻找求解的方法和确定具体的求解步骤。 3.1.1 人工解决问题的过程 第3章 算法基础\体验计算机解决问题的过程 不足之处:数据量较大的时候,效率就急速降低。 3.1.1 人工解决问题的过程 分析问题(找出已知和未知、列出已知和未知之间的关系) 写出解题步骤 ???设所求的数为X,则X应满足: X整除3余1 X整除5余2 X整除7余4 1、令X为1。 2、如果X整除3余1,X整除5余2,X整除7余4,这就是题目要求的数,则记下这个X。 3、令X为X+1(为算下一个作准备)。 4、如果算出,则结束;否则跳转2。 5、写出答案。 第3章 算法基础\体验计算机解决问题的过程 【了解】计算机程序解决问题的基本过程 计算机程序解决问题要经过分析问题、设计算法、编写程序、调试运行程序等若干个步骤。 【理解】计算机程序解决问题的步骤 分析问题(需求分析):确定要解决的问题,即要求计算机“做什么”。 设计算法(设计方法):对特定的问题给出解决这个问题的详细方法和步骤。 编写程序(编写代码):把人们设计的算法转换成计算机能够识别的代码来编写程序,实现算法。 调试运行程序:程序设计好以后,通过键盘输入计算机中运行,看程序能否按预想的执行。 程序能顺利完成以后,还需要对程序功能进行分析和检查。 3.1.2 计算机解决问题的过程 第3章 算法基础\体验计算机解决问题的过程 用计算机解决问题 (1)提出问题。“韩信点兵”问题:求整除3余1、整除5余2、整除7余4、整除13余6、整除17余8的最小自然数。 (2)分析问题。设总人数为n,则当三人一排时有 n%3 == a, 当五人一排时有 n%5 == b,当七人一排时有 n%7 == c,因此求出同时满足上述三个条件的n即可。 (3)设计算法。输入包含多组数据,每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100。输入到文件结束为止。 (4)编写程序。用Python语言编写的韩信点兵程序 3.1.2 计算机解决问题的过程 第3章 算法基础\体验计算机解决问题的过程 (5)调试运行程序,得到结果。程序编好以后,通过键盘输入计算机,并运行程序查看结果这个过程叫调试程序。 3.1.2 计算机解决问题的过程 第3章 算法基础\体验计算机解决问题的过程 【了解】两种解决问题过程的对比。 3.1.2 计算机解决问题的过程 第3章 算法基础\体验计算机解决问题的过程 类别 优点 缺点 人工方法处理过程 实现简单、适合数据量小 效率低、容易出错 计算机处理过程 运算速度快、精度高、适合数据量大 实现复杂 3.2 算法及其描述 第3章 算法基础 每天三分钟 信考更轻松 【了解】算法的概念 算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地说,算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。 3.2.1 算法 第3章 算法基础\算法及其描述 【理解】算法的特征 算法具有五个方面的重要特征:有穷性、确定性、数据输入、数据输出、可行性。 有穷性:一个算法在执行有穷步之后必须结束,即一个算法所包含的计算步骤是有限的。 确定性:算法执行的每一个步骤必须有确切的定义,不能出现模棱两可的情况。 数据输入:一个算法必须有零个或多个数据输入,以刻画运算对象的初始情况。 数据输出:一个算法有一个或多个数据输出,以反映对输入数据加工后的结果,没有输出的算法是毫无意义的。 可行性:算法中执行的任何计算步骤都可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成。 3.2.1 算法 第3章 算法基础\算法及其描述 【了解】描述算法的分类 描述算法的常用方法有自然语言描述算法、流程图描述算法和伪代码描述算法。 【了解】自然语言描述算法 用自然语言描述算法,就是用人们日常所用的语言,如汉语、英语等来描述算法。 3.2.2 算法的描述 第3章 算法基础\算法及其描述 【理解】流程图描述算法 用流程图描述算法是用程序框图来描述算法的一种表示方法。流程图的基本图形及其功能。 3.2.2 算法的描述 第3章 算法基础\算法及其描述 【了解】伪代码描述算法 用伪代码描述算法就是用介于自然语言和计算机语言之间的文字和符号来描述算法。 【掌握】三种算法描述方法的比较 3.2.2 算法的描述 第3章 算法基础\算法及其描述 【例】鸡兔同笼是中国古代的数学名题之一,出自《孙子算经》。书中是这样叙述的:“今有雉兔同笼,上有三十六头,下有百足,问雉兔各几何?”这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有36个头,从下面数,有100只脚。问笼中各有几只鸡和兔? (1)用自然语言描述算法 假设全是鸡:2×36=72(只) 鸡脚比总脚数少:100-70=30(只) 兔:30÷(4-2)=15(只) 鸡:36-15=21(只) 3.2.2 算法的描述 第3章 算法基础\算法及其描述 (2)流程图描述算法 3.2.2 算法的描述 第3章 算法基础\算法及其描述 (3)伪代码描述算法 a.输入总头数tou,总脚数jiao b.求鸡的只数ji和兔的只数tu c.输出变量ji和tu的值 根据二元一次方程组,可知四个变量tou、jiao、ji、tu之间的关系为 tou=ji+tu jiao=2×ji+4×tu 解此方程组,可得到以下两个公式: ji=(4×tou-jiao)/2 tu=(jiao-2×tou)/2 3.2.2 算法的描述 第3章 算法基础\算法及其描述 【掌握】算法描述的三种基本结构 (1)三种基本结构作用 顺序结构:表示程序中的各步操作按出现的先后顺序执行 选择结构:程序的处理步骤出现了分支,需要根据某一特定的条件选择其中的一个分支执行。选择结构单选择、双选择和多选择三种。 循环结构:程序反复执行某个或某些操作,直到判断条件为假(或为真)时才可终止循环。 3.2.2 算法的描述 第3章 算法基础\算法及其描述 (2)三种基本结构的流程图 3.2.2 算法的描述 第3章 算法基础\算法及其描述 (3)三种基本控制结构描述算法的优势 a.以控制结构为单位,只有一个入口和一个出口,各单位之间接口简单,比较容易独立地理解每一单位。 b.缩小了算法的静态描述与动态执行过程之间的差异,使得两者容易对应,易于理解。 3.2.2 算法的描述 第3章 算法基础\算法及其描述 3.3 计算机程序与程序设计语言 第3章 算法基础 每天三分钟 信考更轻松 【了解】计算机程序的概念 计算机程序是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。简而言之,计算机程序就是指计算机要完成某个任务的指令集合。 3.3.1 计算机程序 第3章 算法基础\计算机程序与程序设计语言 【了解】计算机的组成 计算机由硬件和软件两大部分组成。 计算机硬件包括运算器、控制器、存储器、输入设备和输出设备五大基本部件。 计算机软件包括系统软件和应用软件。 3.3.1 计算机程序 第3章 算法基础\计算机程序与程序设计语言 【理解】计算机的工作过程 (1)计算机内部采用二进制形式表示和存储指令或数据 (2)解决问题的程序和需要加工处理的原始数据事先转换成二进制数,并存入存储器中 (3)计算机反复地获取指令、执行指令的过程。 3.3.1 计算机程序 第3章 算法基础\计算机程序与程序设计语言 3.3.1 计算机程序 第3章 算法基础\计算机程序与程序设计语言 计算机的工作过程 【了解】程序设计语言的概念 计算机程序设计语言是指一组用来定义计算机程序的语法规则,通常简称为“编程语言” 【了解】程序设计语言的产生与发展 程序设计语言的产生与发展必然是由低级到高级,由繁到简的。具体来说,大致经历了机器语言、汇编语言、高级语言几个发展阶段,使人能够越来越方便、越来越容易地将算法体现为程序。 3.3.2 计算机程序设计语言 第3章 算法基础\计算机程序与程序设计语言 【了解】计算机语言的发展历程及特点 第一代:机器语言。由“0”和“1”所表示的二进制代码指令组表示,但计算机可以非常方便的读懂。 第二代:汇编语言。有意义的字符代码,翻译成计算机语言。 第三代:高级语言。贴近人们理解习惯的高级语言系统,仍需要翻译成计算机语言,才能让计算机执行。经历了从早期语言到结构化程序设计语言、从面向过程到非过程化程序设计语言的过程。 3.3.2 计算机程序设计语言 第3章 算法基础\计算机程序与程序设计语言 【了解】计算机高级语言的种类 第一种高级语言是Fortran语言,它主要用于科学和工程计算,LGOL、COBOL、Basic、LISP、SNOBOL、Pascal、C、PROLOG、Ada、VC、VB、Delphi、Java、Python。 【了解】翻译程序工作原理 将程序中的每条语句都翻译成用二进制数表示的机器语言。 3.3.2 计算机程序设计语言 第3章 算法基础\计算机程序与程序设计语言 【理解】汇编语言的编写与执行。 3.3.2 计算机程序设计语言 第3章 算法基础\计算机程序与程序设计语言 【理解】高级语言的编写与执行。 【掌握】高级语言的翻译程序 高级语言的翻译程序有两种类型:编译程序和解释程序。 编译程序:指计算机把高级语言程序的每一条语句都编译成机器语言,并保存成二进制文件后才运行的程序。 解释程序:指计算机在执行高级语言程序时,逐条语句解释成机器语言并立即执行的程序。 3.3.2 计算机程序设计语言 第3章 算法基础\计算机程序与程序设计语言 【例】编译程序与解释程序对比。 3.3.2 计算机程序设计语言 第3章 算法基础\计算机程序与程序设计语言 语言种类 原理 优点 缺点 编译程序 通过专门的编译器,将高级语言一次性编译成可被平台执行的机器代码 编译一次后,脱离开发环境也可以独立运行,效率高 对编译器依赖严重,可移植性差 解释程序 由专门的编辑器,将源程序解释成特定的平台可执行指令 跨平台性好,通过不同的解释器,将其解释为某平台可识别的指令即可。 编译和解释混合在一起执行,效率较低 【掌握】高级语言的编译过程和解释过程 3.3.2 计算机程序设计语言 第3章 算法基础\计算机程序与程序设计语言 谢 谢 聆 听 第3章 算法基础 展开更多...... 收起↑ 资源预览