Fortran90选择结构程序编程作业

更新时间:2024-05-20 03:35:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

选择结构程序设计作业

前面学习了比较简单的顺序结构程序设计,在顺序结构程序中每条语句都是按书写顺序依次顺序执行。使用顺序结构编写程序,只能求解逻辑关系非常简单的问题,可是许多实际问题,往往具有复杂的逻辑关系,仅使用顺序结构难以编写程序,需要使用更复杂的程序结构,如选择结构(分支结构)。选择结构是求解复杂问题和体现程序智能化的重要程序结构。

FORTRAN90提供了多种用于实现选择结构的语句,如:逻辑IF语句、块IF语句、多支块IF语句和SELECT语句,其中SELECT语句是FORTRAN90新引入的用于实现块CASE结构的语句,它与多支块IF语句在功能上非常相似,但在某些情况下,使用SELECT语句比使用多支块IF语句更简洁和高效。

本实验是学习和掌握关系表达式、逻辑表达式、选择结构语句、选择结构程序设计方法的一次系统实验活动。通过本次实验,能设计和编写简单的具有选择结构的程序,为学习和掌握更复杂的程序结构和程序设计方法奠定基础。

一. 实验内容1

1.问题描述

某高校实行学分制,学分制规定:成绩大于等于60分可获得3个学分和3个绩点,否则不能获得学分和绩点,同时成绩大于等于80分可增加2个绩点。输入学生成绩,计算并输出学生获得的学分和绩点。编写程序实现之。

2.问题分析

已知:成绩cj,且要求从键盘输入。成绩数据类型为整型。 求:学分xf和绩点jd。xf和jd数据类型为整型。

是否获得学分,需通过关系表达式cj≥60判定。是否获得基础绩点,需通过关系表达式cj≥60判定。是否增加绩点,需通过关系表达式cj≥80判定。

不同的成绩,需要进行不同的计算,得出不同结果。求解该问题显然需要使用选择结构。求解思想和方法可多种多样。可将学分和绩点分别独立计算,也可先按关系表达式cj≥60计算学分和基础绩点,然后再通过关系表达式cj≥80增加绩点。我们采用后者。

通过分析,设计算法,绘制框图,如图5-1所示。选择结构为单边选择结构。 3.程序编写

设计和编写程序如下(不完整,在下划线空白处填充正确内容):

!班级:??? !姓名:??? !时间:??? !计算学分和绩点 PROGRAM example

-1-

INTEGER(1) :: cj,xf=0,jd=0

PRINT*, '请输入一个学生成绩(整数):' READ*,cj

IF ( ) THEN ENDIF

IF ( ) jd=

PRINT*, '该学生获得', xf, '学分。' PRINT*, '该学生获得', jd, '绩点。' END

计算学分:xf=3 计算绩点:jd=3 真 输入成绩:cj 假 初始化:xf=0; jd=0 开始 cj≥60 4.实验要求 真 假 cj≥80 ? 对问题进行详细分析,理解所给定算法和程序的基本思想,可自行设计和编写程序。 增加绩点:jd=jd+2 ? 掌握关系表达式、逻辑表达式、逻辑IF语句和块IF语句的语法规则和使用要求。

输出学分xf和绩点jd ? 分三次运行程序,分别输入数据:45、75、

95,得到输出结果。

结束 ? 将输入数据和输出结果以注释形式编辑输入

图5-1 程序框图 到源程序文件末尾。

二.实验内容2

1.问题描述

计算下面分段函数的值,编写程序实现之。

?2x x<0 ?sinx?e ??y??2 x=0 ?x? x>0 ?21?x?

2.问题分析

对于分段函数的计算,要根据变元不同的取值范围来确定执行哪一段计算公式。 已知:函数变元x,且要求从键盘输入。变元x数据类型为单精度实型。 求:函数值y。函数值y数据类型为单精度实型。

当满足条件x<0,则按公式一计算函数值y;当满足条件x=0,则按公式二计算函数值y;当满足条件x>0,则按公式三计算函数值y。该问题显然是一个判定问题,求解该问题需要使用选择结构实现。

该问题求解算法比较简单,通过问题分析,设计算法,绘制程序流程图,如图5-2所示。

-2-

选择结构为双边选择结构。程序可用逻辑IF语句、块IF语句或多支块IF语句实现。

开始 输入x的值 假 真 x < 0

假 真 x = 0 用公式一计算y

用公式二计算y 用公式三计算y

输出y的值

结束 图5-2 程序框图 3.程序编写

设计和编写程序如下(不完整,在下划线空白处填充正确内容):

!班级:??? !姓名:??? !时间:??? !计算分段函数的值 PROGRAM example REAL(4) :: x,y

PRINT*, '请输入x的值:' READ*, x IF (x<0) THEN ELSEIF ( ) THEN y=2 ELSE

END IF

PRINT *,'y=', y END

4.实验要求

? 对问题进行详细分析,理解所给定算法和程序的基本思想,完成程序填空,得到正确程序,亦可自行设计和编写程序。

? 掌握关系表达式、逻辑表达式、逻辑IF、基本块IF和多支块IF语句的语法规则和使用要求。

-3-

? 三次运行程序,分别输入数据:-5.8、0、5.8,得到输出结果。 ? 将输入数据和输出结果以注释形式编辑输入到源程序文件末尾。

-4-

本文来源:https://www.bwwdw.com/article/ymi7.html

Top