高中信息技术算法与程序设计.ppt
《高中信息技术算法与程序设计.ppt》由会员分享,可在线阅读,更多相关《高中信息技术算法与程序设计.ppt(192页珍藏版)》请在课桌文档上搜索。
1、1.1 计算机解决问题的一般过程,人工解题的步骤,正确理解题意,寻找或设计正确的解题方法,使用计算工具进行计算并得到结果,验证计算结果,计算机解题的步骤,正确理解题意,寻找或设计正确的解题方法,设计正确的算法,使用合适的程序设计语言将算法表达为计算机程序,由计算机按照设计好的程序高速、自动地计算结果,无论使用人工解题还是使用计算机解题,都必须在正确理解题意地基础上寻找或设计正确的解题方法。使用人工解题最后需验算,而使用计算机解题则不需要。,1.1.1 从问题到算法,问题:在一次班级联欢会上,同学们玩了一个猜商品价格的游戏。A同学出示一件商品,价格在11000元之间,价格为整数,要求B同学猜价格
2、。B同学每猜一个价格,A同学需要回答猜对了,或猜大了,还是猜小了。要求B同学尽可能快地猜出商品的价格。,【方法1】:B同学从1、2、3、依次猜测商品的价格,直到猜对为止。,【方法2】:B同学先从11000的中间数500开始猜,根据A同学的回答决定下一个要猜测的价格,如果A回答“猜大了”,则在1499之间取中间数进行猜测;否则,取5011000的中间数进行猜测,如此反复,直到猜对为止。,1.1.2 计算机与程序,看似无所不能的计算机,迄今为止也只能按照设计好的程序,一步步地进行运算处理。事实上,要使用计算机来解决问题,人们必须事先设计好解决问题的计算机程序。没有计算机程序,就不可能用计算机来解决
3、问题。,计算机程序就是指示计算机如何去解决问题或完成任务的一组可执行的指令。程序设计就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程。,计算机是一种按照设计好的程序,快速、自动地进行计算的电子设备。计算机开始计算之前,必须把解决某个问题地程序存储在计算机内存中。,程序由指令部分和数据部分组成。指令部分由一系列指令构成,每条指令都是要求计算机执行地一个动作。由适当的指令构成一个序列,描述了解决这个问题的计算过程。数据部分用来存储计算过程中所需的原始数据、计算的中间结果和最终结果。,指令就是用来规定计算机操作的命令。计算机的所有指令组成了计算机的指令集。一般而言,计算机的指令
4、越丰富,功能也就越强大。,计算机指令的种类,输入通过输入设备,程序接收外界输入的数据,将数据存储到指定的变量中;输出把文字、变量中存储的数据或计算产生的结果,通过输出设备显示或打印出来;数学运算进行、平方、开平方、求余数等数学运算。通常,计算所需的的数据从变量中获得,计算的结果可以存储到指定的变量中。逻辑判断可以对指定的两个数据进行大小或相等性(、)比较,比较的结果为逻辑值(真或假),也使用逻辑运算(如与、或、非),把若干个较简单的判断连接起来,成为一个复杂的判断。控制转移指令用来改变程序中指令的执行顺序。,现在由计算机来扮演A同学的角色,计算机应该按照下述过程进行工作:,计算机得到B同学所猜
5、的价格,计算机对得到价格与实际价格进行比较,告诉B同学比较的结果(猜小了、猜大了、猜对了),计算机根据比较的结果决定是否继续猜测。,使用计算机解决问题一般要经历以下三个阶段:,分析问题并确定要计算机做什么,寻找解决问题的途径和方法,开始,用计算机进行处理,分析问题,设计算法,编写程序,运行程序,问题解决,猜大了或是猜小了,则继续猜测,猜对了则停止猜测,游戏结束,设计程序时需考虑的问题,数据的存储:计算所需的原始数据、计算产生的中间结果、计算的最终结果需要存储在变量中。,计算的过程:首先确定解决问题的方法;然后必须将该方法步骤化,即用计算机可以执行的步骤(指令),来描述问题的计算过程,这意味着程
6、序的计算过程不仅必须指出动作,而且必须指出动作的次序。,输出指令,输入指令,逻辑判断指令,控制转移指令,变量的概念与用途,程序中的变量是计算过程中要用到的数据的存储单元;通过输入指令的执行,程序将外界输入的数据存储到指定的变量中,程序计算的结果也可以存储到指定的变量中;一旦将数据存储到某个变量中,只要我们不再把新的数据存储到其中,那么在程序运行过程中,该变量将永久保存着原来的数据;在计算过程中如果要使用到该变量中的数据,我们可以从该变量中读取出其中的数据,这种读取是不会改变变量中存储的内容的。,指令区,数据区,图中的每行代表了内存中的一个存储单元,每个存储单元可以存放一条指令或一个数据。每个存
7、储单元都有唯一的编号,称为地址。指令是依次逐条执行的,如果遇到转移指令,会按指令要求选择下一条要执行的指令。遇到结束指令,整个程序终止运行。,输入价格:,500,375,250,500,250,375,猜大了!,输入价格:,猜小了!,输入价格:,猜对了!,375,输入价格:,1,375,2,1,2,375,猜小了!,输入价格:,猜小了!,输入价格:,猜对了!,375,.,1.3 算法的概念,算法是在有限步骤内求解某一个问题所使用的具有精确定义的一系列操作规则。每条规则都必须是确定的、能行的、不能有二义性的。算法要有一个清晰的起始步骤,且每一个步骤都只能有一个确定的后继步骤,从而组成一个有限步骤
8、序列。步骤终止时也给出了问题的解答。解决问题的过程就是实现算法的过程。算法是程序设计的“灵魂”,算法+数据结构=程序。算法独立于任何具体程序设计语言,一个算法可以用多种程序设计语言实现。,1、算法的概念,2、算法的特点,(1)有穷性一个算法必须保证它的执行步骤是有限的,即它是能够终止的,操作步骤不能无限。算法可以有重复执行的步骤,只要这些步骤的执行能够终止。广义地说,“有穷性”是指操作步骤的数目或完成操作的时间在合理的范围内,如果一个算法虽然在操作步骤的数目是有限的,但它所花费的时间超过了合理的限度,这种算法并不是有效的算法。,(3)可行性算法中的每一个步骤都要是实际能做的,而且必须在有限的时
9、间内可以完成。例如:步骤“输出:Ld”在d0的情况下就不可以做。,(4)有0个或多个输入所谓输入就是指算法在执行时要从外界获得数据,其目的是为算法建立某些初始状态;如果建立初始状态所需的信息已经包含算法中,那就不需要输入了。,(5)有一个或多个输出算法的目的是用来求解问题,问题的结果应以一定的方式输出,以便用户知道。在数学中的”无解“对于算法来说也是一个输出,没有输出的算法是毫无意义的。,(2)确定性算法的每个步骤必须有确切的含义,而不应当是含糊的、模棱两可的。例如:步骤“输出:L正整数”是无法执行的,因为没有指定L除以哪一个正整数,这个步骤是不确定的。问题:步骤“输入一个正整数”是否是确定的
10、?,1.3 算法的表示,我们可以采用多种方法来描述一个算法,流程图是一种比较直观易用的、用图形来描述算法的方法。用流程图来描述算法要遵循一定的标准,这套标准中最常用的符号有:,处理框输入、输出框判断框流程线开始、结束符,在一般情况下,输入、输出框可以用处理框代替。,开始,结束,开始,结束,开始,T S,结束,显示:“输入价格:”,输入价格到变量T,T S,显示:“猜小了!”,显示:“猜大了!”,显示:“猜对了!”,Y,Y,N,N,判断框表示条件判断:取出变量T、S中的数据,若TS是否成立)。,想一想,问题1:键盘输入两个数,输出两个数的和与积?,(1)需要输入哪些数据?,(2)需要计算机输出什
11、么信息?,(3)如何根据输入数据得到要输出的信息?,需要输入两个不同的数,需要计算机输出两数的和与积,分别存入变量a、b中,两数之和存入变量sum中,计算a+b,将结果存放在变量sum中;计算ab,将结果存放在变量s中。最后输出sum、s。,两数之积存入变量s中,键盘输入两个不同的数,分别存入变量a、b中。,计算a+b,将结果存放在变量sum中;计算ab,将结果存放在变量s中。,输出sum、s,算法分析,流程图描述,开始,输入a、b,输出sum、s,suma+b,sab,结束,顺序模式的特点:按照顺序一步一步执行。,表示先计算a+b的值,然后将计算的结果存入变量sum中。“”称为赋值符,它的计
12、算过程是:先计算符号右侧的代数式的结果,然后将计算结果存储到符号左侧的变量中。,想一想,问题2:键盘输入两个不同的数,存入不同的变量中,交换两变量中的数值并输出?,(1)需要输入哪些数据?,(2)需要计算机输出什么信息?,(3)如何根据输入数据得到要输出的信息?,需要输入两个不同的数,需要计算机输出交换位置后的两个变量,分别存入变量a、b中,将变量a的值存入变量b中;将变量b的值存入变量a中。最后输出变量a、b。,将变量a的值存入变量T中;将变量b的值存入变量a中。将变量T的值存入变量b中最后输出变量a、b。,键盘输入两个不同的数,分别存入变量a、b中。,输出变量a、b,算法分析,流程图描述,
13、开始,输入变量a、b,输出变量a、b,Ta,ab,bT,结束,ba,ab,将变量a的值存入变量T中;将变量b的值存入变量a中。将变量T的值存入变量b中,【例1】已知矩形的长和宽,求矩形的面积。,求矩形面积的方法是:矩形面积=长宽。如果设计的程序只能计算固定的长和宽,那么,这个程序就没有什么实用性了。用变量a、b、s分别代表矩形的长、宽、面积,则s的值应该是ab的计算结果。程序的执行流程应该是:,输入两个数值给a、b,通过计算ab,将结果给变量s,输出变量s的值,开始,输入长到变量a,输入宽到变量b,计算:sab,输出面积:s,结束,表示先计算ab的值,然后将计算的结果存入变量s中。“”称为赋值
14、符,它的计算过程是:先计算符号右侧的代数式的结果,然后将计算结果存储到符号左侧的变量中。,1.3.3 算法的执行流程,算法的执行流程,是指算法中各个处理步骤的执行次序和模式。通常需要如下三种不同的执行流程:,1.顺序模式:执行完一个处理步骤step1后,接着执行下一个处理步骤step2。,开始,输入变量a、b,输出变量a、b,Ta,ab,bT,结束,ba,ab,想一想,【问题1】:该怎样过马路?,应观察交通信号灯并判断:红灯停;绿灯行。,信号灯是否为红灯?,等待信号灯变为绿灯,Y,N,过马路,情况e为真?,step1,step2,Y,N,情况e为真?,就是对某个条件进行判断,具体在判断框中用关
15、系表达式或逻辑表达式来表达。,xy?,x0且y0?,选择模式是先对某个情况e进行判断,,当结果为真时,执行处理步骤step1,,否则执行处理步骤step2。,例如:,选择模式可以使算法根据情况的不同,在两个预定的处理步骤中,选择执行其中一个处理步骤。,“预定的处理步骤”可以是一系列操作,亦可以是无操作。当两个“预定的处理步骤”中有一个是无操作时,我们称其为单分支结构,如果均有操作,我们称其为双分支结构。,判断条件“x大于y”,判断条件“x、y均为正数”,想一想,问题2:比较两个不同数的大小关系,输出其中较大的那个数?,(1)需要输入哪些数据?,(2)需要计算机输出什么信息?,(3)如何根据输入
16、数据得到要输出的信息?,需要输入两个不同的数,需要计算机输出两数中较大的数,分别存入变量a、b中,存入变量max中,判断条件“ab”,若条件成立(情况为真),则maxa;否则(情况为假)maxb。最后输出max。,键盘输入两个不同的数,分别存入变量a、b中。,判断条件“ab”,若条件成立(情况为真),则maxa;否则(情况为假)maxb。,输出max,算法分析,流程图描述,开始,输入a、b,输出max,maxa,maxb,结束,ab?,Y,N,想一想,问题3:比较三个不同数的大小关系,输出其中最大的那个数?,(1)需要输入哪些数据?,(2)需要计算机输出什么信息?,(3)如何根据输入数据得到要
17、输出的信息?,需要输入三个不同的数,需要计算机输出三个数中最大的数,分别存入变量a、b、c中,存入变量max中,判断条件“ab”,若条件成立,则maxa;否则maxb。判断条件“maxc”,若条件成立,则保持max不变;否则maxc。最后输出max。,键盘输入三个不同的数,分别存入变量a、b、c中。,判断条件“ab”,若条件成立,则maxa;否则maxb。判断条件“maxc”,若条件成立,则保持max不变;否则maxc。,输出max,算法分析,流程图描述,开始,输入a、b、c,输出max,maxa,maxb,结束,ab?,Y,N,maxc,maxc?,Y,N,开始,输入a、b、c,结束,ab且
18、ac?,Y,N,bc?,Y,N,maxa,maxb,maxc,输出max,选择模式的嵌套,选择模式小结,选择模式的特点,选择模式是由判断条件的成立与否来选择执行相应的操作步骤,使用选择模式解决问题的要点,判断框中的判断条件表达方式,判断框中的判断条件可以是关系表达式(如:ab),也可以是逻辑表达式(如:ab且ac)。,1、当算法执行到某一步,如果其结果存在多种可能性时,就应使用选择模式来解决;,2、全面考虑问题的所有可能性,合理设置判断条件;,3、使用流程图描述算法时应注意各执行步骤的汇合点。,3.重复模式(循环结构),问题:如果条件始终成立,会出现什么情况?,当型循环结构的特点是:先判断条件
19、,条件成立方能执行相应语句,继续判断条件,直到条件不成立退出循环。当型循环结构中,语句块可能一次都不执行。,当型循环结构,直到型循环结构,直到型循环结构的特点是:先执行语句块,条件不成立继续重复执行语句块,直到条件成立退出循环。直到型循环结构中的语句块至少执行1次。,设输入n的值是4,k的值是5,条件不成立,输出s,.,sum=_ i=_,1,1,成立,1+1,3,成立,1+1+3,5,成立,1+1+3+5,7,不成立,7,10,sum=_ i=_,1,1,成立,1+1,2,成立,1+1+2,3,成立,1+1+2+3,4,不成立,4,7,a=_ b=_,1,1,成立,1+1,2+1,成立,2+
20、3,5+3,成立,5+8,13+8,不成立,21,13,考虑该问题中涉及的数据,使用以下变量来保存数据:c:用来记录非0数的个数。d:用来存储当前输入的数据。sum:用来存放有效数的和。,这批数据由使用者从键盘输入,使用者预先不知道数据的个数。根据题意,计算的是非零数的平均值,所以我们以输入0表示本次计算所需的全部数据已输入完毕(即所有有效的数据,其值均不为0)。,【例2】设计算法,求输入的若干非零数的平均值。,对于输入的每一个数,如果不是0,则应进行两项处理:(1)将这个数加到总和里;(2)有效数的个数增加1。然后继续输入非零数据。重复上述两项处理,直到输入的数据为0时,结束这个累加和计数的
21、过程。最后输出平均值(总和/个数)。,1、在算法的开始阶段,我们应设置变量sum的初值为0,变量c的初值为0;2、通过输入指令,把使用者输入的数据(也可能是表示结束的0)送到变量d中;3、判断条件d=0是否成立,如果不成立,则d应该被累加到变量sum中,然后变量c的值增加1,表示接收到一个有效数据,转到步骤2;如果条件d=0成立,执行步骤4;,开始,结束,累加器置初值:sum0,计数器置初值:c0,显示:“请输入:”,接收输入数据送到变量d,d=0?,把d累加到sum中:sumsum+d,计数器c计数:cc+1,c=0?,输出平均值:sum/c,输出平均值:0,4、输出平均值sum/c。,Y,
22、N,4、判断条件c=0是否成立,如果条件不成立,说明有效数的个数不为0,输出sum/c;否则说明没有输入有效数据,输出0。,N,Y,问题:步骤4是否正确?为什么?,计数器(counter),算法执行过程中,用来记录某种事件发生次数的变量。假定变量c作为计数器。计数器的典型用法:1.在算法执行的准备阶段中,应预置初值0。向计数器c预置初值0的动作为:c 0。2.算法执行过程中,每当指定的事件发生时,对计数器c计数,即,把事件已经发生的次数(在计数器c中)加1后,结果仍然送回到计数器c中。计数器c的计数动作为:c c+1。累加器(accumulator),算法执行过程中,用来形成并存储数据之和的变
23、量。假定变量sum作为累加器,变量d中存储了符合要求的一个数据。累加器的典型用法:1.在求和开始前的准备阶段中,应预置初值0。向累加器sum预置初值0的动作为:sum 0。2.算法执行过程中,每遇到一个符合要求的数据时,把这个数据累加到累加器中,即,计算累加器与该数据之和,并把结果重新存贮到累加器中。数据d累加到sum的动作为:sum sum+d。,考虑该问题中涉及的数据,使用以下变量来保存这些数据:n:用来存储最后一个要加入的数。sum:累加器,用来形成并存储数据之和。i:计数器,用来表示每次要加入的数据,加入后自动增加1。,【例3】设计一个算法,求sum=1+2+3+4+n,n由使用者输入
24、,n为正整数。,对于求和式中的每一个数,我们发现是有规律的(从1开始,后一个是前一个加1),所以不需要每个数都手工输入,使用初值为1的计数器变量就可以表示。对于计数器的当前值,应进行两项处理:(1)将计数器的当前值加到累加器里;(2)计数器自动增加1。重复上述两项处理,直到计数器的值超过使用者的输入值n时,结束这个累加和计数的过程。最后输出累加器。,1、在算法的开始阶段,首先输入n的值,设置sum的初值为0,i的初值为1;2、判断条件in是否成立,如果成立,将i的值累加入sum中(sum sum+i),然后i增加1(i i+1),执行步骤3;如果条件不成立,则跳到步骤4;3、转回到步骤2,4、
25、此时i当前的值大于n,表示所有的数据均累加入sum中,则输出sum的值。,开始,结束,输入n,累加器sum0,计数器i1,in?,sumsum+i,ii+1,输出sum,Y,N,.,n个1,(n+1)个1,计数器i的作用:(1)控制循环次数(2)表示每次要加入累加器中的数据,习题3:设计一个算法,求sum=1234n,n为正整数,由使用者输入。提示:本题与例题3很相似,注意变量sum的初值应设置为多少。,习题1:课本P11,“实践体验”,提示:注意计数器的作用与使用方法。,习题2:课本P13,“实践体验”,提示:注意本题与例题2的相似之处。,作业要求:1、抄题目2、用直尺画流程图,开始,T S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高中 信息技术 算法 程序设计
链接地址:https://www.desk33.com/p-263428.html