1、信息技术必修一数据与计算第三章 算法基础人工解决问题的过程算法基础体验计算机解决问题的过程计算机解决问题的过程算法算法的描述数据的输入与输出顺序结构的应用计算机程序与程序设计语言算法及其描述体验计算机解决问题的过程01探究Q:学期结束时,老师打算花50块钱购买一些笔记本奖励表现优秀的同学,请班长小明帮忙,小明决定同时买三种单价分别为6元、5元、4元的笔记本,钱刚好花完,请问可以有多少种方案?人工解决问题1.提取题干信息:总金额:50元笔记本单价:6元、5元、4元要求:钱刚好花完、同时买三种笔记本明确问题给出的条件2.转换为数学方程,并列出可能的解:方程:6x+5y+4z=50方案xyz6x+5
2、y+4z一14650二18150三22750四26250五34350六42450七62150可能的解:根据经验和知识确定解决问题的方法解决问题人工解决问题人工解决问题的过程:明确问题给出的条件-根据经验和知识确定解决问题的方法-解决问题但当花费的钱数需刚好为n时,数据量很大,人工处理效率很低。因此我们需借助计算机工具,通过编制计算机程序来解决问题。计算机解决问题1.提取问题需求情况和已知条件:需求情况:同时购买三种类型且总价为50元的笔记本已知条件:笔记本价格分别为6元、5元、4元分析问题2.给出解决问题的详细方法和步骤:6元的笔记本数量x最少为1,最多为8;5元的笔记本数量y最少为1,最多为
3、10;3元的笔记本数量z最少为1,最多为12。让三类笔记本的数量x,y,z作为变量,在各自值域内变化、组合。笔记本总价每刚好为50,则让方案数t自加1。设计算法计算机解决问题3.选择一种计算机语言工具来编写程序:t=0 for x in range(1,9):for y in range(1.11):for z in range(1,13):if x*6+y*5+z*4=50:t=t+1 print(“方案数为”,t,“个”)编写程序4.运行程序,检验程序执行效果:如果程序出错,可根据计算机提示的出错信息修改程序,重新调试运行调试运行程序练一练1.P27第2题:用计算机编程来求某一方程的解,通
4、常的步骤是()调试运行程序 分析问题 设计算法 编写程序A.B.C.D.A解析:计算机解决问题的过程:分析问题-设计算法-编写程序-调试运行程序练一练2.P28第7题:一位爱好程序设计的同学想通过程序设计解决“韩信点兵”的问题,他制定的如下工作步骤,更为恰当的是()调试运行程序 分析问题 设计算法 问题解决 编写程序A.B.C.D.D解析:计算机解决问题的过程:分析问题-设计算法-编写程序-调试运行程序练一练3.P28第8题:交通警察到达交通事故现场,开展工作的一般思路是()观察分析现场 收集必要的信息 进行判断和推理 给出处理方案A.B.C.D.A算法及其描述02算法特征 有穷性:一个算法在
5、执行有穷步之后必须结束,即一个算法所包含的计算步骤是有限的。确定性:算法执行的每一个步骤必须有确切的定义。数据输入:一个算法必须有零个或多个数据输入。数据输出:一个算法必须有一个或多个数据输出。可行性:每个计算步骤都可以在有限时间内完成。指在有限步骤内求解某一问题所使用的一组定义明确的规则。是用计算机求解某一问题的方法,是能被机械执行的动作或指令的有穷集合。练一练4.P27第3题:下面关于算法的特征,描述不正确的是()A.有穷性:算法必须在有穷步之内结束B.确定性:算法的每一步必须确切地定义C.输入:算法必须至少有一个输入D.输出:算法必须至少有一个输出C解析:一个算法应是必须有0个或多个数据
6、输入算法的描述算法是对解题过程的精确描述,需要使用某种方法将其表示出来l自然语言l流程图l伪代码用自然语言描述算法例:若求方程6x+5y+4z=50的正整数解的个数t,则解决问题的算法步骤用自然语言描述算法,就是用人们日常所用的语言,如汉语、英语等来描述算法。特点:通俗易懂,易于理解,但文字冗长,容易产生歧义性 t=0;x=1;y=1;z=1;如果满足式子6x+5y+4z=50,则解的个数加1(t=t+1),并输出一个解(输出t,x,y,z的值);z=z+1;如果z=12,则转步骤,否则继续;y=y+1;如果y=10,则转步骤,否则继续;x=x+1;如果x25?输出:体重正常输出:已超重循环结
7、构 循环结构表示程序反复执行某个或某些操作,直到判断条件为假(或真)时才可终止循环。循环结构可以减少程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构。k=50?z=z+1k=6x+5y+4zz=12?YYNN练一练9.以下不是程序的基本控制结构的是()A.顺序结构 B.选择结构C.循环结构 D.组合结构D10.判断:在选秀活动中,三个评委为每一位选手亮灯打分。如果三个评委都亮绿灯,则选手可进入下一轮比赛;如果两个评委亮绿灯,则选手进入待定席;如果红灯数超过两盏,则选手被淘汰。这种情形最适合用循环结构来描述算法()B选择结构练一练11.下列对算法描
8、述中的三种基本控制结构的叙述,不正确的是()A.顺序结构表示程序按语句出现的先后顺序从上到下顺序执行,每条语句可能执行多次 B.选择结构表示程序根据判断条件选择其中的一条分支执行,程序执行过程中有可能有的语句一次都不会被执行C.循环结构 表示程序反复执行某个或某些操作,循环结构一定要终止循环的条件 D.在一个算法描述中,三种基本控制结构可以混合使用A执行一次计算机程序与程序设计语言031.计算机程序的定义 计算机程序是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。简而言之,计算机程序就是指计算机
9、可以识别运行的指令集合。2.计算机的基本组成计算机的五大组成部分:运算器、控制器、存储器、输入设备、输出设备。运算器(内)存储器控制器输入设备输出设备数据流控制流程序数据请求信号响应信号反馈信号操作指令响应信号请求信号取数存数地址指令3.计算表示和存储指令或数据所采用的形式什么?计算机只认识 和?计算内部采用二进制形式表示和存储指令或数据。计算机的工作过程实际上是周而复始地获取指令、执行指令的过程。计算机程序设计语言的定义计算机程序设计语言:是指一组用来定义计算机程序的语法规则,通常简称为“编程语言”。计算机程序设计语言的发展经历了:机器语言汇编语言高级语言计算机程序设计语言的发展101100
10、0000001001000001000000100011110100机器语言MOV AL,9ADD AL,8HLT汇编语言Print(9+8)高级语言例如:命令计算机完成“9+8”的加法运算,对应的计算机程序设计语言为:计算机程序设计语言任务2:自主阅读教材P55-P57,总结3种程序设计语言的特点语言类型是否需要翻译(编译)优势不足1机器语言2汇编语言3高级语言3种计算机程序设计语言的特点语言类型是否需要翻译(编译)优势不足1机器语言否能被计算机接受和执行,运算效率最高程序难以理解,移植性差2汇编语言是针对计算机特定硬件而编制的汇编语言程序,比机器语言容易理解,效率仍十分高不能被计算机直接运
11、行,移植性不好3高级语言是接近于数学语言或人的自然语言,易于理解,移植性好不能被计算机直接运行课堂练习12.高级语言更接近自然语言,并不特指某种语言,也不依赖于特定的计算机系统,因而更容易掌握和使用,通用性也更好。以下不属于高级语言的是()A.Java语言 B.Python语言 C.汇编语言 D.C语言C13.计算机能直接识别、理解执行的语言是()A.汇编语言 B.Python语言 C.Basic语言 D.机器语言D 课堂练习04课堂练习14.下面关于算法的描述,正确是()A.算法不可以用自然语言描述B.有些复杂算法用流程图可能无法描述C.一个算法必须保证它的执行步骤是有限的D.算法的流程图表
12、示法可以有零个或多个输入,但只能有一个输出C解析:算法可以用自然语言、流程图描述;算法至少有一个或多个输出。课堂练习15.P27第1题:算法的重要特征不包括()A.有穷性 B.确定性 C.数据输出 D.唯一性D16.P27第4题:关于算法,下列叙述不正确的是()A.解决任何一个具体问题可以有多种算法B.流程图是算法的一种表示形式C.为了解决问题,设计算法时可以不用考虑时间成本和空间成本D.判断一个算法的优劣要看算法解决问题的执行效率C课堂练习17.P29第14题:以下流程图描述的算法,其执行结果是:()A.7,18 B.4,18C.7,2 D.3,11A课堂练习18.设计程序计算矩形的面积和周长:输入矩形的长和宽(单位:cm),输出矩形的面积和周长。其中定义整型变量a,b分别表示矩形的长和宽,变量s,c分别表示矩形的面积和周长,请把流程图中编号为的两处补充完整。a*b (a+b)*2开始s=输入变量a,bc=输出变量a,b结束课堂练习19.P32第38题:利用辗转相除法求最大公约数 r=0开始求m除以n的余数r输入m,nm=n输出m结束n=r 否是 r=m%n例如:输入m=16,n=12当第一次循环时:r=m%n=16%12=4m=n=12n=r=4r=0不成立,继续循环当第二次循环时:r=m%n=12%4=0m=n=4n=r=0r=0成立,循环结束最后输出m的值就是最大公约数