fortran实验八 数组(一)

上传人:206****923 文档编号:42179145 上传时间:2018-06-01 格式:DOC 页数:9 大小:81.50KB
返回 下载 相关 举报
fortran实验八  数组(一)_第1页
第1页 / 共9页
fortran实验八  数组(一)_第2页
第2页 / 共9页
fortran实验八  数组(一)_第3页
第3页 / 共9页
fortran实验八  数组(一)_第4页
第4页 / 共9页
fortran实验八  数组(一)_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《fortran实验八 数组(一)》由会员分享,可在线阅读,更多相关《fortran实验八 数组(一)(9页珍藏版)》请在金锄头文库上搜索。

1、-57-实验八实验八 数组(一)数组(一)数组是 FORTRAN90 最重要的数据类型之一。许多实际问题往往涉及大量的数据,数组 是存储和处理大批量数据的有效工具,有些问题如果不用数组求解将难以解决。 数组是类型相同且有序的一组数据,涉及到这类数据均可考虑使用数组。 本次实验是学习和掌握数组声明、数组元素引用、数组输入输出、数组赋初值的一次 系统实验活动。通过本次实验,能够设计和编写比较简单的数组应用程序。 一实验目的实验目的 1.1. 理解数组概念。 2.2. 掌握数组声明、数组元素引用、数组输入输出和数组赋初值的使用规则。 3.3. 掌握数组构造器和隐含 DO 循环概念和使用。 4.4.

2、掌握数组逻辑结构、存储结构及其相互关系。 5.5. 掌握设计和编写简单数组应用程序的基本方法和技能。 二实验内容二实验内容 1 1 1 1问题描述问题描述 已知 10 个正整数:10、55、25、70、45、15、25、85、45、35,输入一个待删除整数, 在 10 个整数中查找,若有该整数,则将其删除,输出删除前后这组整数。编写程序实现之。 2 2算法设计算法设计 已知的 10 个正整数符合数组定义,用一维整型数组 num 保存,用数组构造器赋初值。 待删除整数 n 从键盘输入。 算法基本思想:输入待删除整数,从第 1 个数组元素 num(1)开始,依次用 n 去比较是 否相等,若相等,则

3、查找成功,将该数组元素删除(在该数组元素位置设置删除标志),直 到 q 全部数组元素检查比较完毕。输出删除前后整数。因整数为正数,所以删除标志可用- 1 表示。 算法: (1) 输入待删除整数 n; (2) 输出删除前 10 个整数; (3) 用 n 依次在数组元素 num(1)、num(2)、 、num(10)中查找,查找成功置删除标 志; (4) 输出删除后数据。 (5) 结束 算法第 3 步可用“计数型”循环结构和 DO 循环语句实现。 3 3程序编写程序编写 设计和编写程序如下(不完整,请在下划线空白处填充正确内容):!班级:?!姓名:?!日期:?!数据查询PROGRAM proble

