Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

1

Programming Fundamentals(Fortran)
1. Program for Addition

01. Write a FORTRAN program to find the sum of 1 + 2 + 3 + ... + 100.

ISUM=0
K=1
10 ISUM=ISUM+K
K=K+1
IF(K.LE.100)GOTO 10
PRINT*,ISUM
STOP
END
OR (Using Do-Continue)

ISUM=0
K=1
DO 5 K=1,100
ISUM=ISUM+K
5 CONTINUE
PRINT*,ISUM
STOP
END

02. Write a FORTRAN program to find the sum of 1 + 2 + 3 + ... + N.


READ*,N
ISUM=0
K=1
10 ISUM=ISUM+K
K=K+2
IF(K.LE.N)GOTO 10
PRINT*,ISUM
STOP
END

03. Write a FORTRAN program to find the sum of 1 + 3 + 5 + ... + 99.

INTEGER SUM
SUM=0
K=1
4 SUM=SUM+K
K=K+2
IF(K.LE.99)GOTO 4
PRINT*,'THE SUM IS',SUM
STOP
END
OR (Using Do-Continue)

ISUM=0
DO 10 K=1,99,2
ISUM=ISUM+K
10 CONTINUE
PRINT 30,ISUM
30 FORMAT(1X,'THE SUM IS=',I6)
STOP
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


2

OR (Using Do-Enddo)
ISUM=0
DO K=1,99,2
ISUM=ISUM+K
ENDDO
PRINT*,ISUM
STOP
END
04. Write a FORTRAN program to find the sum of 1 + 3 + 5 + ... + N.
PRINT*,'ENTER THE VALUE OF N'
READ*,N
SUM=0
K=1
4 SUM=SUM+K
K=K+2
IF(K.LE.N)GOTO 4
PRINT*,SUM
STOP
END
05. Write a FORTRAN program to find the sum of 2 + 4 + 6 + ... + 100.
ISUM=0
K=2
20 ISUM=ISUM+K
K=K+2
IF(K.LE.100)GOTO 20
PRINT*,ISUM
STOP
END
OR (Using Do-Continue)
ISUM=0
DO 10 K=2,100,2
ISUM=ISUM+K
10 CONTINUE
PRINT*,'THE SUM IS',ISUM
STOP
END
𝟏 𝟏 𝟏
06. Write a FORTRAN program to find the sum of 𝟏 + 𝟑 + 𝟓 + ⋯ + 𝟐𝟏.
SUM=0
K=1
50 SUM=SUM+1.0/FLOAT(K)
K=K+2
IF(K.LE.21)GOTO 50
PRINT*,'THE SUM IS',SUM
STOP
END
07. Write a FORTRAN program to find the sum of 𝟏 + 𝟑 + 𝟑𝟐 + 𝟑𝟑 + ⋯ + 𝟑𝟏𝟗 .
ISUM=0
K=0
50 ISUM=ISUM+3**K
K=K+1
IF(K.LE.19)GOTO 50
PRINT*,'THE SUM IS',ISUM
STOP
END
Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268
3

08. Write a FORTRAN program to find the sum of 𝟏 + 𝒙𝟐 + 𝒙𝟑 + ⋯ + 𝒙𝒌 or ∑𝒌𝒊=𝟏 𝒙𝒊 .

PRINT*,'ENTER THE VALUE OF X & K'


READ*,X,K
SUM=0
I=0
10 SUM=SUM+X**I
I=I+1
IF(I.LE.K)GOTO 10
PRINT*,SUM
STOP
END

09. Write a FORTRAN program to find the sum of 𝟏 + 𝒙𝟐 + 𝒙𝟑 + ⋯ + 𝒙𝒏 or ∑𝒏𝒊=𝟏 𝒙𝒊 .

PRINT*,'ENTER THE VALUE OF X AND N'


READ*,X,N
INTEGER SUM
SUM=0
K=1
4 SUM=SUM+X**K
K=K+1
IF(K.LE.N)GOTO 4
PRINT*,SUM
STOP
END

10. Write a FORTRAN program to find the sum of 𝟏 + 𝒙𝟐 + 𝒙𝟑 + ⋯ + 𝒙𝒏 or ∑𝒏𝒊=𝟏 𝒙𝒊 .

PRINT*,'ENTER THE VALUE OF X AND K'


READ*,X,K
SUM=0.0
I=0
7 SUM=SUM+X**I
I=I+1
IF(I.LE.K)GOTO 7
PRINT*,SUM
STOP
END

