资源描述
四
工程分析程序设计 上机作业(四)
结构化编程
上机目的:练习使用选择结构和循环结构编制程序。
1、 求y值,x由键盘输入。
PROGRAM MAIN
IMPLICIT NONE
REAL X,Y
PRINT*,'请输入X值'
READ*,X
IF (X>=0.AND.X<10) THEN
Y=X
ELSEIF (X>=10.AND.X<20) THEN
Y=X**2+1
ELSEIF (X>=20.AND.X<30) THEN
Y=X**3+X**2+1
ELSE
PRINT*,'X不在取值范围内'
END IF
PRINT*,'Y值为:',Y
END
2、 输入4个数A,B,C,D,按由大到小的顺序打印出来。
PROGRAM MAIN
IMPLICIT NONE
REAL A,B,C,D,T
REAL::E(4)
INTEGER I,J
PRINT*,'请输入四个数:'
READ*,A,B,C,D
E(1)=A
E(2)=B
E(3)=C
E(4)=D
DO I=1,3
DO J=I+1,4
IF (E(I)>E(J)) THEN
T=E(I)
E(I)=E(J)
E(J)=T
END IF
END DO
END DO
PRINT*,E
END
3、 编写一个子程序,判断一个整数是否素数。
PROGRAM MAIN
IMPLICIT NONE
INTEGER X,SS
PRINT*,'请输入一个整数:'
READ*,X
CALL SUSHU(X,SS)
CONTAINS
SUBROUTINE SUSHU(A,SS)
IMPLICIT NONE
INTEGER I,A,B,SS,K
K=0
DO I=2,A-1
B=MOD(A,I)
IF (B==0) THEN
K=K+1
END IF
END DO
IF (K==0) THEN
PRINT*,'是素数'
ELSE
PRINT*,'不是素数'
END IF
END SUBROUTINE
END
4、 利用上一编程结果,对1000以内的所有偶数验证哥德巴赫猜想。即:对于大于2的任一偶数,先分解为两个奇数之和,然后验证第一个奇数是否素数,如果是,再验证第二个奇数是否素数,如果两个奇数都是素数,则输出结果。(要求给出所有把偶数分解成两个素数之和的等式)。并统计,每个偶数可以分解的等式个数(两个素数互换位置的不算一个独立的结果),研究随着偶数增大,分解的等式个数的变化规律。
PROGRAM MAIN
IMPLICIT NONE
INTEGER I,x,y,SS,N
DO I=2,1000,2
N=0
DO X=1,I/2,2
Y=I-X
CALL SUSHU(X,SS)
IF (SS==0) THEN
CALL SUSHU(Y,SS)
IF (SS==0) THEN
PRINT*,I,X,Y
N=N+1
END IF
END IF
END DO
PRINT*,'共有N种',N
END DO
CONTAINS
SUBROUTINE SUSHU(A,SS)
INTEGER J,A,B,SS,K
K=0
DO J=2,A-1
B=MOD(A,J)
IF (B==0) THEN
K=K+1
END IF
END DO
IF (K==0) THEN
SS=0
ELSE
SS=1
END IF
END SUBROUTINE
END
5、 输入一个自然数,进行因子分解并输出结果,例如24=1×2×2×2×3。(输出格式不限)。
PROGRAM MAIN
IMPLICIT NONE
INTEGER X,I,A,K,B,J
PRINT*,'请输入一个自然数:'
READ*,X
B=X
DO I=1,B
DO J=2,X
A=MOD(X,J)
IF (A==0) THEN
X=X/J
PRINT*,J
EXIT
END IF
END DO
END DO
END
展开阅读全文