comp.lang.ada
 help / color / mirror / Atom feed
From: James Rogers <jimmaureenrogers@worldnet.att.net>
Subject: Re: quick question
Date: Fri, 07 Sep 2001 18:53:23 GMT
Date: 2001-09-07T18:53:23+00:00	[thread overview]
Message-ID: <3B9917B0.E654661@worldnet.att.net> (raw)
In-Reply-To: 9naqvp$rlf$1@zeus.orl.lmco.com

mop wrote:
> 
> I have something along these lines
> 
> Data : SomeType is  ( word1 => (x.a => 1,
>                                                         x.b => Normal),
>                                     --etc
>                                       word8.checksum => Compute_Checksum);
> 
> Compute_Checksum here is a procedure that does a "straight" sum on the
> bytes.  Dont care about overflow.   So now i need to take whatever value
> compute_checksum returns and "pack" in word8.checksum.
> 
> I'm thinking that all i need to do is create some sort of array such that:
> 
>     type SomeType_Array is array (SomeType) of BYTE;

The assignment to SomeType above shows that SomeType is not a discrete
type. Only discrete types can be used to index an array.

Please explain what you are really trying to achieve. This example
looks a lot like a student trying to program a problem he or she does
not understand using a language he or she does not understand.

> 
> Trouble is is I'm hearing I need to do some sort of Unchecked Conversion
> because of words like "Normal" which is not an integer or real, etc?  Is
> this true, If yes how to do this.  Here is procedure Compute_Checksum
> 
> procedure Compute_Checksum is
>        Checksum  : BYTE : = 0;
> begin
>       for i in SomeType_Array'First .. SomeType_Array'Last -1 loop
>              Checksum :=  Checksum + SomeType_Array (i);
>       end loop
>      word8.checksum := Checksum;
> end procedure Compute_Checksum;

This procedure will not work as shown above. You want to assign a value
to a field. That will require a function using the syntax shown at the
beginning of your posting.

It will also not work because you are not specifying which instance of
SomeType_Array to use. Instead you are trying to perform calculations
on the type itself.

I suggest you review your Ada text, as well as any notes you may have
taken from lecture. If you still do not understand, you should schedule
some time with your professor to clear up your misunderstandings.

Jim Rogers
Colorado Springs, Colorado USA



      reply	other threads:[~2001-09-07 18:53 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-09-07 16:00 quick question mop
2001-09-07 18:53 ` James Rogers [this message]
replies disabled

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