11. Write a FORTRAN program, which will determine the value of  using the
𝝅𝟐 𝟏 𝟏
series 𝟔
= 𝟏 + 𝟐𝟐 + 𝟑𝟐 + ⋯ 1000 terms.

SUM=0.0
K=1
5 SUM=SUM+1.0/FLOAT(K**2)
K=K+1
IF(K.LE.1000)GOTO 5
PI=SQRT(6.0*SUM)
PRINT*,SUM,PI
STOP
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


4

12. Write a FORTRAN program, which will determine the value of  upto six
𝝅𝟐 𝟏 𝟏
decimal places using the series 𝟔
= 𝟏 + 𝟐𝟐 + 𝟑𝟐 + ⋯ 1000 terms.

SUM=0
K=1
5 SUM=SUM+1.0/FLOAT(K**2)
K=K+1
IF(K.LE.1000)GOTO 5
PI=SQRT(6*SUM)
PRINT 10,PI
10 FORMAT(1X,'THE VALUE OF PIE IS=',1X,F10.6)
STOP
END

13. Write a FORTRAN program to find the sum of 𝟏𝟐 − 𝟐𝟐 + 𝟑𝟐 − 𝟒𝟐 + ⋯ 100 terms.

ISUM=0
K=1
J=1
50 ISUM=ISUM+(K**2)*J
K=K+1
J=-J
IF(K.LE.100)GOTO 50
PRINT*,'THE SUM IS',ISUM
STOP
END

OR

ISUM=0
J=1
K=1
10 ISUM=ISUM+(K**2)*J
J=-J
K=K+1
IF(K.LE.100)GOTO 10
PRINT*,ISUM
STOP
END

14. Write a FORTRAN program to find the sum of 𝟏𝟎𝟎𝟐 − 𝟗𝟗𝟐 + 𝟗𝟖𝟐 − ⋯ − 𝟏𝟐 .
ISUM=0
K=100
J=1
50 ISUM=ISUM+(K**2)*J
K=K-1
J=-J
IF(K.GE.1)GOTO 50
PRINT*,'THE SUM IS',ISUM
STOP
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


5
𝟏 𝟏 𝟏
15. Write a FORTRAN program to find the sum of 𝟏 + (𝟏 + 𝟐) + (𝟏 + 𝟐 + 𝟑) + ⋯ +
𝟏 𝟏 𝟏
(𝟏 + 𝟐 + 𝟑 + ⋯ + 𝟏𝟎𝟎) . [SUM (SUM1+SUM2+SUM3+...+SUM100) IF-GOTO] P.260#59

SUM=0.0
I=1
10 SUM1=0.0
J=1
20 SUM1=SUM1+1.0/REAL(J)
J=J+1
IF(J.LE.I)GOTO 20
SUM=SUM+SUM1
I=I+1
IF(I.LE.100)GOTO 10
PRINT*,SUM
STOP
END
OR
SUM=0.0
DO J=1,100
DO K=1,J
SUM=SUM+1.0/REAL(K)
ENDDO
ENDDO
J=J+1
PRINT*,SUM
STOP
END
2. Program for Product
𝟐𝟒𝟔
16. Write a FORTRAN program to find the product of 𝟏𝟑𝟓
……… 11 terms.
PROD=1.0
K=1
2 PROD=PROD*FLOAT(2*K/(2*K-1))
K=K+1
IF(K.LE.11)GOTO 2
PRINT*,PROD
STOP
END
OR (Using Do-Continue)
PROD=1.0
DO 7 K=1,11,1
PROD=PROD*(FLOAT(2*K)/FLOAT(2*K-1))
7 CONTINUE
PRINT 20,PROD
20 FORMAT(1X,'THE PRODUCT IS=',F10.6)
STOP
END
OR
PROD=1.0
K=1
7 PROD=PROD*FLOAT(K+1)/FLOAT(K)
K=K+2
IF(K.LE.21)GOTO 7
PRINT*,PROD
STOP
END
Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268
6

Sum and Product Mixed


