From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_20,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,a1b8a8cd64f5256,start X-Google-Attributes: gid103376,public From: G Subject: Hi all. Novice question. Date: 1999/09/04 Message-ID: <37D0D701.90F1B6F0@interact.net.au>#1/1 X-Deja-AN: 520934152 Content-Transfer-Encoding: 7bit Organization: Humanity X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 Newsgroups: comp.lang.ada Date: 1999-09-04T00:00:00+00:00 List-Id: 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