0% found this document useful (0 votes)
36 views16 pages

Computer Programming in Fortran 77: Lecture 3 - Selection Constructs

The output of the program will be 9, 26.

Uploaded by

armanimams
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views16 pages

Computer Programming in Fortran 77: Lecture 3 - Selection Constructs

The output of the program will be 9, 26.

Uploaded by

armanimams
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 16

Computer Programming

in Fortran 77

Lecture 3 - SELECTION CONSTRUCTS


SELECTION CONSTRUCTS
You can select between blocks of statements by
using the selection construct
IF statement is used as a selection construct

Four types of IF constructs


IF-ELSE Construct
IF Construct
IF-ELSEIF Construct
Simple IF Construct
IF-ELSE Construct
The general form of the Where
IF-ELSE construct is as condition is a logical expression
follows: each of block1 and block2 consists of
one or more FORTRAN statements
condition is .TRUE. (execute block1)
IF ( condition ) THEN
condition is .FALSE. (execute block2)
BLOCK1
the condition should be between
ELSE parentheses
BLOCK2 IF condition THEN in the same line
ENDIF ELSE should be in a line by itself
ENDIF should be in a line by itself
Example 1
Example 1: Write a FORTRAN program that reads two integer numbers
and prints the maximum.

Solution:

INTEGER NUM1, NUM2


PRINT*, 'ENTER TWO DIFFERENT INTEGER NUMBERS
READ*, NUM1, NUM2
PRINT*, 'INPUT: ', NUM1, NUM2
IF (NUM1 .GT. NUM2) THEN
PRINT*, 'MAXIMUM IS ', NUM1
ELSE
PRINT*, 'MAXIMUM IS ', NUM2
ENDIF
END
Example 2
Example 2 : Write a FORTRAN program that reads an integer number
and finds out if the number is even or odd. The program should print
a proper message.

Solution:

INTEGER K
PRINT*, 'ENTER AN INTEGER NUMBER
READ*, K
PRINT*, 'INPUT: ', K
IF (K/2*2 .EQ. K) THEN
PRINT*, THE NUMBER IS EVEN
ELSE
PRINT*, THE NUMBER IS ODD
ENDIF
END
IF Construct
The general form of the IF construct is as follows:

IF ( condition ) THEN
BLOCK
ENDIF
Example 3
Example : Write a FORTRAN program that reads a grade. If the grade
is not zero, the program must add 2 points to the grade. Then, the
new grade should be printed.

Solution:

REAL GRADE
PRINT*, 'ENTER A GRADE
READ*, GRADE
PRINT*, 'ORIGINAL GRADE IS', GRADE
IF (GRADE .GT. 0) THEN
GRADE = GRADE + 2.0
PRINT*, 'SCALED GRADE IS ', GRADE
ENDIF
END
Exercise 1
What is the output of the following program ?
REAL A, B, C
READ*, A, B, C
IF ( A .LT. B ) THEN
PRINT*, A + B
IF( B .GT. 4.0 ) THEN
PRINT*, B*C
ELSE
PRINT*, C
ENDIF
ELSE
PRINT*, A*B*C
ENDIF
END
Assume the input for the program is: 5.0 6.0 3.0
Exercise 2
What is the output of the following program ?
INTEGER A, B, C
READ*, A, B, C
IF (A.GT.B) THEN
IF (B.LT.C) THEN
PRINT*, B
ELSE
PRINT*, C
ENDIF
ELSE
PRINT*, A
ENDIF
PRINT*, A, B, C
END
Assume the input for the program is: -2 -4 -3
Exercise 3
What is the output of the following program ?

REAL A , B
INTEGER K
READ*, A, K , B
IF (A .LT. 3.0) THEN
PRINT*, A + K
IF (B .LT. 2.5) THEN
PRINT*, B**K
ENDIF
ELSE
PRINT*, A*B*K
ENDIF
END

Assume the input for the program is: 2.5 2 2.5


IF-ELSEIF Construct
The general form of the IF-ELSEIF construct is as follows:

IF ( condition1 ) THEN
BLOCK1
ELSEIF ( condition2 ) THEN
BLOCK2
ELSEIF ( condition3 ) THEN
BLOCK3
. . .
ELSEIF ( conditionn ) THEN
BLOCKn
ELSE
BLOCKn+1
ENDIF
Example 4 REAL GPA
INTEGER ID
CHARACTER*10 STATE
Example : Write a FORTRAN READ*, ID, GPA
program that reads a student PRINT*, 'INPUT:', ID, GPA
ID and his GPA out of 4.0. IF (GPA .GE. 3.5) THEN
The program should print a STATE = 'EXCELLENT'
message according to the ELSEIF (GPA .GE. 3.0) THEN
following: STATE = 'VERY GOOD'
ELSEIF (GPA .GE. 2.5) THEN
STATE = 'GOOD'
Condition Message ELSEIF (GPA .GE. 2.0) THEN
GPA >= 3.5 EXCELLENT STATE = 'FAIR'
3.5 > GPA >= 3.0 VERY GOOD ELSE
3.0 > GPA >= 2.5 GOOD STATE = 'POOR'
2.5 > GPA >= 2.0 FAIR ENDIF
GPA < 2.0 POOR
PRINT*, ID,' ', STATE
END
Example 5
Example : Write a FORTRAN program that reads three integer numbers and
finds and prints the maximum. Use IF-ELSEIF construct.

Solution:

INTEGER X1, X2, X3, MAX


PRINT*, 'ENTER THREE DIFFERENT INTEGER NUMBERS
READ*, X1, X2, X3
PRINT*, 'THE NUMBERS ARE', X1, X2, X3
IF (X1 .GE. X2 .AND. X1 .GE. X3) THEN
MAX = X1
ELSEIF (X2 .GE. X3) THEN
MAX = X2
ELSE
MAX = X3
ENDIF
PRINT*, 'THE MAXIMUM OF THE THREE NUMBERS =', MAX
END
Simple IF Construct
It has the following general form:
IF ( condition ) STATEMENT
Example : Use simple IF constructs to write a FORTRAN program that
reads a student ID and his GPA out of 4.0. The program should print a
message according to the table
INTEGER ID Condition Message
REAL GPA GPA >= 3.5 EXCELLENT
CHARACTER*10 STATE
3.5 > GPA >= 3.0 VERY GOOD
READ*, ID, GPA
PRINT*, 'INPUT:', ID, GPA 3.0 > GPA >= 2.5 GOOD

IF (GPA .GE. 3.5) STATE = 'EXCELLENT' 2.5 > GPA >= 2.0 FAIR
IF (GPA .GE. 3.0 .AND. GPA .LT. 3.5) STATE = 'VERY GOOD'
GPA < 2.0 POOR
IF (GPA .GE. 2.5 .AND. GPA .LT. 3.0) STATE = 'GOOD'
IF (GPA .GE. 2.0 .AND. GPA .LT. 2.5) STATE = 'FAIR'
IF (GPA .LT. 2.0) STATE = 'POOR'
PRINT*, ID,' ', STATE
END
Example 6
Example : Write a FORTRAN program that reads three Integer
numbers and finds and prints the maximum. Use simple IF constructs.

Solution:

INTEGER X1, X2, X3, MAX


PRINT*, 'ENTER THREE DIFFERENT INTEGER NUMBERS
READ*, X1, X2, X3
PRINT*, 'THE NUMBERS ARE', X1, X2, X3
MAX = X1
IF (X2 .GT. MAX) MAX = X2
IF (X3 .GT. MAX) MAX = X3
PRINT*, 'THE MAXIMUM OF THE THREE NUMBERS IS', MAX
END
Exercise 4
What is the output of the following program ?

INTEGER N, M
N = 15
M = 10
IF (M .GE. N) THEN
M=M+1
IF (N .EQ. M) THEN
N=N+5
ELSEIF (N .GT. 0) THEN
N = N + 10
ENDIF
M=M-1
ENDIF
M=M-1
PRINT*, M, N
END

You might also like