𝟏 𝟏 𝟏 𝟏 𝟏 𝟏
17. Write a FORTRAN program to find the product of (𝟏 + 𝟑) (𝟏 + 𝟑 + 𝟓) … (𝟏 + 𝟑 + 𝟓 + ⋯ + 𝟗𝟗).
[PROD (SUM1.SUM2.SUM3......SUM99) DO-CONTINUE] P.260#60
PROD=1.0
DO 10 I=1,99,2
SUM=0.0
DO 20 J=1,I,2
SUM=SUM+1.0/REAL(J)
20 CONTINUE
PROD=PROD*SUM
10 CONTINUE
PRINT*,PROD
STOP
END
OR (IF-GOTO)
PROD=1.0
I=1
10 SUM=0.0
J=1
20 SUM=SUM+1.0/REAL(J)
J=J+2
IF(J.LE.I)GOTO 20
PROD=PROD*SUM
I=I+2
IF(I.LE.99)GOTO 10
PRINT*,PROD
STOP
END
3. Fibonacci Program
18. The Fibonacci sequence 1, 1, 2, 3, 5, 8, 13, 21, ... is defined by
assuming the first two terms have the value 1 and each term afterwards
is the sum of the two previous terms. Write a FORTRAN program which
calculates and then prints the the first 50 terms of the Fibonacci
sequence. The output should have five numbers in each line.
DIMENSION N(40)
N(1)=1
N(2)=1
K=3
20 N(K)=N(K-1)+N(K-2)
K=K+1
IF(K.LE.50)GOTO 20
PRINT 2,(N(K),K=1,40)
2 FORMAT(5(3X,I10))
STOP
END
OR (Using DO-CONTINUE)
DIMENSION N(40)
N(1)=1
N(2)=1
DO 10 K=3,50
N(K)=N(K-1)+N(K-2)
10 CONTINUE
PRINT 20,(N(K),K=1,50)
20 FORMAT(5(2X,I9))
STOP
END
Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268
7

OR (Using Parameter)(IF-GOTO)
PARAMETER(I=50)
DIMENSION N(I)
N(1)=1
N(2)=1
K=3
5 N(K)=N(K-1)+N(K-2)
K=K+1
IF(K.LE.I)GOTO 5
PRINT 20,(N(K),K=1,I)
20 FORMAT(5(2X,I30))
STOP
END
OR (Using Parameter) (DO-CONTINUE)
PARAMETER (I=40)
DIMENSION N(I)
N(1)=1
N(2)=1
DO 10 K=3,I
N(K)=N(K-1)+N(K-2)
10 CONTINUE
PRINT 20,(N(K),K=1,I)
20 FORMAT(5(2X,I10))
STOP
END
19. Write a FORTRAN program to find the terms of the Fibonacci sequence
series between 1 to 100.
M=1
N=1
PRINT*,M
PRINT*,N
2 K=M+N
IF(K.GE.100)GOTO 5
PRINT*,K
M=N
N=K
GOTO 2
STOP
5 END
4. Divisible by 5 or 7

20. Write a FORTRAN program which prints all odd positive integers less
than 100, omitting those divisible by 7.
I=1
10 IF(I.NE.(I/7)*7)PRINT*,I
I=I+1
IF(I.LE.100)GOTO 10
STOP
END
OR
I=1
10 IF(MOD(I,7).NE.0)PRINT*,I
I=I+1
IF(I.LE.100)GOTO 10
STOP
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


8

OR (Using Do-Continue)
DO 4 I=1,100
IF(I.NE.(I/7)*7)PRINT*,I
4 CONTINUE
STOP
END
21. Write a FORTRAN program which prints all positive integers less than
100,omitting those divisible by 7.
I=1
10 IF(I.NE.(I/7)*7)PRINT*,I
I=I+2
IF(I.LE.100)GOTO 10
STOP
END
OR (Using IF-THEN-ENDIF) (IF-GOTO)

I=1
10 IF(I.NE.(I/7)*7)THEN
PRINT*,I
ENDIF
I=I+2
IF(I.LE.100)GOTO 10
STOP
END
OR

DO 4 I=1,100,2
IF(MOD(I,7).NE.0)PRINT*,I
4 CONTINUE
STOP
END
OR (Using IF-THEN-ENDIF)(DO-CONTINUE)
DO 4 I=1,100,2
IF(MOD(I,7).NE.0)THEN
PRINT*,I
ENDIF
4 CONTINUE
STOP
END

22. Write a FORTRAN program which prints all positive integers less than
100, omitting those divisible by 7. The output should have five numbers
in each line.
I=1
10 IF(I.NE.(I/7)*7)THEN
PRINT 20,I
20 FORMAT(5(2X,I6))
ENDIF
I=I+1
IF(I.LE.100)GOTO 10
STOP
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


9

OR (Using Mod)

I=1
10 IF(MOD(I,7).NE.0)THEN
PRINT 20,I
20 FORMAT(5(2X,I8))
ENDIF
I=I+2
IF(I.LE.99)GOTO 10
STOP
END

5. Prime Number Program

