comp.lang.ada
 help / color / mirror / Atom feed
From: Adrian Hoe <AdrianHoe@nowhere.com>
Subject: Re: Question from newbie
Date: Wed, 18 Feb 2004 18:24:49 +0800
Date: 2004-02-18T18:24:49+08:00	[thread overview]
Message-ID: <40333d38_1@news.tm.net.my> (raw)
In-Reply-To: <ply8r0g05q.fsf@sparre.crs4.it>

Jacob Sparre Andersen wrote:

> Cecilia Chew wrote:
> 
> 
>>with Ada.Text_Io, Ada.Integer_Text_Io;
>>use Ada.Text_Io, Ada.Integer_Text_io;
>>
>>procedure Sort is
>>    subtype Index is Integer range 1 .. 10;
>>    subtype Char is Character range 'a' .. 'z';
>>    type Str is array (Index) of Char;
>>    procedure Ascending (Left : in out Character; Right : in out
>>Character);
>>
>>    procedure Ascending (Left : in out Character; Right : in out
>>Character) is
>>
>>       Temp : Character;
>>    begin
>>       if Left > Right then
>>          Temp := Left;
>>          Left := Right;
>>          Right := Temp;
>>       end if;
>>    end Ascending;
>>
>>    Num : Index;
>>    Input : Str;
>>
>>begin
>>    Put ("Please enter the number of character : ");
>>    Get (Num);
>>    Ada.Text_Io.Skip_Line;
>>    New_Line;
>>    if Num not in Index then
> 
> 
> This check should not be necessary.  Since "Num" is of the subtype
> "Index", it _can_ only have values that are in "Index".  You should on
> the other hand get a "Constraint_Error", if you try to enter a number
> that is not in the range of "Index".
> 
> 
>>       Put ("Please enter 1 to 10 characters only!");
>>    else
>>       Put ("Please enter" & Integer'Image(Num) & " characters : ");
>>       for Character_number in Index'First .. Num loop
>>	 Get (Input(Character_number));
> 
> 
> [ here's line 36 - I think ]
> 
> Did you actually enter "Num" characters in the range 'a' .. 'z'?
> 
> A "Constraint_Error" indicates that something is out of range.  It
> can't be "Character_Number", since both "Index'First" and "Num" are
> valid values of the subtype "Index" (and "Character_Number" thus
> always will be a valid index for the array "Input").
> 
> The alternative is that the character you entered wasn't in the valid
> range for "Input (Character_Number)", i.e. in the range 'a' .. 'z'.

No. That is fine. Look into line 36 carefully and you shall find the 
mistake. :)
-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




  reply	other threads:[~2004-02-18 10:24 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-16  2:43 Question from newbie Cecilia Chew
2004-02-16 10:49 ` Luke Guest
2004-02-16 10:53 ` Preben Randhol
2004-02-16 15:46   ` Jacob Sparre Andersen
2004-02-16 16:14     ` Preben Randhol
2004-02-18  9:52   ` Cecilia Chew
2004-02-18 10:19     ` Jacob Sparre Andersen
2004-02-18 10:24       ` Adrian Hoe [this message]
2004-02-18 10:24         ` Adrian Hoe
2004-02-18 10:21     ` Adrian Hoe
2004-02-16 11:20 ` Jacob Sparre Andersen
replies disabled

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