comp.lang.ada
 help / color / mirror / Atom feed
From: G <Dizzy@interact.net.au>
Subject: Hi all. Novice question.
Date: 1999/09/04
Date: 1999-09-04T00:00:00+00:00	[thread overview]
Message-ID: <37D0D701.90F1B6F0@interact.net.au> (raw)

I made the regrettable mistake of posting a message here about a year
ago whilst
I may have been a little intoxicated.

Ever since, all my messages are deleted by some automated process set up
by the
webmaster/sysop.  So... I still have questions and I will try to ask
them.

I am interested in designing simulations.  I have a philosophical
interest in ontology (the study of being and existence) and I believe
that this relates to entities and objects in programming.  I am using
things like ada and xml to elaborate other concepts - the structures of
the languages help with organisation of ideas, etc.  The XMLspy editor
is great for playing with design concepts and ada is useful to elaborate
a logical structure even if it is not going to be employed in an actual
program.

I am a novice... so please do not shoot me down in flames for doing
something
completely anathema to ada principles .

I got the M1A2 specifications from army-technology.com so don't wet
yourself if you think
I shouldn't write it here.  (Someone noted previously something of a
"precious" atmosphere here at times).

Anyway - I wanted to try and delineate an "object".  This was written
over a half-hour period and as a novice I still understand little of ada
but can anyone tell me if it makes sense to define an object like this.
I realise that there are many issues with
type definition and which variables should be constant but I just want
to know if it makes sense to define something this way - it compiles
fine on GNAT.  I also realise that many of the variables in this sort of
thing would be of types in external packages -
but I am a novice, in this field at least.  I have no idea if making
this type (M1A2_Abrams) private means that it could not
be instantiated in a program.  I have not got that far.

It is not supposed to be a credible package definition, just a
(relatively) sensible one.


This (Ada95) package spec and body:

-----------------------------

   package M1A2_Abrams is

      private type M1A2_Abrams;

   end M1A2_Abrams;

-------------------------------

package body M1a2_Abrams is

   type Physical_Specification is new Float;

   type Weapon_Specification is (M256_120_00mm_Smooth_Bore_Cannon,
      M240_7_62mm_Machine_Gun, M240_7_62mm_Machine_Gun_Skate_Mount,
      M2_0_50mm_Machine_Gun);

   type Mobility_Specification is new Float;

   type Engine is (Gas_Turbine);

   type Transmission is (Hydro_Kinetic);

   type Misc_Parameters is (Nbc_System);

   type Crew is new Integer;

   -- Type => M1a2 Abrams
   type M1a2_Abrams is
   record
      -- Type => Physical_Specification.
      Weight : Physical_Specification := 69.54;             -- tons
      Length_Gun_Forward : Physical_Specification := 387.0; -- inches
      Turret_Height : Physical_Specification := 93.5;       --
      Width : Physical_Specification := 144.0;              --
      Ground_Pressure : Physical_Specification := 15.4;     -- PSI
      Power_Weight_Ratio : Physical_Specification := 21.6;  -- hp/ton

      -- Type => Weapon_Specification.
      Main_Armament : Weapon_Specification :=
M256_120_00mm_Smooth_Bore_Cannon; -- 120 mm
      Coaxial_Weapon : Weapon_Specification :=
M240_7_62mm_Machine_Gun;         -- 7.62 mm
      Loaders_Weapon : Weapon_Specification :=
M240_7_62mm_Machine_Gun_Skate_Mount;
      Commanders_Weapon : Weapon_Specification :=
M2_0_50mm_Machine_Gun;        -- .50 mm

      -- Type => Mobility_Specification.
      -- Conversion to metric pending.
      Maximum_Speed : Mobility_Specification := 42.0;        -- 42.0 mph
(Governed)
      Cross_Country_Speed : Mobility_Specification := 30.0;  -- mph
      Speed_10pc_Slope : Mobility_Specification := 17.0;     -- mph
      Speed_60pc_Slope : Mobility_Specification := 4.1;      -- mph
      Acceleration_0_To_20 : Mobility_Specification := 7.2;  -- seconds
      Cruising_Range : Mobility_Specification := 265.0;      -- miles
      Obstacle_Crossing : Mobility_Specification := 42.0;    -- inches
      Vertical_Trench : Mobility_Specification := 9.0;       -- feet

      -- Type => Engine.
      M1a2_Engine : Engine := Gas_Turbine;


      -- Type => Transmission.
      M1a2_Transmission : Transmission := Hydro_Kinetic;

      -- Type => Misc_Parameters.
      M1a2_Air_Control : Misc_Parameters := Nbc_System;  -- Clean,
cooled air

      -- Type => Crew.
      M1a2_Crew : Crew := 4;

   end record;


end M1a2_Abrams;


------------------------------



-- I am teaching myself this stuff, so understand that before you grill
me.
-- Any feedback is useful.  Can an object be defined as a record like
this and
-- does it make sense to do so (?).



-- GM WALLACE
-- (does volunteer work online for welfare organisations)
-- AUSTRALIA





             reply	other threads:[~1999-09-04  0:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-09-04  0:00 G [this message]
1999-09-04  0:00 ` Hi all. Novice question Matthew Heaney
1999-09-07  0:00   ` Idiots (was Re: Hi all. Novice question.) Mark Lundquist
1999-09-08  0:00     ` Marin David Condic
1999-09-07  0:00 ` Hi all. Novice question Nick Roberts
1999-09-08  0:00   ` Hi all. Novice question. from an idiot G
1999-09-08  0:00     ` Preben Randhol
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox