FORTRAN 90实验(3)

2019-04-23 15:08

实验8 字符型数据的处理与派生类型的应用

1.下面程序的功能是从键盘输入一个长度不超过20的字符串STR,统计其中大写字母A的个数N。在标注行有错,请改正。 PROGRAM EXAM IMPLICIT NONE

CHARACTER(LEN=20)::STR INTEGER::I,N

READ '(I20)',STR !<==ERROR1 N=1 !<==ERROR2 DO I=1,20

IF(STR(I,I)='A') N=N+1 !<==ERROR3 END DO

PRINT '(1X,I6.2)',N END PROGRAM EXAM ERROR1处正确的语句是: ERROR2处正确的语句是: ERROR3处正确的语句是:

2.编写程序:

⑴从键盘任意输入10个长度不超过10的字符串,编程,按字典的次序输出这些字符串。 ⑵编程输出下面图形:

1 121 12321 1234321 123454321

⑶假设一个班级有10名学生,试建立一个学生成绩表,记录每个学生的学号、姓名、和五门课程的成绩,编程求出每个学生的总分,并按照总分从高分到低分输出该班级学生成绩表和各门课程的平均分。输出格式为: 名次 1 ? 10 姓名 ? ? ? 成绩1 ? ? ? 成绩2 ? ? ? 成绩3 ? ? ? 成绩4 ? ? ? 成绩5 ? ? ? 总分 ? ? ? 平均分 ? ? ?

1. READ’(A20)’,STR

N=0

IF(STR(I:I)==’A’) N=N+1 2 PROGRAM EXAM

IMPLICIT NONE

CHARACTER(LEN=10),DIMENSION(10)::STR CHARACTER(LEN=10)::T INTEGER::I,J

PRINT*,”…………………………….” READ*,STR DO I=1,9 DO J=1,10-I

IF(STR(J)> STR(J+1)) THEN T=STR(J)

STR(J)= STR(J+1) STR(J+1)=T

END IF END DO END DO

PRINT*,”……………………..” PRINT ‘(1X,10(A,2X))’,STR END PROGRAM EXAM

3. PROGRAM EXAM

IMPLICIT NONE

CHARACTER(LEN=9)::LINE INTEGER::I,J,K DO I=1,5 K=1

DO J=6-I,5

LINE(J:J)=ACHAR(K+48) K=K+1 END DO K=I-1

DO J=6,4+I

LINE(J:J)=ACHAR(K+48) K=K-1 END DO

PRINT*, LINE END DO

END PROGRAM EXAM

实验报告9

1.下面程序的功能是用超载赋值号的方法,编写一个程序,使得一个逻辑型的值能够直接赋给一个整型变量。如执行语句:I=L时(其中I是整型,L是逻辑型),若L值为.FALSE.则I的值为0,若L值为.TRUE.则I的值为1。请在画线处填空,以完成题目的要求。 程序如下: MODULE I_L

INTERFACE ___ASSIGNMENT(=)__ _______ MODULE PROCEDURE FZ END INTERFACE CONTAINS

SUBROUTINE FZ(I,L)

INTEGER,INTENT(OUT)::I LOGICAL,INTENT(IN)::L

IF_(L) THEN___ _____ I=1 ELSE I=0 END IF

END SUBROUTINE FZ END MODULE I_L PROGRAM MAIN

USE_I_L____ ___ IMPLICIT NONE INTEGER::I,J I=.TRUE. J=.FALSE. PRINT *,I,J

END PROGRAM MAIN

2.编写一个交换任意两个变量值的类属过程,其变量类型可以整型或字符型。 MODULE 3WAP_MODULE TEMP=A;a=b;b=temp IMPLZCZT NONE END SUBROUTINE SWAP_REAL INTERFACE 3WAP END MODULE SWAP_ MODULE MODULEPROCEDURE3WAP_INT,3WAP_PROGRAM TEST_SWAP REAL USE SWAP_ MODULE END INTERFACE REAL::X=1.1,Y=2.2 CONTAINS INTEGER::I=1,J=2 SUBROUTINE SWAP_INT(A,B) CALL SWAP(X,Y) INTEGER::A,B,TEMP PRZNT*X,y END SUBROUTINE SWAP_INT CALL SWAP(I,J) SUBROUTINE SWAP_REAL(A,B) PRINT*,I,T REAL::A,B,TEMP END PROGRAM TEST_SWAP

实验报告10

1.下面程序是用指针的方法实现将整型变量A、B的内容互换。在标注行有错,请改正。 程序如下:

PROGRAM EXAM1 IMPLICIT NONE

INTEGER::A,B,C !<==ERROR1

REAL,POINTER::P1,P2,P3 !<==ERROR2 READ *,A,B C=B P1=>A P2=>B

P3=B !<==ERROR3 PRINT *,A,B P2=P1 P1=P3

PRINT *,A,B

END PROGRAM EXAM1

ERROR1处正确的语句是:INTEGER,TARGET::A,B,C ERROR2处正确的语句是:INTEGER,POZNTER::P1,P2,P3 ERROR3处正确的语句是:P3=>C

2.运行下面程序: PROGRAM EXAM2 IMPLICIT NONE

INTEGER,TARGET::A=1,B=3 INTEGER,POINTER::PA,PB,T PA=>A;PB=>B

T=>PA;PA=>PB;PB=>T PRINT 100,PA,PB PRINT 100,A,B

100 FORMAT(1X,2I4) END PROGRAM TEST5 结果为:3 1 1 3

3.编写程序:

⑴ 用递归方法求FIBONACCI序列。

⑵ 用递归方法求2 的值(n为大于0的整数)。 ⑶ 用递归方法求N阶勒让德多项式的值。递归公式为:

n?1?pn(x)??x?((2n?1)?x?p(x)?(n?1)?p(x))/nn?1n?2?(1)RECUSZUE FUVCTION FIB(N) RESULT (FIB-RES)

INTEGER , INTENT(2N)::N REAL::FIB-RES IF(N<=2) THEN FIB-RES=1 ELSE

FIN-RES=FIB(N-1)+FIB(N-2) EDN IF

END FUNCTZON PROGRAM EXAM IMPLICIT NONE INTERFACE

RESURSZVE , FUNCTION FIB(N) RESULT (FIB-RES) INTEGER, INTENT(2N)::N REAL::FIB-RES END INTERFACE INTEGER::N,I READ*,I DO I=1,I N=1

PRINT*,FIB(N) EDN DO

END PROGRAM EXAM

(2)PROGRAM EXAM IMPLICIT NONE INTERFACE

RECURSIVE FUNCTION XN(N) RESULT(RES) INTEGER , INTEN(2N)::n REAL ::RES

END FUNCTION END INTERFACE INTEGER::N

PRINT*,’输入N的值’ READ*,D

PRINT*,’I的N次方为:’ PRINT*,XN(N)

n?0n?1 n?1


FORTRAN 90实验(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学经济学考试题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: