12算法和算法的描述课件_第1页
12算法和算法的描述课件_第2页
12算法和算法的描述课件_第3页
12算法和算法的描述课件_第4页
12算法和算法的描述课件_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.2算法和算法的描述什么是算法(algorithm)?有81个球,只有一个球比其它球轻,轻利用一台没有砝码的天平把它找出来方法2:把81个球分成3组各27个球先比较其中两组,如果不平衡,找出较轻那一组再分成3组个9个球;如果平衡,找出剩余那一组再分成3组个9个球先比较其中两组,如果不平衡,找出较轻那一组再分成3组个3个球;如果平衡,找出剩余那一组再分成3组个3个球在最后剩余的三个球中找出轻的那个球方法1:天平两边各放一个球,看天平是否平衡;如果上一步天平倾斜,找出轻球;如果平衡,再放另外两个球;重复上一步;……找到轻球结束三个人和三个野人过河问题三个人和三个野人同行,走到前面有一条河挡住了去路,而河面上只有一支小船,小船最多一次只能乘载两个人,《问题关键》当河的这边和河的对面以及船上的野人数量多过人时;人就会被野人吃掉。问:三个人和三个野人怎样过河人才不会被野人吃掉。〈补充:河的两边以及船上的人和野人的数量平等时人也不会被野人吃掉〉

渡河的方法与步骤:首先两个野人过去,一个野人回来,再两个野人过去一个回来,再次是两个人过去,然后一个人和一个野人回来,然后两个人再过去,这时到岸边的有三个人和一个野人,对岸有两个野人。再让一个野人回来接一个野人,然后野人又回来接另一个,野人过河完毕。什么是算法(algorithm)?1、广义的算法是指完成某项工作的方法和步骤,在我们日常生活中也经常使用算法,只是没意识到罢了。如:洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等。2、在数学中或计算机中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。算法有优劣之分解决问题的步骤多少不是衡量算法优劣的依据扫地机算法,决定了扫地机器人是否智能,既然是机器人,我们当然希望它能有智慧,因而智能程度的高低成成为衡量扫地机器人优劣最重要的指标。算法决定了在扫地机器人的清扫模式:随机式清扫和规划式清扫。给计算机输入两个数,将两个数的值交换后输出请你写出算法变量输入数据,输出数据,临时存储在内存中的数据.其特点就是存放在其中的数据值可任意改变。常量程序中不变的值,比如PI的值3.14在程序里“=”为赋值符号即将等式后变量的值赋给等式前的变量例如:设A=1B=2如果执行以下命令令A=BA=

B=

AB12给计算机输入两个数,将两个数的值交换后输出1、输入AB2、交换AB的值3、输出AB1、输入AB2、c=bb=aa=c3、输出AB设计一个算法,求出100以内能被3整除的所有正整数。1、令I=1;2、如果I能3整除,则输出I;3、I=I+1;4、如果I《=100,则返回第2步。5、结束。算法的特征算法的特征:有穷性:算法的步骤必须是有限的确定性:算法每一步必须有明确的意义输出:算法必须保证有结果输出,可以有一个或者多个输入:算法可以有0个或多个输入可行性:原则上用纸笔也可精确算出结果二、算法的描述自然语言流程图伪代码流程框图标准开始结束框输入输出框处理框判断框流程线例1:编程求解半径为R的圆的周长L和面积S。(1)输入半径R。(2)计算周长L和面积S。(3)输出L和S。(4)结束。(一)、用自然语言描述算法(二)、用流程图描述算法开始输入半径R计算周长L=2*PI*R计算面积S=PI*R*R输出L和S的值结束例2:鸡兔同笼问题。一个笼子里有鸡和兔,现在只知道里面一共有35个头,94只脚。鸡和兔各有多少只?1、输入a和b的值。2、计算鸡数X=(4a-b)/2。3、计算兔数Y=(b-2a)/2。4、输出X和Y的值。5、结束。(一)、用自然语言描述算法(二)、用流程图描述算法开始输入a和b的值计算鸡数X=(4a-b)/2计算兔数Y=(b-2a)/2输出x和y的值结束例3:设计一个算法,求出100以内能被3整除的所有正整数。(一)、用自然语言描述算法1、令I=1;2、如果I能3整除,则输出I;3、I=I+1;4、如果I《=100,则返回第2步。5、结束。(二)、用流程图描述算法开始I=1I能被3整除输出I的值是否I=I+1I《=100是否结束设计一个算法求三个数中的最大数开始

输入abc如果a>b且a>c否如果b>c是输出a是输出b输出c结束否韩信点兵问题:相传汉高祖刘邦问大将军韩信统御士兵多少,韩信答道:每3人一列余1人,5人一列余2人,7人一列余4人,13人一列余6人…….刘邦听后茫然而不知其数,你能说出有多少士兵吗?探究活动一:先解决一个小问题:求整除3余1,整除5余2,整除7余4的最小自然数1、分析问题:利用数学知识,找出题目已知什么,求什么。设所求的数X,则X满足X除以3余1,X除以5余2,X除以7余4,则记下x2、设计算法:根据已知与未知之间的关系写出求解问题的步骤。

