comp.lang.ada
 help / color / mirror / Atom feed
From: "Stuart" <stuart@0.0>
Subject: Re: How to put 200.0 (is float variable of 32 bits) into an integer sub-type of 10 bits (complete program included)
Date: Thu, 15 Jan 2009 18:34:10 -0000
Date: 2009-01-15T18:34:10+00:00	[thread overview]
Message-ID: <496f7d3b$1_1@glkas0286.greenlnk.net> (raw)
In-Reply-To: a61abb30-bc60-4d13-b298-f369ddc8f741@z6g2000pre.googlegroups.com

"ChristopherL" <clusardi2k@aol.com> wrote in message 
news:a61abb30-bc60-4d13-b298-f369ddc8f741@z6g2000pre.googlegroups.com...
> On Jan 15, 9:09 am, christoph.gr...@eurocopter.com wrote:
> > On 15 Jan., 17:46, ChristopherL <clusard...@aol.com> wrote:
> >
> > > Can some the Ada intelligent person modify this program to make it
> > > correctly
> > > put the value in variable "Arg" into the variable "Result".
> >
> > Can anybody please help me to seat 200 people in a bus with 127 seats.
>
> But, isn't 2^10 greater than 200!

Yes it is.

>  So, is there some way to put 200.0 into the variable "Result".

Not in a way that means Result has the value 200 because the declared type 
of Result (Short_integer1) is specified as having the range  -128..127.  If 
you want Result to hold values in the range 0..200 you need to declare its 
type accordingly.

> Ideally, if I achieve my ultimate goal I would like to later look at
> "Result" and be able to reconstruct "Arg" (200.0) from what is in
> "Result".

You don't say to what precision you want Arg to be restored - it would seem 
that you are only expecting to get whole number values.  In which case, if 
you are wanting to keep all your definitions as they are, you might best be 
doing wrap around during the conversions.  For example:
     if (Arg > 127.0) then
         Result := Short_integer1(127.0 - Arg);
     else
         Result := Short_integer1(Arg);
    end if:

    if (Result < 0) then
       Arg := A_float(127 - Result);
          -- I think the calculation will be done in the base type of Result 
(integer),
          -- if not you can use integer'(result) to be exlicit about it.
    else
       Arg := A_float(Result);
   end if;

Of course, you should comment heavily to explain this odd-ball coding and 
why you don't simply declare the type to be in the range 0..200.

Regards
-- 
Stuart 





  parent reply	other threads:[~2009-01-15 18:34 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <407ae64d-3cb3-4310-b59e-f1bbae9910a5@t39g2000prh.googlegroups.com>
2009-01-14  1:33 ` How to put 200 into an integer sub-type of 16 bits (code included) Brian Drummond
     [not found]   ` <3d3719f4-355c-4094-9902-495d612d46fe@n33g2000pri.googlegroups.com>
2009-01-14  9:06     ` Ludovic Brenta
2009-01-14 10:08     ` Georg Bauhaus
2009-01-14 10:29       ` Georg Bauhaus
2009-01-14 12:47     ` Brian Drummond
2009-01-14 12:53     ` Brian Drummond
     [not found]       ` <f4894476-851e-493f-93a2-168976bd97fb@s1g2000prg.googlegroups.com>
2009-01-14 16:08         ` Adam Beneschan
2009-01-14 21:17           ` sjw
     [not found]           ` <139961e9-bae6-4e60-8ff7-4f4779b27481@z6g2000pre.googlegroups.com>
2009-01-14 20:41             ` Adam Beneschan
     [not found]               ` <1a2b31ac-cf6b-44e3-85b7-04594460db87@d36g2000prf.googlegroups.com>
2009-01-14 22:47                 ` Adam Beneschan
2009-01-14 23:11                 ` Ludovic Brenta
2009-01-15  9:56                 ` Stuart
2009-01-15 12:40                 ` Stuart
2009-01-15 14:02                 ` Stephen Leake
2009-01-15 15:54                   ` Dmitry A. Kazakov
2009-01-15 16:29                     ` Hyman Rosen
2009-01-15 22:15                       ` Dmitry A. Kazakov
2009-01-16  9:11                         ` Jacob Sparre Andersen
2009-01-16 11:03                           ` Mike H
2009-01-16 22:16                           ` Brian Drummond
     [not found]               ` <c265ffb7-6159-4d85-b259-78b830e115f9@v18g2000pro.googlegroups.com>
2009-01-15  2:39                 ` SteveD@teranews.com
     [not found]               ` <3625f980-4406-4f51-b494-dd4a48cab840@p36g2000prp.googlegroups.com>
2009-01-15  6:53                 ` Michael Bode
2009-01-15  8:57                   ` Martin
     [not found]               ` <fc154f52-7168-447a-bcd3-6ece9066ebf7@r37g2000prr.googlegroups.com>
2009-01-15 10:29                 ` Georg Bauhaus
2009-01-14 21:32             ` sjw
2009-01-14 21:51             ` Brian Drummond
2009-01-14 18:49     ` Jeffrey R. Carter
2009-01-15 10:12       ` Quote of the Day (Re: " Peter Hermann
2009-01-14 21:09   ` sjw
2009-01-14 21:16     ` Adam Beneschan
2009-01-14 23:09       ` Martin
2009-01-15  0:07         ` Adam Beneschan
2009-01-15  3:09           ` Randy Brukardt
2009-01-15 16:28             ` Adam Beneschan
2009-01-15 21:21               ` Robert A Duff
2009-01-16  1:17                 ` Adam Beneschan
2009-01-16 14:55                   ` Robert A Duff
2009-01-15 14:44     ` Brian Drummond
     [not found]       ` <3f1f2f67-5d69-4baf-8e8c-0d2b5f68475f@p36g2000prp.googlegroups.com>
2009-01-15 16:36         ` How to put 200.0 (is float variable of 32 bits) into an integer sub-type of 10 bits (complete program included) Adam Beneschan
     [not found]         ` <8e64f509-f6fe-4d86-ae1a-fe0b1c88555a@v5g2000pre.googlegroups.com>
2009-01-15 17:09           ` christoph.grein
2009-01-15 17:17             ` Adam Beneschan
2009-01-15 17:29               ` Georg Bauhaus
     [not found]                 ` <09b4a056-688d-49c8-b935-fa0b30f1ae84@w1g2000prk.googlegroups.com>
2009-01-15 18:40                   ` Mike H
     [not found]                     ` <be26729d-9458-42fa-8c8c-004ca33b790d@f33g2000vbf.googlegroups.com>
2009-01-15 20:57                       ` Niklas Holsti
     [not found]                 ` <97231951-54a0-4df7-bb73-04261b34287f@e6g2000vbe.googlegroups.com>
2009-01-16  3:17                   ` Steve D
     [not found]             ` <a61abb30-bc60-4d13-b298-f369ddc8f741@z6g2000pre.googlegroups.com>
2009-01-15 18:15               ` Martin
2009-01-15 18:34               ` Stuart [this message]
2009-01-15 17:23           ` Georg Bauhaus
     [not found]         ` <d3b7ad53-af51-4ac5-9167-7cb99e61b2b1@v5g2000pre.googlegroups.com>
2009-01-15 17:50           ` Stuart
2009-01-15 20:48 Martin
     [not found] ` <8a7769ad-133f-4587-9239-34ce90978aa1@v38g2000yqb.googlegroups.com>
2009-01-22  1:30   ` Keith Thompson
replies disabled

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