comp.lang.ada
 help / color / mirror / Atom feed
From: "Ken Garlington" <Ken.Garlington@computer.org>
Subject: Re: How to make like Fortran "do i = 1,20,2"
Date: 2000/07/27
Date: 2000-07-27T00:00:00+00:00	[thread overview]
Message-ID: <PB2g5.3044$ck.314739@news.flash.net> (raw)
In-Reply-To: 8lpcbe$40n$1@news.uit.no


"Reinert Korsnes" <reinert@ola.npolar.no> wrote in message
news:8lpcbe$40n$1@news.uit.no...
>
> Hi,
>
> How can one in Ada elegantly make a loop through each 2 element of an
array ?
> I am looking for something like: "do i = 1,20,2" in Fortran, or
>
> for I in A'range ("step 2") loop
>    something...
> end loop;
>
> Yes, I can use:
>
> I := A'first;
> while I <= A'Last loop;
>   something..
>   I := I + 2;
> end loop;
>
> But this does not look so elegant....

Just off the top of my head:

for I in Beginning_Selection .. Final_Selection loop

   something involving A(Selected_By(I));

end loop;

where the functions come from a generic with a Step constant and an array
index type as parameters, with functions sketched as

  Beginning_Selection: Type'First;
  Final_Selection: Type'First + (Type'Length/Step) - 1 -- depends upon what
you want to do with odd-valued arrays, etc.
  Selected_By(I): I * Step;







  parent reply	other threads:[~2000-07-27  0:00 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-07-27  0:00 How to make like Fortran "do i = 1,20,2" Reinert Korsnes
2000-07-27  0:00 ` Larry Kilgallen
2000-07-27  0:00   ` Gary Scott
2000-07-27  0:00     ` Larry Kilgallen
2000-07-27  0:00     ` mjsilva
2000-07-27  0:00     ` Matthew J Heaney
2000-07-28  0:00       ` Gary Scott
2000-07-28  0:00         ` mjsilva
2000-07-29  0:00         ` Ehud Lamm
2000-07-28  0:00           ` Richard Riehle
2000-07-29  0:00           ` Robert I. Eachus
     [not found]           ` <39833637.3B83BFAC@lmtas.lmco.com>
2000-07-29  0:00             ` Gary Scott
2000-07-27  0:00     ` Pat Rogers
2000-07-27  0:00 ` des walker
2000-07-27  0:00   ` Gary Scott
2000-07-27  0:00   ` tmoran
2000-07-28  0:00     ` Reinert Korsnes
2000-07-28  0:00       ` Gautier
2000-07-29  0:00       ` tmoran
2000-07-27  0:00 ` Ken Garlington [this message]
2000-07-27  0:00 ` G. de Montmollin
2000-07-27  0:00 ` Lutz Donnerhacke
replies disabled

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