Computers in Engineering WWW Site - Example 4.6

Example 4.6


FORTRAN Version

!
      PROGRAM P46
!
!     FACTORIAL N
!
      IMPLICIT NONE
      INTEGER :: I,N,FACT
!
!
      PRINT *, 'This is Program >> P46  - Factorial program'
!
!
!     Tell program where data for  READ *  is coming from
      OPEN(UNIT=5, FILE='P46.DAT')      ! UNIT=5 is the default input
!
      PRINT 1000
1000  FORMAT(' Factorial Program'/)
L1:   DO
         READ *,N
         IF(N  <  0) STOP  ! or EXIT in this case
!
         FACT=1
L2:      DO I=2,N
            FACT=FACT*I
         END DO L2
!
         PRINT 10,N,FACT
10       FORMAT(' Factorial',I3,' =',I8)
!
      END DO L1
      STOP
      END PROGRAM P46
DATA:
5
10
0
-9
OUTPUT:

              +--------------------------------------------------+
              |     32-bit Power for Lahey Computer Systems      |
              |   Phar Lap's 386|DOS-Extender(tm) Version 7.0    |
              |  Copyright (C) 1986-94 Phar Lap Software, Inc.   |
              |           Available Memory = 14880 Kb            |
              +--------------------------------------------------+


This is Program >> P46  - Factorial program
Factorial Program

Factorial  5 =     120
Factorial 10 = 3628800
Factorial  0 =       1

Pascal Version

PROGRAM p46 (input, output);
{
     Factorial n
}
VAR
  i, n : INTEGER;
  fact : REAL;
BEGIN
  writeln (^l);
  writeln ( 'Factorial Program' );
  readln (n);
    WHILE ( n >= 0 ) DO
      BEGIN
        fact := 1;
        FOR i := 2 to n DO
          fact := fact * i;

        writeln ( ' factorial ', n:3, ' =', fact:8:0 );
        readln ( n )
      END { end while }
END.

Last modified: 21/07/97