23. Write an algorithm and a FORTRAN program which reads an integer N and
determines whether N is prime or not.
PRINT*,'ENTER THE VALUE OF N>2'
READ*,N
K=2
7 IF(N.EQ.(N/K)*K)GOTO 20
K=K+1
IF(K.LE.N/2)GOTO 7
2 PRINT*,N,'IS A PRIME NO.'
GOTO 30
20 PRINT*,N,'IS NOT A PRIME NO.'
30 STOP
END
OR

PRINT*,'ENTER THE VALUE OF N>2'


READ*,N
DO 10 I=2,N/2
IF(MOD(N,I).EQ.0)THEN
PRINT*,N,'IS NOT A PRIME NUMBER'
STOP
ENDIF
10 CONTINUE
PRINT*,N,'IS A PRIME NUMBER'
STOP
END

24. Write a FORTRAN program to print all prime numbers less than 500.

I=2
PRINT*,I
N=3
5 K=2
7 IF(N.EQ.(N/K)*K)GOTO 20
K=K+1
IF(K.LE.N/2)GOTO 7
PRINT*,N
20 N=N+1
IF(N.LE.500)GOTO 5
STOP
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


10

OR
N=2
IF(N.EQ.2)GOTO 6
5 K=2
7 IF(N.EQ.(N/K)*K)GOTO 20
K=K+1
IF(K.LE.N/2)GOTO 7
6 PRINT*,N
20 N=N+1
IF(N.LE.500)GOTO 5
STOP
END
OR
PRINT*,'ENTER THE VALUE OF M>2'
READ*,M
I=2
PRINT*,2
N=3
10 K=2
2 IF(N.EQ.(N/K)*K)GOTO 5
K=K+1
IF(K.LE.N/2)GOTO 2
PRINT*,N
5 N=N+1
IF(N.LE.M)GOTO 10
STOP
END
25. Write an algorithm and a FORTRAN program which reads an integer N and
determines whether N is prime or not. If N is not a prime number find
the smallest divisor of N.
PRINT*,'ENTER THE VALUE OF N'
READ*,N
K=2
7 IF(N.EQ.(N/K)*K)GOTO 5
K=K+1
IF(K.LE.N/2)GOTO 7
PRINT*,N,'IS A PRIME NO.'
STOP
5 PRINT*,N,'IS NOT A PRIME NO.'
PRINT*,K,'IS A DIVISOR OF',N
END
6. Program for Quadratic Equation
26. Write an algorithm and draw a flowchart to find the roots of the
quadratic equation ax2 + bx + c = 0. Also implement this into FORTRAN.
PRINT*,'ENTER THE VALUE OF A, B, C'
READ*,A,B,C
D=B**2-4.0*A*C
IF(D.GE.0.0)THEN
ROOT1=(-B+SQRT(D))/(2.0*A)
ROOT2=(-B-SQRT(D))/(2.0*A)
PRINT*,'1ST ROOT=',ROOT1
PRINT*,'2ND ROOT=',ROOT2
ELSE
P=-B/(2.0*A)
Q=SQRT(ABS(D))/(2.0*A)
PRINT*,'ROOT1 =',P,'+i',Q
PRINT*,'ROOT2 =',P,'-i',Q
ENDIF
STOP
END
Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268
11

OR
PRINT*,'ENTER THE VALUE OF A, B, C'
READ*,A,B,C
D=B**2-4.0*A*C
P=-B/(2.0*A)
Q=SQRT(ABS(D))/(2.0*A)
IF(D.GE.0.0)THEN
ROOT1=P+Q
ROOT2=P-Q
PRINT*,'1ST ROOT=',ROOT1
PRINT*,'2ND ROOT=',ROOT2
ELSE
PRINT*,'ROOT1 =',P,'+i',Q
PRINT*,'ROOT2 =',P,'-i',Q
ENDIF
STOP
END
27. Write an algorithm and draw a flowchart to find the real roots of the
quadratic equation ax2 + bx + c = 0. Also implement this into FORTRAN.
PRINT*,'ENTER THE VALUE OF A, B, C'
READ*,A,B,C
D=B**2-4.0*A*C
IF(D.GE.0.0)THEN
ROOT1=(-B+SQRT(D))/(2.0*A)
ROOT2=(-B-SQRT(D))/(2.0*A)
PRINT*,'1ST ROOT=',ROOT1
PRINT*,'2ND ROOT=',ROOT2
ENDIF
STOP
END
OR
PRINT*,'ENTER THE VALUE OF A, B, C'
READ*,A,B,C
D=B**2-4.0*A*C
P=-B/(2.0*A)
Q=SQRT(ABS(D))/(2.0*A)
IF(D.GE.0.0)THEN
ROOT1=P+Q
ROOT2=P-Q
PRINT*,'1ST ROOT=',ROOT1
PRINT*,'2ND ROOT=',ROOT2
ENDIF
STOP
END
7. Equation Program + Piecewise Function (Ch. 10)
28. Consider the polynomial equation 𝒚 = 𝟐𝒙𝟑 − 𝟓𝒙𝟐 + 𝟗. Write a FORTRAN program
segment which stores and prints 𝒚 for 𝒙 = −5 to 5 in step of 0.2.
PRINT*,'Value X Value Y'
X=-2.0
5 Y=2.0*(X**3)-5.0*(X**2)+9.0
PRINT 20,X,Y
20 FORMAT(F6.2,2X,F10.2)
X=X+0.2
IF(X.LE.2.01)GOTO 5
STOP
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


12

29. Consider the polynomial equation 𝒛 = 𝒙𝟐 − 𝟐𝒙𝒚 + 𝟑𝒚𝟐 − 𝟖𝒙 − 𝟖. Write a FORTRAN


program segment which stores and prints 𝒛 for 𝒙, 𝒚 = −3 to 3 in step of 0.2.
P. 324 (EXP 18)
PRINT*,' X Y Z'
X=-3.0
20 Y=-3.0
10 Z=X**2-2.0*X*Y+3.0*Y**2-8.0*X+3.0
PRINT 30,X,Y,Z
30 FORMAT(1X,F6.2,3X,F6.2,3X,F8.2)
Y=Y+0.2
IF(Y.LE.3.01)GOTO 10
X=X+0.2
IF(X.LT.3.01)GOTO 20
STOP
END
OR (Using Do-Continue)
DO 10 K=1,31
X=-3.0+0.2*FLOAT(K-1)
DO 20 M=1,31
Y=-3.0+0.2*FLOAT(M-1)
Z=X**2-2.0*X*Y+3.0*Y**2-8.0*X+3.0
PRINT 30,X,Y,Z
30 FORMAT(1X,F6.2,3X,F6.2,3X,F8.2)
20 CONTINUE
10 CONTINUE
STOP
END

30. Given 𝐃𝐈𝐒𝐓(𝐱, 𝐲, 𝐳) = √𝐱 𝟐 + 𝐲 𝟐 + 𝐳 𝟐 . Write a FORTRAN program segment which computes


𝟑
𝜶 = (𝒂𝟐 + 𝒃𝟐 + 𝟏𝟔)𝟐 ; 𝜷 = (𝟒𝒑𝟐 + 𝟗𝒒𝟐 + 𝟔𝟒); 𝜸 = √𝐮𝟐 + 𝐯 𝟐 + 𝟏𝟐𝟏. [Prob-1 CH.10]
DIST(X,Y,Z)=SQRT(X**2+Y**2+Z**2)
ALPHA=DIST(A,B,4.0)**3
BETA=DIST(2P,3Q,8.0)**2
GAMMA=DIST(U,V,11.0)
31. Consider the polynomial equation 𝒚 = 𝒙𝟐 + 𝒙 + 𝟏. Write a FORTRAN program
segment which stores and prints 𝒚 for 𝒙 = −1 to 1 in step of 0.2.
PRINT*,'VALUE X VALUE Y'
X=-1.0
55 Y=X**2+X+1.0
PRINT 20,X,Y
20 FORMAT(F6.2,4X,F8.2)
X=X+0.2
IF(X.LE.1.0)GOTO 55
STOP
END
OR (Using Do-Continue)
PRINT*,'VALUE X VALUE Y'
DO 10 X=-1.0,1.0,0.2
Y=X**2+X+1.0
PRINT 20,X,Y
20 FORMAT(F6.2,4X,F8.2)
10 CONTINUE
STOP
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


13

