home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / programm / programi / adaed.lzh / Ada / Examples / Wave.ada < prev    next >
Encoding:
Text File  |  1992-03-02  |  4.2 KB  |  120 lines

  1. --From schweige@taurus.cs.nps.navy.mil Sun Mar  1 21:15:18 1992
  2. --Return-Path: <schweige@taurus.cs.nps.navy.mil>
  3. --Received: from taurus.cs.nps.navy.mil (taurus-campus.cs.nps.navy.mil) by beno.CSS.GOV (4.1/SMI-4.1)
  4. --        id AA18219; Sun, 1 Mar 92 21:15:16 EST
  5. --Received: from aldebaran.cs.nps.navy.mil.nps.navy.mil by taurus.cs.nps.navy.mil (4.1/cs.nps-1.0)
  6. --        id AA12307; Sun, 1 Mar 92 18:14:45 PST
  7. --Date: Sun, 1 Mar 92 18:14:45 PST
  8. --From: schweige@taurus.cs.nps.navy.mil (Jeffrey M. Schweiger)
  9. --Message-Id: <9203020214.AA12307@taurus.cs.nps.navy.mil>
  10. --To: black@beno.CSS.GOV
  11. --Subject: More Ada
  12. --Status: R
  13.  
  14. -- Title          : Lab 2
  15. -- Author         : Jeffrey M. Schweiger
  16. -- Date           : 6 Apr 1989
  17. -- Revised        : 10 Apr 1989
  18. -- Course         : CS-2970
  19. -- System         : Zenith 248
  20. -- Compiler       : InterAda
  21. -- Description    : This package is used to simplify access to the procedures
  22. --                  GET and PUT for the standard types INTEGER and FLOAT.
  23. --                  This is a non-standard package used by example programs
  24. --                  in the text book 'Ada from the Beginning.'
  25.  
  26. with TEXT_IO;
  27. package BASIC_NUM_IO is
  28.   package STANDARD_INTEGER_IO is new TEXT_IO.INTEGER_IO(INTEGER);
  29.  
  30.   DEFAULT_WIDTH : TEXT_IO.FIELD := INTEGER'WIDTH;
  31.   DEFAULT_BASE  : TEXT_IO.NUMBER_BASE := 10;
  32.  
  33.   procedure GET (ITEM        :out INTEGER;
  34.                  WIDTH       :in TEXT_IO.FIELD := 0)
  35.                  renames STANDARD_INTEGER_IO.GET;
  36.  
  37.   procedure PUT (ITEM        :in INTEGER;
  38.                  WIDTH       :in TEXT_IO.FIELD := DEFAULT_WIDTH;
  39.                  BASE        :IN TEXT_IO.NUMBER_BASE := DEFAULT_BASE)
  40.                  renames STANDARD_INTEGER_IO.PUT;
  41.  
  42.   package STANDARD_FLOAT_IO is new TEXT_IO.FLOAT_IO(FLOAT);
  43.  
  44.   DEFAULT_FORE : TEXT_IO.FIELD := 2;
  45.   DEFAULT_AFT  : TEXT_IO.FIELD := FLOAT'DIGITS - 1;
  46.   DEFAULT_EXP  : TEXT_IO.FIELD := 3;
  47.  
  48.   procedure GET (ITEM        :out FLOAT;
  49.                  WIDTH       :in TEXT_IO.FIELD := 0)
  50.                  renames STANDARD_FLOAT_IO.GET;
  51.  
  52.   procedure PUT (ITEM        :in FLOAT;
  53.                  FORE        :in TEXT_IO.FIELD := DEFAULT_FORE;
  54.                  AFT         :in TEXT_IO.FIELD := DEFAULT_AFT;
  55.                  EXP         :in TEXT_IO.FIELD := DEFAULT_EXP)
  56.                  renames STANDARD_FLOAT_IO.PUT;
  57.  
  58. end BASIC_NUM_IO;
  59.  
  60.  
  61. ------------
  62. -- Title          : Project 1
  63. -- Author         : Jeffrey M. Schweiger
  64. -- Date           : 12 Apr 1989
  65. -- Revised        : 12 Apr 1989
  66. -- Course         : CS-2970
  67. -- System         : Zenith 248
  68. -- Compiler       : InterAda
  69. -- Description    : Given an input frequency in MHz, this program will compute
  70. --                  the wavelength in meters of the frequency, the length of
  71. --                  of the vertical radiator, and the length of the radials in
  72. --                  meters and feet for a ground-plane antenna.
  73.  
  74. with TEXT_IO,BASIC_NUM_IO;
  75. use TEXT_IO,BASIC_NUM_IO;
  76. procedure GROUND_PLANE_ANTENNA is
  77.   FREQUENCY, WAVELENGTH, VERTICAL_RADIATOR, RADIAL: FLOAT;
  78.   -- FREQUENCY in MHz, WAVELENGTH in meters, VERTICAL_RADIATOR, RADIAL
  79.   -- in feet.
  80.   SPEED_OF_LIGHT: constant := 3.0E8;
  81.   -- SPEED_OF_LIGHT in meters per second.
  82.  
  83. begin
  84.   -- read input data.
  85.   PUT ("Enter desired frequency in MHz: ");
  86.   GET (FREQUENCY);
  87.   -- calculate wavelength.
  88.   WAVELENGTH := SPEED_OF_LIGHT / (FREQUENCY * 1.0E6);
  89.   -- output frequency and wavelength.
  90.   NEW_LINE;
  91.   PUT_LINE ("Ground-Plane Antenna");
  92.   PUT ("Frequency is:  ");
  93.   SET_COL (25);
  94.   PUT (FREQUENCY, FORE => 4, AFT => 2, EXP => 0);
  95.   PUT_LINE (" MHz.");
  96.   PUT ("Wavelength is:  ");
  97.   SET_COL (25);
  98.   PUT (WAVELENGTH, FORE => 4, AFT => 2, EXP => 0);
  99.   PUT_LINE (" m.");
  100.   -- calculate and output length of vertical radiator.
  101.   VERTICAL_RADIATOR := 234.0 / FREQUENCY;
  102.   PUT ("Vertical Radiator is:  ");
  103.   SET_COL (25);
  104.   PUT (VERTICAL_RADIATOR/3.281, FORE => 4, AFT => 2, EXP => 0);
  105.   PUT (" m");
  106.   PUT (VERTICAL_RADIATOR, FORE => 4, AFT => 2, EXP => 0);
  107.   PUT_LINE (" ft.");
  108.   -- calculate and output length of radials.
  109.   RADIAL := 240.0 / FREQUENCY;
  110.   PUT ("Radials are:  ");
  111.   SET_COL (25);
  112.   PUT (RADIAL/3.281, FORE => 4, AFT => 2, EXP => 0);
  113.   PUT (" m");
  114.   PUT (RADIAL, FORE => 4, AFT => 2, EXP => 0);
  115.   PUT_LINE (" ft.");
  116.  
  117. end GROUND_PLANE_ANTENNA;
  118.  
  119.  
  120.