2016信息技术选修课程第二课什么是算法算法的特点算法的描述认识流程图绘制流程图一、算法生活中的算法:早上闹铃响开始→到达学校的过程遇到陌生字→了解字义(读音、写法)什么是算法:一般地,我们把进行某一工作的方法和步骤称为算法。乐谱是演奏家的算法、菜谱是厨师的算法、计算机解决问题的步骤是计算机的算法……数学家华罗庚的“泡茶”初始情况:开水没有,茶壶、茶杯没洗;火已生了,有茶叶。最终情况:用开水泡茶喝。2016信息技术选修课程二、算法的特点:有限性:一个算法必须保证在执行有限的操作步骤后结束。确定性:算法中的每一个步骤必须有确定的含义,不能是含糊的、模棱两可可执行性:每个操作都是可执行的,最终可以得到一个结果不唯一性:解决某个问题的方法有多种,但是每种方法有优劣之分1232016信息技术选修课程为什么我们能通过键盘和鼠标向计算机发出各种命令,让计算机帮助我们人类来处理各种不同的问题呢?这是由于人们事先对各类问题进行了分析,确定了解决问题的方法和步骤,然后根据它编写出计算机程序,才得出最后结果。计算机第一步:1加2得3,记住3;第二步:3加3得6,记住6;第三步:6加4得10,记住10;……第九十九步:4950加100得5050,记住5050;第一百步:运算结束,输出5050;解决方案一第一步:1加100得101,记住101;第二步:101乘以50得5050,记住5050;第三步:运算结束,输出5050;解决方案二例1、计算:1+2+3+4+……+99+100例如将若干人名按字母顺序排序、图书资料检索、计算机绘图等属于非数值运算非数值运算例如求若干数之和、求方程的根……,属于数值运算数值运算2016信息技术选修课程优化三、算法描述(自然语言、流程图、计算机语言)自然语言第一步:1加2得3,记住3;第二步:3加3得6,记住6;第三步:6加4得10,记住10;……第九十九步:4950加100得5050,记住5050;第一百步:运算结束,输出5050;计算机语言PrivateSubForm_Unload(CancelAsInteger)DimiAnswerAsIntegeriAnswer=MsgBox(真要退出吗?,vbYesNo)IfiAnswer=vbNoThenCancel=TrueElseEndEndIfEndSub2016信息技术选修课程流程图开始S=0,t=0t100T=t+1,s=s+t输出s结束YN四、认识流程图流程图是一种以图解的方式表示算法的描述方法。常用以下图形表示:图形名称含义开始/终止框程序的开始或结束处理框对数据进行处理输入/输出框数据的输入或输出判断框根据条件进行判断,选择其中一个分支流程线表示流程的走向2016信息技术选修课程互换a、b的值五、绘制流程图例2、有两个杯子A和B,分别盛放酒和醋,要求将它们互换(即A杯原来盛放酒,现要改盛醋,B杯则相反)必须增加一个空杯C作为过渡,其算法可以表示为:步骤一:先将A杯中的酒倒在C杯中;步骤二:再将B杯中的醋倒在A杯中;步骤三:最后将C杯中的酒倒在B杯中;2016信息技术选修课程开始a←1,b←2,c←0c←aa←bb←c输出a,b结束四、认识流程图2016信息技术选修课程开始A=B?输出A输出B结束YN输入A,B例3、输入A、B两个数,求A、B中的大者。如果A=B则A大输出A,否则输出B五、算法的三种基本控制结构2016信息技术选修课程开始语句1语句2语句3结束………1、顺序结构最简单、最基本的的结构方式,各语句依次按顺序执行。五、算法的三种基本控制结构2016信息技术选修课程2、选择(分支)结构对给定条件进行判断,条件为真(TRUE)时执行一条分支,条件为假(FALSE)时执行另一个分支。开始条件判断语句2语句3TF语句1语句4结束试一试:画出下面两个算法的流程图2016信息技术选修课程1、输入一个数(正、负),输出它的正值。2、输入三个数,输出最大的数。五、算法的三种基本控制结构2016信息技术选修课程3、循环结构a、当型循环:先判断后执行,当条件满足时反复执行循环体,条件不满足时,跳出循环,继续执行循环后面的语句。b、直到型循环:先执行后判断,先执行语句块,再进行判断,当条件为假时,跳出循环,继续执行循环后面的语句,否则一直执行循环体。判断条件循环体TF判断条件循环体TF五、算法的三种基本控制结构2016信息技术选修课程3、循环结构流程图开始S=0,t=0t100t=t+1,s=s+t输出s结束YN求(n为整数,且n1)ntt12016信息技术选修课程输入三个数,输出最大的数。开始ab?Max=aMax=bTFMax=0cMax?Max=cTF结束输入a,b,c输出max①开始输入a,b,cab?ac?输出abc?FT输出b输出cFFTT②结束七、分析流程图2016信息技术选修课程S=0,t=0tn输出s结束TF开始S=0,t=0t≥nt=t+1,s=s+t输出s结束TF3、求(n为整数,且n1)ntt1t=t+1,s=s+t输入n开始输入n算法设计如下:(1)输入1个数,存入变量A中,将记录数据个数的变量N赋值为1,即N=1(2)将A存入表示最大值的变量Max中,即Max=A(3)再输入一个值给A,如果AMax则Max=A,否则Max不变(4)让记录数据个数的变量增加1,即N=N+1(5)判断N是否小于10,若成立则转到第(3)步执行,否则转到第(6)步。(6)打印输出max输入10个数,打印输出其中最大的数。Max=AN=N+1输入AAMAX?TF结束输出maxFN10?T开始输入AN=1,max=A直到型循环当型循环开始AMAX?Max=ATFN=0,max=0FN=N+1T结束输出max输入AN10?