4、m01-58-INTEGER : num(10)=(/12,56,85,19,35,10,89,64,78,91/),nPRINT*, 请输入 100 以内的一个正整数:READ*,nPRINT*,删除前数据:WRITE(*,100) (num(I), i=1,10 )DO I=1,10IF (n=num(I) num(I)=-1ENDDOPRINT*PRINT*,删除后数据:DO I= 1,10 IF (num(i)/=-1) WRITE(*,100) num(I)ENDDOPRINT*100 FORMAT(I3,2X)END 4 4实验要求实验要求 分析问题,理解算法和程序,将程序填写完整

5、。 掌握数组声明、数组构造器、隐含 DO 循环基本概念和使用规则。 在 D 盘上创建新工作区:shiyan08 和新项目:xm81。 在项目 xm81 内创建源程序文件:xm81.f90,同时在文件中编辑输入给定程序。 在项目 xm81 内编译、构建、运行、调试程序。 将输入数据和输出结果以注释形式编辑输入到源程序文件 xm81.f90 末尾。 改写程序,提高通用性(正整数个数不定,且从键盘输入,数组元素最大个数 max 通 过 PARAMETER 语句定义)。运行输入几组不同数据,获得不同运行结果。 5 5实验步骤实验步骤 分析问题,理解算法和程序,完成程序填空,得到正确完整程序。 启动软件

6、开发环境 Microsoft Developer Studio。 在 D 盘上创建新工作区:shiyan08。 在工作区 shiyan08 内创建新项目:xm81。 在项目 xm81 内创建源程序文件 xm81.f90,编辑输入源程序文本。 编译、构建、运行、调试程序。运行时输入数据 45,得到输出结果。 将输入数据和输出结果以注释形式编辑输入到源程序文件末尾。 在工作区 shiyan08 内创建新项目:xm811,在新项目内创建源程序文件 xm811.f90, 编辑输入已改写程序。编译、构建、运行、调试程序。输入自定的几组数据,获得输出结 果。 三实验内容三实验内容 2 2 1 1问题描述问

7、题描述输入一个班学生(人数40)的学号和 3 门课(英语、数学、物理)成绩,计算每个学生平 均成绩、每门课平均成绩和三门课平均成绩,统计高于每门课平均成绩和三门课平均成绩-59-的学生人数和占总人数比例,输出统计结果。编写程序实现之。 2 2算法设计算法设计 问题中涉及一个班级的学生学号、3 门课成绩和学生平均成绩,这些数据符合数组定义, 用五个数组存储这些数据。定义以下五个数组: numbers:字符型数组,存储学生学号。从键盘输入。 englishs:整型数组,存储英语成绩。 maths:整型数组,存储数学成绩。从键盘输入。 physics:整型数组,存储物理成绩。从键盘输入。 avera

8、ges:实型数组,存储学生平均成绩。计算获得。 计算获得英语平均成绩 english_av、数学平均成绩 math_av、物理平均成绩 physic_av 和三门课平均成绩 average,均为实型。 从键盘输入学生人数 n。 统计高于英语平均成绩人 n1 和比例 p1,高于数学平均成绩人 n2 和比例 p2,高于物理 平均成绩人 n3 和比例 p3,高于三门课平均成绩人 nn 和比例 pp。 求解算法比较简单,设计算法如下: (1) 输入学生人数 n; (2)采用“计数型”循环结构输入学生学号和三门课成绩,同时计算学生平均成绩,统 计英语、数学、物理课总成绩; (3) 计算英语、数学、物理课

9、平均成绩和三门课平均成绩; (4) 采用“计数型”循环结构统计高于平均成绩人数及比例 (5) 输出统计结果 (6) 结束 3 3程序编写程序编写 设计和编写程序如下(不完整,请在下划线空白处填充正确内容): !班级:?!姓名:?!日期:?!统计人数及比例PROGRAM mainPARAMETER (max=40)CHARACTER*5 : numbers(max)INTEGER,DIMENSION( ) : englishs,maths,physicsREAL : averages(max),english_av,math_av,physic_av,average,sum1=0,sum2=0,

10、sum3=0INTEGER(1) : n,n1=0,n2=0,n3=0,nn=0REAL : p1,p2,p3,ppPRINT*,请输入学生人数:READ*,nPRINT*,请输入,n, 名学生的学号、英语成绩、数学成绩和物理成绩。PRINT*,数据之间用空格间隔。学号为长度为 5 的字符串,用引号括住。DO I=1,n-60-READ*,numbers(I),englishs(I),maths(I),physics(I)averages(I)=( )/3.0sum1=sum1+englishs(I)sum2=sum2+maths(I)sum3= english_av=sum1/nmath_a

11、v= physic_av=sum3/naverage=(english_av+math_av+physic_av)/ DO I=1,nIF ( englishs(I)english_av ) n1=n1+1IF ( ) n2=n2+1IF (physics(I)physic_av) IF (averages(I)average) nn= ENDDOp1=REAL(n1)/np2= /np3=REAL(n3)/ pp= (nn)/nWRITE(*,100) 英语,n1,p1*100WRITE(*,100) WRITE(*,100) 物理,n3,p3*100WRITE(*,100) 三门课,nn,

12、pp* 100 FORMAT(1X, 高于,A, 平均成绩的学生人数有,I2, 人,占总人数比例,F4.1, %)END 4.4. 实验要求实验要求 分析问题,理解算法和程序,完成程序填空,得到正确完整程序。 在工作区 shiyan08 内创建新项目:xm82。 在项目 xm82 内创建源程序文件:xm82.f90,同时在文件中编辑输入给定程序。 在项目 xm82 内编译、构建、运行、调试程序。 将输入数据和输出结果以注释形式编辑输入到源程序文件 xm82.f90 末尾。 改写程序,提高程序通用性(将英语平均成绩、数学平均成绩、物理平均成绩和三门 课平均成绩采用数组保存,将高于平均成绩人数采用

13、数组保存,统计高于平均成绩人数可 用循环结构实现)。 5 5实验步骤实验步骤 分析问题,理解算法和程序,在程序下划线空白处填写正确内容。 在工作区 shiyan08 内创建新项目:xm82。 在项目 xm82 内创建源程序文件 xm82.f90,编辑输入源程序文本。 编译、构建、运行、调试程序。-61-运行程序,输入学生人数:5 和 5 名学生的学号、三门课成绩数据:02201 45 70 8502202 75 65 6002203 55 85 5002204 85 60 7002205 60 90 45运行结束,得到输出结果。 将输入数据和输出结果以注释形式编辑输入到源程序文件末尾。 在工作

14、区 shiyan08 内创建新项目:xm821,在新项目内创建源程序文件 xm821.f90, 编辑输入已改写程序。编译、构建、运行、调试程序。输入自定数据,获得输出结果。 四实验内容四实验内容 3 3 1 1问题描述问题描述输入 4 个整数放在数组中,数组元素向左循环移位 1、2、3、4 个位置,第 1 个元素移动 到最后一个元素,结果放在数组中,输出移位前后的结果数据。如输入:2、5、8、3,输出 结果为下面方阵所示。编写程序实现之。2 5 8 35 8 3 28 3 2 53 2 5 82 5 8 32 2算法设计算法设计 问题中涉及 4 个整数,符合数组定义,用一个整型数组 X 保存这

15、些整数,便于处理。 通过“计数型”循环完成循环移位,先从第 1 个元素 X(1)开始移位,直到最后一个元 素。第 1 个元素移位时先移动到一个临时变量 t 中,等到最后一个元素移位后在将临时变 量 t 中值赋予最后元素。 分析问题,自行设计算法和绘制框图。 3 3程序编写程序编写 设计和编写程序如下(含有若干错误,请查找并改正错误):!班级:?!姓名:?!日期:?PROGRAM mainDATA(n=4)INTEGER : X(n)PRINT*,请输入,n,个整数:READ *,(X(j),j=1,n)PRINT 100,X(j),j=1,nDO i=1,nt=X(n)DO j=n,1-62-X(j-1)=X(j)ENDDOX(i)=tPRINT 100,XENDDO100 FORMAT(1X,(F4,1X)END 4.4. 实验要求实验要求 分析问题,设

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号