1、单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,本幻灯片资料仅供参考,不能作为科学依据,如有不当之处,请参考专业资料。,算法与程序设计,第1页,1.1,计算机处理问题过程,第2页,怎样用计算机处理问题,当我们用计算机处理问题时,,首,先要分析问题,然后,依据,问题要求选,择适当,软件。,如,果,现,有软件能,满足,我们要求,我们会,直接,用这,些,软件来完成任务。,比如:学校财务处要制作一份工资表,工资表中许多数据,我们能够用,Excel,处理;学生要设计一个报刊设计,能够使用,word,;网络上网页是使用网页制作工具完成,记事本要输入代码,,Fron
2、tpage,和,Dreamweaver,能够直接使用可视化工具。,除,此,之,外,,,现实生活,中还有许多工作,往往比,较,特殊,,,现,有软件不能很好,地,完成,,或者,由,于,其它,方面,原,因无法使用,这就,需,要我们,编写,程序来处理问题。,第3页,农夫过河问题,智力问答:,一个农夫带着一只狼,一只羊和一棵白菜过河。河边只有一条船,因为船小,农夫一次只能带其中一样过河。如无人看管,狼要吃羊,羊要吃菜。问农夫怎样安排过河,才能使狼、羊、菜都安然无恙。,第4页,渡河方法与步骤:,第一步:,农夫带着羊,渡过河去;,第二步:,农夫,划船回来;,第三步:,农夫带着菜,渡过河去;,第四步:,农夫带
3、着羊,划船回来;,第五步:,农夫带着狼,渡过河去;,第六步:,农夫,划船回来;,第七步:,农夫带着羊,渡过河。,第5页,例,1,,一个笼子里有鸡和兔,现在只知道里面一共有,35,个头,,94,只脚,问鸡和兔各有多少只?,鸡兔同笼问题,第6页,分析问题,X+Y=a,2X+4Y=b,解方程组得:,X,2a-b/2,,,Y,b/2-a,第7页,设计算法,2.,设计算法:,输入,a,和,b,值,求,X=2a-b/2,求,Y=b/2-a,输出,X,,,Y,值,结束,第8页,3.,编写程序,Private Sub Command1_click(),a=inputbox(“a=“,”,输入头数“),b=in
4、putbox(“b=“,”,输入脚数“),x=2*a-b/2,Y=b/2-a,Print“,鸡数,x=“;x,”,兔数,y=”,;,y,End Sub,第9页,4.,调试程序,第10页,设计一个软件步骤是:,详细问题,分析问题,设计算法,编写程序,调试程序,得到答案,无,论,使用,现,成软件处理问题,还是自己,动,手编,程处理问题,,其实,质,都是一样:,现,有计算机软件一样也经,历,了这,些,过程,,其差异,在于,用程序设计处理问题,需,要我们,亲,自,动,手,设计软件,,而,使用,现,成软件,是,他人,已经,给,我们设计好了。,第11页,1.2,算法和算法描述,第12页,算法,算法是在有限
5、步骤内求解某一问题所使用一组定义明确规则。通俗说,算法就是用计算机求解某一问题方法。,算法是处理问题方法和步骤,第13页,P8,,实践,第14页,算法特征,输入:一个算法,有零个,或者多个输入,确定性,:,算法每一个步骤必须要确切地定义,有穷性:一个算法它所包含计算步骤是有限,输出:算法有,一个,或多个输出,能行性:每一步都能准确进行,并最终得出正 确结果,第15页,算法描述,自然语言,流程图,伪代码,第16页,1,、用自然语言来描述。,输入,a,和,b,值,求,X=2a-b/2,求,Y=b/2-a,输出,X,,,Y,值,结束,第17页,2,、用流程图来描述,流程图也称程序框图,算法一个图形化
6、表示方法。,第18页,流程图,图形,名称,功效,开始结束,表示算法开始或结束,输入输出,表示算法中变量输入或输出,处理,表示算法中变量计算与赋值,判断,表示算法中条件判断,流程线,表示算法中流向,连接点,表示算法中转接,第19页,2.,流程图,输入,a,和,b,值,输出,x,y,值,开始,求,x=2a-b/2,求,y=b/2-a,结束,第20页,area,s,s,s,s,s,第21页,开始,r=m,除以,n,余数,r=0,输入正整数,m,n,结束,输出,n,值,m=n,n=r,是,否,第22页,流程图优缺点,与自然语言相比,用流程图描述算法形象、直观,更轻易了解。,第23页,3,、用伪代码描述
7、算法。,比如,给定一个四位数年份,判断它是否为闰年。假如用伪代码来描述算法,能够表示以下:,算法分析:,我们知道,假如,2,月是,28,天,则这一年是平年;假如是,29,天,则这一年是闰年。判断闰年条件是:假如该年份能被,4,整除但不能被,100,整除,或者能被,400,整除,则该年为闰年。,第24页,算法描述:,输入年份,y,IF y,能被,4,整除,THEN,IF y,不能被,100,整除,THEN,输出“是闰年”,ELSE,IF y,能被,400,整除,THEN,输出“是闰年”,ELSE,输出“不是闰年”,END IF,END IF,ELSE,输出“不是闰年”,END IF,第25页,使
8、用伪代码描述算法没有严格语法限制,书写格式也比较自由,只要把意思表示清楚就能够了,它更侧重于对算法本身描述。,在伪代码描述中,表示关键词语句普通用英文单词,其它语句能够用英文语句,也能够用汉语语句。,第26页,1.3,程序与程序设计语言,第27页,求解“鸡兔同笼问题”算法与程序,算法,程序,Private Sub Command1_click(),(1)输入a和b值,a=inputbox(“a=“,”,输入头数“),b=inputbox(“b=“,”,输入脚数“),(,2,),求,X=2a-b/2,x=2*a-b/2,(,3,)求,Y=b/2-a,Y=b/2-a,(4)输出X,Y值,Print“,鸡数,x=“;x,”,兔数,y=”,;,y,(,5,)结束,End Sub,第28页,Private Sub Command1_click(),a=Val(InputBox(a=,输入头数,),b=Val(InputBox(“b=,(请注意不能输入单数,且,02a=b c And a+c b And b+c a Thenp=(a+b+c)/2s=Sqr(p*(p-a)*(p-b)*(p-c)Print,面积:,;sElsePrint,不是三角形,End IfEnd Su,第38页,