CF 1 Lab Assignement 6: Task 1

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 19

CF 1 LAB ASSIGNEMENT 6

Task 1:
Write a program to determine whether a number taken as input from user is a leap
year or not?

Codes for program:


PROGRAM LEAP YEAR
! DECLARATION STATEMENT
! ======================================
IMPLICIT NONE
INTEGER A, X
CHARACTER D
PRINT*,''
PRINT*,' ----------- LAB 6 TASK 1------------'
PRINT*,''
PRINT*,'

LEAP YEAR'

! INPUT
! =======================================
PRINT*,''
10

PRINT*,' ENTER THE YEAR:'


READ*, A
! CALCULATIONS AND RESULTS
! =======================================
X = MOD( A, 400)
IF (X. EQ. 0) THEN
PRINT*, A, ' IS A LEAP YEAR'
ELSE IF (MOD( A, 100). EQ. 0) THEN
PRINT*,A,' IS NOT A LEAP YEAR'
ELSE IF (MOD( A, 4). EQ. 0) THEN
PRINT*, A,' IS A LEAP YEAR'

ELSE
PRINT*, A,' IS NOT A LEAP YEAR'
END IF
PRINT*,' DO YOU WANT TO TO CONTINUE (Y/N)?'
READ*,D
IF (D. EQ. 'Y') GO TO 10
END PROGRAM LEAP YEAR

Results:

Task 2:
Write a FORTRAN program that takes distance as input from the user and prints the
cost of travelling

Codes for program:


PROGRAM FAIR CALCULATION
! DECLARATION STATEMENT
! ======================================
IMPLICIT NONE
REAL A, X, Y, FAIR
CHARACTER D

PRINT*,''
PRINT*,' ----------- LAB 6 TASK 2------------'
PRINT*,''
PRINT*,'

FAIR CALCULATION'

! INPUT
! =======================================
PRINT*,''
10

PRINT*,' ENTER THE DISTANCE TRAVELLED:'


READ*, A
! CALCULATIONS AND RESULTS
! =======================================
IF (A. LE. 100.0) THEN
PRINT*,'PER UNIT CHARGES ARE 5.0 RUPEES'
PRINT*,' FAIR FOR ',A,' IS ',5.0*A
X=A
ELSE IF (A. LE. 500.0) THEN
PRINT*,'PER UNIT CHARGES ARE 5.0 RUPEES FOR INITIAL 100 UNITS'
PRINT*,'PER UNIT CHARGES ARE 8.0 FOR THE REMAINING DISTANCE'
PRINT*,' FAIR FOR ',A,' IS',(100.0*5.0)+((A-100.0)*8.0)
Y=A
ELSE IF (A. LT. 1000.0) THEN
PRINT*,'PER UNIT CHARGES ARE 5.0 RUPEES FOR INITIAL 100 UNITS'
PRINT*,'PER UNIT CHARGES ARE 8.0 FOR 101-500 UNITS'
PRINT*,'PER UNIT CHARGES ARE 10.0 FOR REMAIING DISTANCE'
FAIR = ((A - 500.0)*10.0)+(400.0*8.0)+(100.0*5.0)
PRINT*,'FAIR FOR ',A,' UNITS IS ',FAIR
ELSE
PRINT*,'PER UNIT CHARGES ARE 5.0 RUPEES FOR INITIAL 100 UNITS'
PRINT*,'PER UNIT CHARGES ARE 8.0 FOR 101-500 UNITS'
PRINT*,'PER UNIT CHARGES ARE 10.0 FOR 501-999 UNITS'

PRINT*,'PER UNIT CHARGES ARE 12.0 FOR =>1000'


FAIR = ((A - 999.0)*12.0)+(499*10.0)+(400.0*8.0)+(100.0*5.0)
PRINT*,'FAIR FOR ',A,' UNITS IS ',FAIR
END IF
PRINT*,' DO YOU WANT TO TO CONTINUE (Y/N)?'
READ*,D
IF (D. EQ. 'Y') GO TO 10
END PROGRAM FAIR CALCULATION

Result:

Task 3:
Ahmad has to write a program where-in user enters a number and program
generates a list of 100 odd numbers starting from the entered number.

Codes for program:


PROGRAM ODD NUMBERS
! DECLARATION STATEMENT
! ======================================
IMPLICIT NONE
INTEGER A, X, I, N

CHARACTER D
PRINT*,''
PRINT*,' ----------- LAB 6 TASK 3------------'
PRINT*,''
PRINT*,'

100 ODD NUMBERS'

! INPUT
! =======================================
PRINT*,''
10

PRINT*,' ENTER THE NUMBER FROM WHICH YOU WANT TO START'


READ*, A
! CALCULATIONS, LOGIC AND RESULTS
! =======================================
PRINT*,'ODD NUMBERS STARTING FROM', A,' ARE'
X = MOD (A, 2)
IF (X. EQ. 0) THEN
N=A-1
DO I = 1, 100
N=N+2
PRINT'($,I5)',N
END DO
ELSE
N=A-2
DO I = 1, 100
N=N+2
PRINT'($,I5)',N
END DO
END IF
PRINT'(1X,/,A)','DO YOU WANT TO CONTINUE (Y / N)'
READ*,D
IF (D. EQ. 'Y') GO TO 10

END PROGRAM ODD NUMBERSResult:

Task 4:
Write a FORTRAN program that takes three sides of a triangle as input and
determines whether the triangle is equilateral, isosceles or scalene.

Codes for program:


PROGRAM TYPE OF TRIANGLE
! DECLARATION STATEMENT
! ======================================
IMPLICIT NONE
REAL A, B, C, X, Y, Z, E
CHARACTER D
PRINT*,''
PRINT*,' ----------- LAB 6 TASK 4------------'
PRINT*,''
PRINT*,'

TYPE OF TRIANGLE'

! INPUT
! =======================================
PRINT*,''

10

PRINT*,' ENTER THE LENGTHS OF SIDES OF TRIANGLE'


READ*, A, B, C
! CALCULATIONS, LOGIC AND RESULTS
! =======================================
PRINT*,''
IF (A. EQ. B) THEN
X=A
ELSE
X = 0.0
END IF
IF (X. EQ. C) THEN
PRINT*,' TRIANGLE IS EQUILATERAL'
ELSE IF (A. EQ. B) THEN
PRINT*,' TRIANGLE IS ISOSCELES'
ELSE IF (A. EQ. C) THEN
PRINT*,' TRIANGLE IS ISOSCELES'
ELSE IF (B. EQ. C) THEN
PRINT*,' TRIANGLE IS ISOSCELES'
ELSE
PRINT*,' TRIANGLE IS SCALENE'
END IF
PRINT*,' DO YOU WANT TO TO CONTINUE (Y/N)?'
READ*,D
IF (D. EQ. 'Y') GO TO 10
END PROGRAM TYPE OF TRIANGLE

Result:

Task 5:
Write a FORTRAN program to add first 10 terms of the following sequence using DO
loop.

1 1 1 1
+ + + +
1 ! 2! 3 ! 4 !

Codes for program:


PROGRAM AP
! DECLARATION STATEMENT
! ======================================
IMPLICIT NONE
REAL SUM, N, TERM, FACTORIAL
PRINT*,''
PRINT*,' ----------- LAB 6 TASK 5------------'
PRINT*,''
PRINT*,'

ADDITION OF THE GIVEN SEQUENCE'

! CALCULATIONS, LOGIC AND RESULTS


! =======================================

SUM = 0.0
DO N = 1, 10
FACTORIAL = 1
DO TERM = N, 1, -1
FACTORIAL = FACTORIAL * TERM
END DO
TERM = 1.0/FACTORIAL
SUM = SUM + TERM
END DO
PRINT*,''
PRINT'(A,F8.3)',' THE SUM OF FIRST 10 TERMS = ',SUM
END PROGRAM AP

Result:

Task 6:
Write a FORTRAN program to take a number as input from user and calculate the
value of sine of that number using 5 terms of following series:

x= x

x x
x
+ +
3! 5 ! 7 !
sin

Codes for program:


PROGRAM SINX CALCULATION
! DECLARATION STATEMENT
! ======================================
IMPLICIT NONE
REAL SUM, N, TERM, FACTORIAL, X, A
INTEGER I
! 'X' AND 'A' DENOTES ANGLE IN DEGREES AND RADIAN RESPECTIVELY
CHARACTER D
PRINT*,''
PRINT*,' ----------- LAB 6 TASK 6------------'
PRINT*,''
PRINT*,'

SIN CALCULATION FROM GIVEN SERIES'

PRINT*,''
! INPUT
! =======================================
10

PRINT*,'ENTER THE ANGLE IN DEGREES:'


READ*, X
A = X * 3.14159 / 180.0
! CALCULATIONS, LOGIC AND RESULTS
! =======================================
SUM = 0.0
I=0
DO N = 1.0, 10.0, 2.0
FACTORIAL = 1.0
DO TERM = N, 1.0, -1.0
FACTORIAL = FACTORIAL * TERM

END DO
I=I+1
TERM = (A**N)/FACTORIAL
IF (MOD(I, 2). EQ. 1) THEN
SUM = SUM + TERM
ELSE
SUM = SUM - TERM
END IF
END DO
PRINT*,''
PRINT'(A,F4.1,A,F5.2)',' THE SIN OF ',X,' DEGREES = ',SUM
PRINT*,' DO YOU WANT TO CONTINUE ( Y / N )'
READ*,D
IF (D. EQ. 'Y') GO TO 10
END PROGRAM SINX CALCULATION

Result:

Task 7:
Write a program to print all the leap years starting from year X to year Y (X < Y).
Use DO loop.

Codes for program:


PROGRAM LEAP YEAR
! DECLARATION STATEMENT
! ======================================
IMPLICIT NONE
INTEGER A, B, X, N
CHARACTER D
PRINT*,''
PRINT*,' ----------- LAB 6 TASK 7------------'
PRINT*,''
PRINT*,'

LEAP YEAR'

! INPUT
! =======================================
PRINT*,''
10

PRINT*,' ENTER THE STARTING YEAR:'


READ*, A
PRINT*,' ENTER THE ENDING YEAR:'
READ*,B
! CALCULATIONS AND RESULTS
! =======================================
PRINT*,'LEAP YEARS FROM',A,' TO ',B,' ARE'
IF (MOD( A, 4). EQ. 0) THEN
DO N = A, B, 4
PRINT*,N
END DO
ELSE IF (MOD(A, 4). EQ. 1) THEN
DO N = A + 3, B, 4

PRINT*, N
END DO
ELSE IF (MOD(A, 4). EQ. 2) THEN
DO N = A + 2, B, 4
PRINT*, N
END DO
ELSE
DO N = A + 1, B, 4
PRINT*, N
END DO
END IF
PRINT*,' DO YOU WANT TO TO CONTINUE (Y/N)?'
READ*,D
IF (D. EQ. 'Y') GO TO 10
END PROGRAM LEAP YEAR

Result:

Task 8:
Write a program to print positive divisors of a number (taken as input from user).
Use DO loop.

Codes for program:


PROGRAM POSITIVE DIVISOR
! DECLARATION STATEMENT
! ======================================
IMPLICIT NONE
INTEGER A, N
CHARACTER D
PRINT*,''
PRINT*,' ----------- LAB 6 TASK 8------------'
PRINT*,''
PRINT*,' POSITIVE DIVISOR OF GIVEN NUMBER'
PRINT*,''
! INPUT
! =======================================
10

PRINT*,'ENTER THE NUMBER'


READ*, A
! CALCULATIONS, LOGIC AND RESULTS
! =======================================
PRINT*,''
PRINT*,' POSITIVE DIVISOR OF ',A,' ARE'
DO N = 1, A
IF ( MOD(A, N). EQ. 0) THEN
PRINT(I8,$),N
END IF
END DO
PRINT(A,/),' DO YOU WANT TO CONTINUE ( Y / N )'
READ*,D

IF (D. EQ. 'Y') GO TO 10


END PROGRAM POSITIVE DIVISOR

Result:

Task 9:
Write a program that prints positive divisors of each number between A and B,
where A and B are provided by users (A < B).

Codes for program:


PROGRAM POSITIVE DIVISOR WITHIN A RANGE
! DECLARATION STATEMENT
! ======================================
IMPLICIT NONE
INTEGER A, B, N, I
CHARACTER D
PRINT*,''
PRINT*,' ----------- LAB 6 TASK 9------------'
PRINT*,''
PRINT*,' POSITIVE DIVISOR OF GIVEN NUMBER'

PRINT*,''
! INPUT
! =======================================
10

PRINT*,'ENTER MINIMUM VALUE'


READ*, A
PRINT*,'ENTER MAXIMUM VALUE'
READ*,B
! CALCULATIONS, LOGIC AND RESULTS
! =======================================
PRINT*,''
DO N = A+1, B-1
PRINT(/,A,I3,A),' POSITIVE DIVISOR OF ',N,' ARE'
DO I = 1, N
IF ( MOD(N, I). EQ. 0) THEN
PRINT(I4,$),I
END IF
END DO
END DO
PRINT(/,A),' DO YOU WANT TO CONTINUE ( Y / N )'
READ*,D
IF (D. EQ. 'Y') GO TO 10
END PROGRAM POSITIVE DIVISOR WITHIN A RANGE

Result:

Task 10:
PROGRAM FIBONACCI SEQUENCE
! DECLARATION STATEMENT
! ======================================
IMPLICIT NONE
INTEGER A, A1, A2, N, I
CHARACTER D
PRINT*,''
PRINT*,' ----------- LAB 6 TASK 10------------'
PRINT*,''
PRINT*,'

FIBONACCI SEQUENCE'

PRINT*,''
! INPUT
! =======================================
10

PRINT*,'ENTER THE DESIRED NUMBER OF TERMS'


READ*, I

! INITILIZATION OF VARIABLES
! =======================================
N=I-2
A1 = 0
A2 = 1
! CALCULATIONS, LOGIC AND RESULTS
! =======================================
PRINT*,I,' TERMS OF FIBONACCI SEQUENCE ARE'
PRINT(I4,$),A1
PRINT*,A2
DO N = 1, N
A = A1 + A2
PRINT(I4,$),A
A1 = A2
A2 = A
END DO
PRINT(/,A),' DO YOU WANT TO CONTINUE ( Y / N )'
READ*,D
IF (D. EQ. 'Y') GO TO 10
END PROGRAM FIBONACCI SEQUENCE

Result:

You might also like