- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 9.5 数组应用举例 例3:折半查找。 只能对有序数列进行查找。 假设输入X=68,在如下数组中查找 10 17 20 22 31 44 51 59 68 73 89 95 120 133 137 MID TOP BOT * * 程序: Parameter(NA=15) Integer A(NA), Top, Bot, Mid, p, x Logical Find Data A $ /10,17,20,22,31,44,51,59,68,73,89,95,120,133,137/ Print*,Please Input X: Read(*,*) x Find=.false. Top=1 Bot=NA * * Do 10 while((Top.le.Bot) .and. (.not.Find)) Mid=(Top+Bot)/2 If(x.eq.A(Mid)) then Find=.true. print*, x, Has be found on, mid, th position. Else if(x.lt.a(mid)) then bot=mid-1 Else top=mid+1 Endif 10 continue If(.not.find) print*, x, Has not be found. 100 format(//1x,2(i3,a)) end * * 9.5 数组应用举例 例4:某次考试20个学生参加,考三门课程,请设计一程序输入每个学生的学号和三门课的成绩,再计算每个学生的总分和平均分,并按成绩优劣排序,最后打印出一张成绩单。 分析: ⑴采用怎样的数据结构 N(20)——学号 A(20,3)——20个学生三门课的成绩 SUM(20)——每个学生的总分(排序时用) SUM1(20)——每个学生的总分(输出时用) AVE(20)——每个学生的平均分 * * 9.5 数组应用举例 例三:某次考试20个学生参加,考三门课程,请设计一程序输入每个学生的学号和三门课的成绩,再计算每个学生的总分和平均分,并按成绩优劣排序,最后打印出一张成绩单。 分析: ⑵算法 输入 计算总分 和平均分 排序 输出 * * dimension n(20),a(20,3),sum(20),sum1(20),ave(20) read(*,*)(n(i),(a(i,j),j=1,3),i=1,20) do 10,i=1,20 sum(i)=0.0 do 15,j=1,3 sum(i)=sum(i)+a(i,j) 15 continue sum1(i)=sum(i) ave(i)=sum(i)/3.0 10 continue do 20 i=1,19 k=i+1 do 20 j=k,20 if(sum(i).lt.sum(j))then temp=sum(i) sum(i)=sum(j) sum(j)=temp endif 20 continue 输入 计算总分 和平均分 排序(对总分) 由大到小 * * print 40,I,NO,Q1,Q2,Q3,SUM,AVER do 30 i=1,20 do 30 j=1,20 if(sum(i).eq.sum1(j))then print 50,i,n(j),a(j,1),a(j,2),a(j,3), sum1(j),ave(j) endif 30 continue 40 format(1x,a1,4x,4(a2,6x),a3,5x,a4) 50 format(1x,i2,3x,i5,3x,5(f5.1,3x)) end 输出 * * 9.5 数组应用举例 课后练习题 P225:第一、三题。 * * 第十章 语句函数 * * 10.1 语句函数的概念 看右边的例子: X=1.0
文档评论(0)