资源简介 (共35张PPT)算法及其实现自然语言输入变量x,y和z的值比较x和y。如果x大于y,则x存入以max命名的存储单元中;否则,y存入max。比较z和max。如果z大于max,则将z值存入max.输出结果max。流程图处理框( )输入、输出框( )判断框( )连接框( )流程线( )开始、结束框( )开始输入变量x,y和zX大于yMax=xMax=yZ大于maxMax=z输出max结束YNYN计算机语言INPUT x,y,zIF x>yTHEN max=xElse max=yEND IFIF z>maxTHEN max=zEND IFPRINT maxEND算法设计与分析的基本方法一、枚举法列举出所有的可能性,然后依次枚举,直到求得正解。百鸡百钱问题鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,问鸡翁、母、雏各几何?设xyz分别代表公鸡、母鸡和小鸡的数量,根据题意,列出方程为X+y+z=1005x+3y+z/3=100开始结束x=1y=1z=100-x-yx=x+1y=y+15x+3y+z/3=100 y<=33x<=20输出x,y,zYYYNNN二、解析法用解析的方法找出表示问题的前提(已知)条件与所求结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。出租车计价假设出租车的计价情况是: 起步价3公里10元,3公里以上到10公里,每公里2元,10公里以上每公里3元,并且最后金额保留到元,小数部分四舍五入到元。用解析算法,先写出路程x与价格f(x)的数学表达式f(x)= 10 (0f(x)=10+2(x-3) (3f(x)=10+14+3(x-10) (x>10)作业:同步练习p40-43三、排序算法排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列。冒泡排序排序算法主要分为:选择排序(一)常见变形代码举例1.VB程序(冒泡排序已知n=6)For i=1 To n-1For j=n to i+1 step -1if a(j)t = a(j):a(j)=a(j-1):a(j-1)=tEnd ifNext jNext i例:a(1)=6,a(2)=9,a(3)=8,a(4)=3,a(5)=5,a(6)=1经过_______趟后数据就已经有序。2.VB程序(冒泡排序变形已知n=6)For i=1 To n-1For j=1 to n-iif a(j)t = a(j):a(j)=a(j+1):a(j+1)=tEnd ifNext jNext i例:a(1)=6,a(2)=9,a(3)=8,a(4)=3,a(5)=5,a(6)=1经过_______趟后数据就已经有序。冒泡排序及优化1.有以下VB程序段For i=1 to 3For j=i to 5if a(j)>a(j+1) thent = a(j):a(j)=a(j+1):a(j+1)=tend ifNext jList1.AddItem str(a(i))Next ia(1)到a(6)的初始值依次为“8 6 5 7 9 3”,经过该程序段“加工”后,列表框List1中显示的是( )A. 8 7 6 B. 8 7 9 C. 6 5 3 D. 5 6 72.有以下VB程序段For i=1 to 2For j=i to 5-iif a(j)>a(j+1) thent = a(j):a(j)=a(j+1):a(j+1)=tend ifNext jNext i数据“56,23,78,11,8”依次存放在数组a(1)到a(5)中,执行下列VB程序段后,数组a(1)到a(5)中的数据依次为( )A. 8, 11, 23, 56, 78 B. 23, 11, 8, 56, 78C. 11, 8, 23, 56, 78 D. 8 , 11, 56, 23, 78冒泡排序及优化冒泡排序及优化3.有以下VB程序段bottom=6:i = 1:r = val(Text1.text)Do While i < rFor j=bottom to i+1 step -1if a(j)>a(j-1) thent = a(j):a(j)=a(j-1):a(j-1)=tend ifNext ji=i+1For j=i To bottom -1if a(j)t = a(j):a(j)=a(j+1):a(j+1)=tend ifNext jbottom = bottom -1Loop数组元素a(1)到a(6)的值依次为“73、56、28、61、44、92”,若在文本框Text1中输入“2”,则经过该程序段“加工”后,数组元素a(1)到a(6)的值依次为( )A.73,61,56,92,44,28B.92,73,56,61,44,28C.92,73,61,56,28,44D.92,73,61,56,44,281.VB程序(选择排序已知n=6)For i=1 To n-1k = iFor j=i+1 to nif a(j)Next jIf i <> k thent=a(i):a(i)=a(k):a(k)=tEnd ifNext i例:a(1)=2,a(2)=3,a(3)=8,a(4)=1,a(5)=7,a(6)=9经过_______趟后数据就已经有序。选择排序2.VB程序(选择排序变形已知n=6)For i=1 To n-1k = iFor j=i+1 to nif a(j)Next jt=a(i):a(i)=a(k):a(k)=tNext i例:a(1)=2,a(2)=3,a(3)=8,a(4)=1,a(5)=7,a(6)=9经过_______趟后数据就已经有序。选择排序选择排序及改进1.有以下VB程序段For i=5 to 4 step -1k=iFor j=6-i to 1 step -1if a(j)>a(k) then k=jNext jIf i <> k thent=a(i):a(i)=a(k):a(k)=tEnd ifNext i数组元素a(1)到a(5)的依次为“41,66,70,83,31”,经过该程序段”加工“后,数组元素a(1)到a(5)的依次为( )A. 31,41,66,83,70 B. 83,70,66,41,31C. 83,66,70,41,31 D. 31,41,66,70,83选择排序及改进1.有如下VB程序a(1)=44:a(2)=36:a(3)=58:a(4)=65:a(5)=12b=0:c=0For i=1 To 4k = iFor j=i+1 to 5if a(j)Next jIf i <> k thent=a(i):a(i)=a(k):a(k)=tc=c+1End ifNext iText1.Text = Str(b)+Str(c)该程序段执行后,文本框Text1显示的内容是( )A.53 B.44 C.43 D.343.某VB程序段如下:i=1:s =” ”Do While i <=3k=i:j=i+1Do While j<=8If a(j)j = j+1LoopIf i <> k Thent=a(i):a(i)=a(k):a(k)=tn=n+1End ifs=s+Str(a(i)):i=i+1loopLabel1.Caption = Str(n)+ “:”+s数组a(1)到a(8)依次为:“16,19,8,20,4,12,6,15”,程序运行后,标签中显示的值为( )A.2:4 6 8 B.2:8 6 4 C.3:4 6 8 D.3:8 6 4 展开更多...... 收起↑ 资源预览