[Home] [Prev] [Next] [Index]

14.7 Example of Input-Output

14.7 Example of Input-Output

1
The following example shows the use of some of the text input-output facilities in a dialogue with a user at a terminal. The user is prompted to type a color, and the program responds by giving the number of items of that color available in stock, according to an inventory. The default input and output files are used. For simplicity, all the requisite instantiations are given within one subprogram; in practice, a package, separate from the procedure, would be used.

2
with TEXT_IO; use TEXT_IO; 
  procedure DIALOGUE is
    type COLOR is (WHITE, RED, ORANGE, YELLOW, GREEN, BLUE, BROWN); 
    package COLOR_IO is new ENUMERATION_IO(ENUM => COLOR); 
    package NUMBER_IO is new INTEGER_IO(INTEGER);
    use COLOR_IO, NUMBER_IO; 

    INVENTORY : array (COLOR) of INTEGER :=
		 (20, 17, 43, 10, 28, 173, 87); 
    CHOICE : COLOR;

    procedure ENTER_COLOR (SELECTION : out COLOR) is 
    begin 
      loop 
        begin
          PUT("Color selected: "); -- prompts user 
          GET(SELECTION); 	-- accepts color typed, or raises exception 
          return;
        exception
          when DATA_ERROR => 
            PUT("Invalid color, try again. ");  -- user has typed 
                                                -- new line
            NEW_LINE(2);	
            -- completes execution of the block statement
        end; 
      end loop;  -- repeats the block statement until color
                                     -- accepted
    end; 
  begin -- statements of DIALOGUE; 

    NUMBER_IO.DEFAULT_WIDTH := 5; 

    loop 

      ENTER_COLOR(CHOICE); -- user types color and new line 

      SET_COL(5); PUT(CHOICE); 
      PUT(" items available:");
      SET_COL(40); PUT(INVENTORY(CHOICE)); -- default width is 5
      NEW_LINE;
    end loop; 
  end DIALOGUE; 

3
Example of an interaction (characters typed by the user are italicized):

Color selected: Black 
Invalid color, try again. 

Color selected: Blue
      BLUE items available: 173
Color selected: Yellow
     YELLOW items available: 10



[Home] [Prev] [Next] [Index]

documentation@rational.com
Copyright © 1993-2000, Rational Software Corporation. All rights reserved.