comp.lang.ada
 help / color / mirror / Atom feed
From: "isaac2004" <isaac_2004@yahoo.com>
Subject: Re: Ada.Text_IO.Create
Date: 21 Feb 2006 14:15:59 -0800
Date: 2006-02-21T14:15:59-08:00	[thread overview]
Message-ID: <1140560159.318265.105160@g47g2000cwa.googlegroups.com> (raw)
In-Reply-To: <3stiv1l39144oscbs5he2v6h5uvfmli03q@4ax.com>

alright everybody who helped me thank you because i am near completion

i only have one more question. when i run my code for a length of 30 it
hits a range error, any help on how on fix it

with Ada.Text_Io;
use Ada.Text_Io;
with Ada.Integer_Text_Io;
use Ada.Integer_Text_Io;
procedure Assignment3 is

---------------------------------------------------------------------
   --| program that takes a range in the form of a minimum and maximum
number,
   --| and prompts for the length, to find all sociable chains inside
of the range
   --| to that desired chain
   --| Isaac Levin, Western Washington
   --| February 2006

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

   Start  : Natural;
   Stop   : Natural;
   Max    : Natural range 1 .. 30;
   Chains : File_Type;


function Sum_Of_Divisors (
         N : Integer)
     return Integer is
       C: Integer;
      Sum : Integer;

   begin
      Sum := 1;
      C:=2;
      while C**2 <= N loop --Number

         if N mod C = 0 then
            if C * 2 = N then
               Sum := Sum + C;
            else
               Sum := Sum + C + N / C;
            end if;
         end if;
         C := C + 1 ;
      end loop;
      return Sum ;

   end Sum_Of_Divisors;



   procedure Sociable_Chain (
         Start,
         Max   : Natural) is
      A : array (1 .. 30) of Natural;
      I : Natural                    := 2;

   begin
      A(1) :=Start; -- makes first number of array the prompt number
      A(2) := Sum_Of_Divisors (A(1));
      -- 2nd number in array is sum of divisors of prompt
      while I < Max and A (1) /= A(I) loop
         -- loop till length is reached and till A(I) = A(1)
         I:= I + 1;
         A(I) := Sum_Of_Divisors (A(I - 1));
      end loop;
      if A(1) = A(I) then
         for Index in 1 .. I loop
            Put(
               File  => Chains,
               Item  => A (Index),
               Width => 0);
            New_Line (File => Chains) ;
            Put(
               Item  => A (Index),
               Width => 0);
            New_Line ;
         end loop;
         New_Line (File => Chains) ;
         New_Line ;
      end if ;
   end Sociable_Chain;

begin


   Put(Item => "Please enter your starting integer.");
   Get(Item => Start);
   New_Line;
   Put(Item => " Please enter your ending integer.");
   Get(Item => Stop);
   New_Line;
   Put(Item => " Please enter the length of largest chain. ");
   Get(Item => Max);




   Create(
      File => Chains,
      Mode => Out_File,
      Name => "chains.txt");

   for N in Start .. Stop loop
      Sociable_Chain ( N, Max) ;
   end loop;

   Close (File => Chains) ;

end Assignment3 ; 
   

thank you




  parent reply	other threads:[~2006-02-21 22:15 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-17 23:13 invalid parameter list isaac2004
2006-02-18  6:02 ` jimmaureenrogers
     [not found] ` <tfadv19pqf17h3prdhquk3e5f30j6vhdhl@4ax.com>
2006-02-18  8:04   ` isaac2004
2006-02-18 14:34     ` Björn Persson
2006-02-18 21:19       ` isaac2004
2006-02-18 23:31         ` Björn Persson
2006-02-18 23:34           ` Martin Dowie
2006-02-19  0:06             ` isaac2004
     [not found]               ` <dmlfv11b4qagaf3gec853k9on191576gqc@4ax.com>
2006-02-19  4:06                 ` isaac2004
     [not found]                   ` <uavfv1pjdorpim6lpu8sjfdlq4lmmn1jes@4ax.com>
2006-02-19 16:21                     ` Björn Persson
2006-02-19 15:54               ` Björn Persson
2006-02-19  0:15             ` Ada.Text_IO.Create (was: invalid parameter list) Björn Persson
2006-02-19  8:14               ` Ada.Text_IO.Create Martin Dowie
2006-02-19 19:45                 ` Ada.Text_IO.Create Jeffrey R. Carter
2006-02-19 21:49                   ` Ada.Text_IO.Create Larry Kilgallen
2006-02-20  6:09                     ` Ada.Text_IO.Create isaac2004
2006-02-20  6:43                       ` Ada.Text_IO.Create Gautier
     [not found]                       ` <3stiv1l39144oscbs5he2v6h5uvfmli03q@4ax.com>
2006-02-21 22:15                         ` isaac2004 [this message]
2006-02-22  7:45                           ` Range error (was: Ada.Text_IO.Create) Björn Persson
2006-02-22  8:27                             ` Range error Björn Persson
replies disabled

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