(1)令X为1(2)如果x/3余1,x/5余2,x/7余4,则记下x。

(3)如果算出则写出答案

(4)否则x=x+1,跳转到2穷举法用人工计算,得出结果是多少?开始X=x+1结束x/3余1,x/5余2,x/7余4是否X=1输出x韩信点兵流程图开始N=1N被3、5、7整除后余数为2、3、2输出N结束N=N+1NY4、已知长方体的长宽高,求长方体的全面积和体积5、输入一个数判断是否是偶数,如果是输出零,不是则输出16、编写一个一元二次方程的求解程序,判断方程是否有根,如果有根则输出根的值,如果没有则输出“此方程无实数根”7、在计算机中输入AB的值,然后将AB的值交换后输出PrivateSubCommand1_Click()ConstPIAsSingle=3.14DimrAsSingle,sAsSingler=InputBox("r=","输入半径")s=PI*r*rl=2*PI*rPrint“圆的面积s=”;s;“圆的周长l=”;lEndSub1:编程求解半径为R的圆的周长L和面积S。2:鸡兔同笼问题。PrivateSubCommand1_Click()DimxAsInteger,yAsInteger,aAsInteger,bAsIntegera=InputBox("a=","输入头数")b=InputBox("b=","输入脚数")x=2*a-b/2y=b/2-aPrint"鸡数X=";x,"兔数y=";yEndSubPrivateSubCommand1_Click()DimaAsSingle,bAsSingle,hAsSingle,sAsSingle,vAsSinglea=InputBox("a=","输入长方体的长")b=InputBox("b=","输入长方体的宽")h=InputBox("h=","输入长方体的高")s=2*(a*b+a*h+b*h)v=a*b*hPrint"长方体的面积=";s,"长方体的体积=";vEndSub4、已知长方体的长宽高,求长方体的全面积和体积PrivateSubCommand1_Click()DimxAsintrgerx=InputBox(“x=","输入x的值")Ifint(x/2)=x/2thenPrint0ElsePrint1EndifEndSub5、输入一个数判断是否是偶数,如果是输出零,不是则输出1PrivateSubCommand1_Click()DimaAsSingle,bAsSingle,cAsSingle,x1AsSingle,x2AsSinglea=InputBox("a=","输入二次项系数")b=InputBox("b=","输入一次项系数")c=InputBox("c=","输入常数项")Ifb^2-4*a*c>=0Thenx1=(-b+Sqr(b^2-4*a*c))/(2*a)x2=(-b-Sqr(b^2-4*a*c))/(2*a)Print"x1=";x1,"x2=";x2ElsePrint"此方程无实数根"EndIfEndSub6、编写一个一元二次方程的求解程序,判断方程是否有根,如果有根则输出根的值,如果没有则输出“此方程无实数根”d=b^2-4*a*cIfd>=0thenX1=(-b+Sqr(d))/(2*a)X2=(-b-Sqr(d))/(2*a)

8、交换AB的值PrivateSubCommand1_Click()DimaAsSingle,bAsSingle,cAsSinglea=InputBox("a=","输入a的值")b=InputBox("b=","输入b的值")c=bb=aa=cPrint"a=";a,"b=";bEndSub9、反向输出三位数或反向输出4位数PrivateSubCommand1_Click()DimxAsInteger,x1AsInteger,x2AsInteger,x3AsInteger,yAsIntegerx=InputBox("X=","输入")x1=x\100x2=(x-x1*100)\10x3=x-x1*100-x2*10y=x3*100+x2*10+x1Print"y=";yEndSub10、

某图书城书籍促销,一次购买100元以上书籍8折,100元以下9折程序。PrivateSubCommand1_Click()DimXAsSingle,YAsSingleX=InputBox("X=","输入钱数")IfX>=100ThenY=X*0.8ElseY=X*0.9EndIfPrint"折后钱数Y=";YEndSub11求101+102+103+104+…+1001的和。12求1*6*11*……*46的积。PrivateSubCommand1_Click()S=0Fori=101to1001step1S=S+iNextiEndsubPrivateSubCommand1_Click()S=1Fori=1to46step5S=S*iNextiEndsub程序复习小口诀,让你轻松写程序例1:编程求解半径为R的圆的周长L和面积S。顺序结构PrivateSubCommand1_Click()做计算用顺序输入已知数据给出计算公式输出计算结果

r=InputBox("r=","输入半径")

s=3.14*r*rL=2*3.14*r

Print“圆的面积s=”;s;“圆的周长l=”;lEndSub例2、

某图书城书籍促销,一次购买100元以上书籍8折,100元以下9折程序。选择结构EndIfEndSub做判断用选择输入判断数据用IF给条件为真执行THEN为假执行ELSE最后莫忘ENDIFX=InputBox("X=","输入钱数")ElseY=X*0.9Print"折

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论