𝟏 − 𝒙𝟐 𝒊𝒇 𝒙 < 𝟎
32. 𝒇(𝒙) = {𝟏 + 𝟐𝒙 𝒊𝒇 𝟎 ≤ 𝒙 < 𝟏. Write a FORTRAN program for computing f(x) for
𝟏
𝟑 + 𝒊𝒇 𝒙 ≥ 𝟏
𝒙
x[-10, 10] at an interval 0.5. [CH. 10_P.326 (NO INTERVAL)]
PRINT*,'ENTER THE VALUE OF X'
READ*,X
IF(X.LT.0.0)FX=1.0-X**2
IF((0.0.LE.X).AND.(X.LT.1.0))FX=1.0+2.0*X
IF(X.GE.1.0)FX=3.0+1.0/X
PRINT 20,X,FX
20 FORMAT(1X,F6.2,2X,F8.2)
STOP
END
OR (CH. 10_P.326 (WITH INTERVAL))
X=-10.0
10 IF(X.LT.0.0)FX=1.0-X**2
IF((0.0.LE.X).AND.(X.LT.1.0))FX=1.0+2.0*X
IF(X.GE.1.0)FX=3.0+1.0/X
PRINT 20,X,FX
20 FORMAT(1X,F6.2,2X,F8.2)
X=X+0.5
IF(X.LE.10.0)GOTO 10
STOP
END
8. SUBPROGRAM

33. Using subroutine subprogram write a FORTRAN program to find the largest
number and sum of three integers/numbers.
READ*,I,J,K
CALL RESULT(I,J,K,LAR,SUM)
PRINT*,'The largest Number is',LAR
PRINT*,'The Sum is',SUM
STOP
END
SUBROUTINE RESULT(L,M,N,LARGE,ADD)
LARGE=L
IF(LARGE.LT.M)LARGE=M
IF(LARGE.LT.N)LARGE=N
ADD=L+M+N
RETURN
END
OR
READ*,I,J,K
CALL RESULT(LAR)
PRINT*,'LARGE NO.=',LAR
STOP
END
FUNCTION RESULT(LARG)
LARG=L
IF(LARG.LT.M)LARG=M
IF(LARG.LT.N)LARG=N
RETURN
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


14

34. Write a FORTRAN program to find the largest number and sum of three
integers/numbers.
READ*,L,M,N
LAR=L
IF(LAR.LT.M)LAR=M
IF(LAR.LT.N)LAR=N
SUM=L+M+N
PRINT*,'The Largest Number is',LAR
PRINT*,'The Sum is',SUM
STOP
END

35. Using subroutine subprogram write a FORTRAN program to find the smallest
number and sum of three integers/numbers.
READ*,I,J,K
CALL RESULT(I,J,K,SMALL,SUM)
PRINT*,'The Smallest Number is',SMALL
PRINT*,'The Sum is',SUM
STOP
END
SUBROUTINE RESULT(L,M,N,SMA,ADD)
SMA=L
IF(SMA.GT.M)SMA=M
IF(SMA.GT.N)SMA=N
ADD=L+M+N
RETURN
END

36. Write a FORTRAN program to find the smallest number and sum of three
integers/numbers.
READ*,L,M,N
SMALL=L
IF(SMALL.GT.M)SMALL=M
IF(SMALL.GT.N)SMALL=N
SUM=L+M+N
PRINT*,'The Smallest Number is',SMALL
PRINT*,'The Sum is',SUM
STOP
END
37. Using subroutine subprogram write a FORTRAN program to find the
factorial of an integer. [IF-GOTO]
READ*,N
CALL RESULT(N,IFACT)
PRINT*,'The factorial of',N,'is',IFACT
STOP
END
SUBROUTINE RESULT(I,IFAC)
K=1
IFAC=1
10 IFAC=K*IFAC
K=K+1
IF(K.LE.I)GOTO 10
RETURN
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


15

OR(DO-CONTINUE)

READ*,N
CALL RESULT(N,IFACT)
PRINT*,'The factorial of',N,'is',IFACT
STOP
END
SUBROUTINE RESULT(I,IFAC)
IFAC=1
DO 10 K=1,I
IFAC=K*IFAC
10 CONTINUE
RETURN
END

38. Using FUNCTION subprogram write a FORTRAN program to find the factorial
of an integer. [IF-GOTO]

READ*,N
PRINT*,'The factorial of',N,'is',IFACT(N)
STOP
END
FUNCTION IFACT(I)
K=1
IFACT=1
10 IFACT=K*IFACT
K=K+1
IF(K.LE.I)GOTO 10
RETURN
END

OR(DO-CONTINUE)

READ*,N
PRINT*,'The factorial of',N,'is',IFACT(N)
STOP
END
FUNCTION IFACT(I)
IFACT=1
DO 10 K=1,I
10 IFACT=K*IFACT
K=K+1
IF(K.LE.I)GOTO 10
RETURN
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


16

9. Matrix Program

39. Using SUBROUTINE subprogram write a FORTRAN program to compute and


print the product of two matrices.

DIMENSION X(2,3),Y(3,2),Z(2,2)
READ*,((X(I,J),J=1,3),I=1,2)
READ*,((Y(I,J),J=1,2),I=1,3)
CALL MATPRO(X,Y,Z,2,3,2)
PRINT 30,((Z(I,J),J=1,2),I=1,2)
30 FORMAT(2(2X,F20.4))
STOP
END
SUBROUTINE MATPRO(A,B,C,M,L,N)
DIMENSION A(M,L),B(L,N),C(M,N)
DO I=1,M
DO J=1,N
C(I,J)=0.0
DO K=1,L
C(I,J)=C(I,J)+A(I,K)*B(K,J)
ENDDO
ENDDO
ENDDO
RETURN
END

OR

C MAIN PROGRAM
PARAMETER(P=2,Q=2,R=2)
DIMENSION X(P,Q),Y(Q,R),Z(P,R)
READ*,((X(I,J),J=1,R),I=1,P)
READ*,((Y(I,J),J=1,R),I=1,P)
CALL MATPRO(X,Y,Z,P,Q,R)
PRINT 30,((Z(I,J),J=1,R),I=1,P)
30 FORMAT(2X,2(2X,F7.3))
STOP
END
C SUBROUTINE SUBPROGRAM
SUBROUTINE MATPRO(A,B,C,M,L,N)
DIMENSION A(M,L),B(L,N),C(M,N)
DO I=1,M
DO J=1,N
C(I,J)=0.0
DO K=1,L
C(I,J)=C(I,J)+A(I,K)*B(K,J)
ENDDO
ENDDO
ENDDO
RETURN
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


17

PARAMETER(N=2)
DIMENSION A(N,N),B(N,N),C(N,N)
READ*,((A(I,J),J=1,N),I=1,N)
READ*,((B(I,J),J=1,N),I=1,N)
DO 10 I=1,N
DO 20 J=1,N
SUM=0
DO 30 K=1,N
SUM=SUM+A(I,K)*B(K,J)
30 CONTINUE
C(I,J)=SUM
20 CONTINUE
10 CONTINUE
PRINT 40,((C(I,J),J=1,N),I=1,N)
40 FORMAT (2(F5.1,2X))
STOP
END

PARAMETER(N=2)
DIMENSION A(N,N),B(N,N),C(N,N)
READ*,((A(I,J),J=1,N),I=1,N)
READ*,((B(I,J),J=1,N),I=1,N)
DO 10 I=1,N
DO 20 J=1,N
C(I,J)=A(I,J)+B(I,J)
20 CONTINUE
10 CONTINUE
PRINT 30,((C(I,J),J=1,N),I=1,N)
30 FORMAT(2(F8.2,2X))
STOP
END

10. Banking Program

BANKING PROG_SIMPLE INTEREST_PROB 35_26.05.22


REAL INT
PRINT*,'Enter the amount'
READ*,AMT
IF(AMT.LE.10000.0)THEN
INT=AMT*0.07
ELSE
INT=AMT*0.06
ENDIF
PRINT*,'The interest is',INT
STOP
END
BANKING PTOG_COMPOUND INT (IF Simple int)_CH. 9_PR-6
INTEGER YEAR
PRINT*,'YEAR AMOUNT'
AMT=1500.0
YEAR=1
10 PRINT*,YEAR,AMT
AMT=AMT+AMT*0.13
YEAR=YEAR+1
IF(YEAR.LE.10)GOTO 10
STOP
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


18

BANKING PROG_COMPUND INT_CH. 9 PROB-6_26.05.22

INTEGER YEAR
PRINT*,'YEAR AMOUNT'
AMT=1500.0
YEAR=1
10 PRINT*,YEAR,AMT
AMT=AMT+AMT*0.13+1500.0
YEAR=YEAR+1
IF(YEAR.LE.10)GOTO 10
STOP
END

Banking Prog_Compound int 1987-2000_prob 38_26.05.22

INTEGER YEAR
PRINT*,' YEAR AMOUNT'
YEAR=1987
AMT=2000.0
10 PRINT*,YEAR,AMT
AMT=AMT+AMT*0.07
YEAR=YEAR+1
IF(YEAR.LE.2000)GOTO 10
STOP
END

BANKING PROG_AMT AFTER 10 YRS p.308 pROB-14

INTEGER YEAR,ACNT
TK=12000.0
YEAR=1
ACNT=1567
PRINT*,'ACC NO',ACNT
20 PRINT*,YEAR,TK
TK=TK+TK*0.05+12000.0
YEAR=YEAR+1
IF(YEAR.LE.10)GOTO 20
STOP
END

BANKING PROG_OWE FROM BANK (ONLY LAST MONTH LAST AMT)_24.07.2023

INTEGER YEAR,ACNT
TK=12000.0
YEAR=1
ACNT=1567
PRINT*,'ACC NO',ACNT
20 TK=TK+TK*0.05+12000.0
YEAR=YEAR+1
IF(YEAR.LE.9)GOTO 20
PRINT*,YEAR,TK
STOP
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


19

BANKING PROG_OWE FROM BANK (NO. OF MONTH AND LAST AMT)_24.07.2023

AMT=300.0
MONTH=0
20 AMT=AMT+AMT*0.015-25.0
MONTH=MONTH+1
IF(AMT.LE.25.0)GOTO 40
GOTO 20
40 PRINT*,MONTH
PRINT*,AMT
STOP
END

BANKING PROG_OWE FROM BANK (PROB-15)_24.07.2023

AMT=300.0
MONTH=1
10 PRINT*,MONTH,AMT
AMT=AMT+AMT*0.015-25.0
MONTH=MONTH+1
IF(MONTH.LE.12)GOTO 10
STOP
END

BANKING PROG_SALARY NO MORE 2 LAC_CH. 9 PROB-9, P. 305

CHARACTER NAME*20
INTEGER YEAR
READ*,NAME,N
SAL=120000.0
YEAR=1
10 PRINT*,YEAR,SAL
SAL=SAL+SAL*0.01
YEAR=YEAR+1
IF(SAL.LE.200000.0)GOTO 10
STOP
END

BANKING PROG_SALARY_CH. 9 PROB-9, P. 305

CHARACTER NAME*20
READ*,NAME,N
SALARY=120000.0
N=1
PRINT*,'EMPLOYEE NAME IS',NAME
PRINT*,'SALARY'
SALARY=SALARY+SALARY*0.01
N=N+1
IF(SALARY.LE.200000.0)THEN
PRINT*,N,SALARY
ENDIF
STOP
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


20

11. Other’s Program/Statistical Program (Ch. 8, 10, 5, 6, 11)

Arithmetic IF st_17-05-2023
READ*,A,B
IF(A-B)10,20,30
10 DIFF=A-B
GOTO 5
20 DIFF=0.0
GOTO 5
30 DIFF=A-B
5 PRINT*,DIFF
STOP
END
SMALLEST NO. FROM THREE NOS.
READ*,L,M,N
SMALL=L
IF(SMALL.GT.M)SMALL=M
IF(SMALL.GT.N)SMALL=N
SUM=L+M+N
PRINT*,'The Smallest Number is',SMALL
PRINT*,'The Sum is',SUM
STOP
END
FACTORIAL OF K
READ*,K
IFACT=1
DO 10 I=1,K
IFACT=I*IFACT
10 CONTINUE
PRINT*,IFACT
STOP
END
FACTORIAL OF N_10.05.22
PRINT*,'ENTER THE VALUE OF N'
READ*,N
K=1
IFACT=1
10 IFACT=K*IFACT
K=K+1
IF(K.LE.N)GOTO 10
PRINT*,'VALUE OF FACTORIAL=',IFACT
STOP
END

FATOROAL_cH. 7_PR-16_ P.245

IFACT=1
DO 10 I=1,K
IFACT=I*IFACT
10 CONTINUE
SUM=SUM+X**K/REAL(IFACT)
20 CONTINUE
PRINT*,SUM
STOP
END

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268


21

12. Exam Program

41. A class of 100 students takes an examination on which scores range from
0 to 100. Write a FORTRAN program which finds⎯
(i) The average score
(ii) The number of students who scored  60 and
(iii) The number of students who failed, that is, scored below 36.

SUM=0
N=0
M=0
DO 10 K=1,100
READ*,I
SUM=SUM+REAL(I)
IF(I.GE.60)N=N+1
IF(I.LT.36)M=M+1
10 CONTINUE
AVE=SUM/100.0
PRINT*,'THE AVE IS = ',AVE
PRINT*,'NO. of Stu gt 60',N
PRINT*,'No. of Stu lt 36',M
STOP
END

EXAM PROG_cH.11_PROB-22_03.09.22

ISUM=0
N=0
M=0
DO 10 K=1,10
READ*,ISCORE
ISUM=ISUM+ISCORE
IF(ISCORE.GE.60)N=N+1
IF(ISCORE.LT.36)M=M+1
10 CONTINUE
AVE=REAL(ISUM)/10.0
PRINT*,AVE,N,M
STOP
END

⎯ ⎯ ⎯

Zahangir Sir Math_Asstt. Prof_Dhaka College_01714243268

You might also like