Computers in Engineering WWW Site - Example 3.6

Example 3.6


FORTRAN Version

!
      PROGRAM P37
!
!
!     DECLARATIONS
!
      IMPLICIT NONE
      INTEGER :: AGE,WEIGHT,MARRGS
      CHARACTER (LEN=15) :: GROUP, NAME
      LOGICAL :: SINGLE,HEAVY
!
!
      PRINT *, 'This is Program >> P37  - Classification program'
!
!     Tell program where data for  READ *  is coming from
      OPEN(UNIT=5, FILE='P37.DAT')      ! UNIT=5 is the default input
!
!
!     MAIN STATEMENTS
!
         PRINT *,'CLASSIFICATION PROGRAM'
!
Loop1: DO
         PRINT * ,' '
         READ  * ,AGE,WEIGHT
!
         IF(AGE == 99)STOP  ! Yes == for testing in an IF
         HEAVY = .FALSE.    ! One = for an assignment statement
         IF(WEIGHT > 70) HEAVY=.TRUE.
!
!
!
         IF(AGE < 18)THEN
           GROUP='MINOR'
         ELSE IF(AGE < 35)THEN
           GROUP='PRIME YEARS'
         ELSE
           GROUP='MATURE'
         END IF
!
         READ * ,NAME
         READ *,SINGLE
!
         IF(SINGLE)THEN
           PRINT * ,NAME,' IS SINGLE'
         ELSE
           READ * ,MARRGS
           PRINT * ,NAME,'WAS MARRIED', &
           MARRGS,'TIMES'
         END IF
!
         PRINT * ,'SHE IS',AGE,'YEARS OLD'
         PRINT * ,'AND WEIGHS',WEIGHT,'KILOGRAMS'
         IF(HEAVY)PRINT * , &
            'AND SHOULD JOIN WEIGHT WATCHERS'
!
         PRINT * ,'AGE GROUP: ',GROUP
      END DO Loop1
      STOP
      END PROGRAM P37
DATA:
39  77
'Mary'
F
9
19  48
'Suzie'
T
99 99
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 >> P37  - Classification program
CLASSIFICATION PROGRAM
 
Mary           WAS MARRIED           9TIMES
SHE IS          39YEARS OLD
AND WEIGHS          77KILOGRAMS
AND SHOULD JOIN WEIGHT WATCHERS
AGE GROUP: MATURE         
 
Suzie           IS SINGLE
SHE IS          19YEARS OLD
AND WEIGHS          48KILOGRAMS
AGE GROUP: PRIME YEARS    
 

Pascal Version

PROGRAM p37 (input, output);
{
     Declarations
}
VAR
  age, kilos, marriages : INTEGER;
  group : STRING[15];
  name : STRING[10];
  single_tmp : 0..1;
  single, heavy : BOOLEAN;
{
     Main statements
}
BEGIN
  readln ( age, kilos );
  WHILE ( age <> 99 ) DO
    BEGIN
      writeln ( 'Classification Program' );
      writeln;
      heavy := false;
      IF ( kilos > 70 ) THEN
        heavy := TRUE;
      {
           Classify by age
      }
      IF ( age < 18 ) THEN
        group := 'minor'
      ELSE
        IF ( age < 35 ) THEN
          group := 'prime years'
        ELSE
          group := 'mature';

      readln ( name );
      readln ( single_tmp );
      IF ( single_tmp = 1 ) THEN
        single := TRUE;
      IF ( single_tmp = 0 ) THEN
        single := FALSE;

      IF single THEN
        writeln ( name, ' is single' )
      ELSE
        BEGIN
          readln ( marriages );
          writeln ( name, ' was married ', marriages, ' times' )
        END; { end else }

      writeln ( 'she is ', age, ' years old' );
      writeln ( 'and weighs ', kilos, ' kilograms' );
      IF heavy THEN
        writeln ( 'and should join weight watchers' );

      writeln ( 'age group: ', group );
      writeln
    END { end while }
END.



DATA:
39  77
Mary
0
9
19  48
Suzie
1
99

Last modified: 08/07/97