From: Maciej Sobczak <no.spam@no.spam.com>
Subject: Request for comments on simple Ada program
Date: Tue, 15 Nov 2005 17:03:50 +0100
Date: 2005-11-15T17:03:50+01:00 [thread overview]
Message-ID: <dld0t5$df3$1@sunnews.cern.ch> (raw)
Hi,
While playing with Ada and exercising its constructs, I have written the
following classic Sieve of Eratosthenes:
with Ada.Text_IO;
with Ada.Integer_Text_IO;
use Ada.Text_IO;
use Ada.Integer_Text_IO;
procedure Primes is
-- classic sieve
procedure Print_Primes(Upper : in Positive) is
Prime_Numbers : array(2..Upper) of Boolean := (others => True);
begin
for N in Prime_Numbers'Range loop
if Prime_Numbers(N) then
Put(N);
New_Line;
declare
I : Positive := 2 * N;
begin
while I <= Prime_Numbers'Last loop
Prime_Numbers(I) := False;
I := I + N;
end loop;
end;
end if;
end loop;
end Print_Primes;
Upper_Limit : Positive;
begin
Put("Enter the upper limit: ");
Get(Upper_Limit);
Print_Primes(Upper_Limit);
end Primes;
Now my question is: What would do do to make this code "better"?
Would you add comments? Loop labels? Change names? Is one-character name
for the loop control variable considered OK?
Would you put the "sieving" part in a separate function? Maybe even more
nested? Or maybe would you remove the separate function and put
everything in the main function altogether?
Would you define a separate type for the array or is the anonymous type
considered harmless?
Would you add more vertical whitespace? Or maybe it's already too much
of them?
Would you use different scopes for variable declarations?
The question is not whether this program is correct, but rather what
kind of pedantic touches would you apply to make it "better" (for your
definition of "better", like more readable, etc.)?
I'm interested in style and what do you consider to be a *good* Ada
code. Please do not hesitate to be as picky as you want - that's exactly
the point of this post.
Note: This is not a homework, I'm a self-learner.
--
Maciej Sobczak : http://www.msobczak.com/
Programming : http://www.msobczak.com/prog/
next reply other threads:[~2005-11-15 16:03 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-15 16:03 Maciej Sobczak [this message]
2005-11-15 17:43 ` Request for comments on simple Ada program Samuel Tardieu
2005-11-15 17:47 ` Samuel Tardieu
2005-11-15 21:28 ` Jacob Sparre Andersen
2005-11-15 21:53 ` Samuel Tardieu
2005-11-16 9:10 ` Anders Wirzenius
2005-11-15 21:55 ` Samuel Tardieu
2005-11-16 9:03 ` Niklas Holsti
2005-11-16 14:21 ` Jacob Sparre Andersen
2005-11-16 17:08 ` Niklas Holsti
2005-11-16 7:11 ` Brian May
2005-11-15 18:29 ` jimmaureenrogers
2005-11-15 19:33 ` tmoran
2005-11-16 14:46 ` jimmaureenrogers
2005-11-16 18:05 ` Martin Dowie
2005-11-16 19:54 ` tmoran
2005-11-15 18:52 ` Martin Krischik
2005-11-15 19:33 ` tmoran
2005-11-16 3:10 ` Ada Quality and Style book discussion Anonymous Coward
2005-11-16 4:09 ` tmoran
2005-11-16 5:49 ` Simon Wright
2005-11-16 7:03 ` Martin Dowie
2005-11-17 4:49 ` Anonymous Coward
2005-11-17 6:48 ` Martin Dowie
2005-11-17 11:45 ` Georg Bauhaus
2005-11-17 12:37 ` Stephen Leake
2005-11-17 13:24 ` Georg Bauhaus
2005-11-17 23:15 ` Stephen Leake
2005-11-19 20:28 ` Don't use the "use" clause Anonymous Coward
2005-11-19 20:35 ` Ed Falis
2005-11-21 17:36 ` David Emery
2005-11-21 19:20 ` Ed Falis
2005-11-21 22:21 ` David Trudgett
2005-11-21 22:51 ` Ed Falis
2005-11-22 0:15 ` Anonymous Coward
2005-11-23 4:09 ` Ed Falis
2005-11-23 19:26 ` tmoran
2005-11-19 21:48 ` Dmitry A. Kazakov
2005-11-19 22:33 ` Simon Wright
2005-11-19 23:40 ` Anonymous Coward
2005-11-20 11:07 ` Dmitry A. Kazakov
2005-11-20 19:50 ` Jeffrey R. Carter
2005-11-20 2:53 ` Stephen Leake
2005-11-20 3:57 ` Anonymous Coward
2005-11-20 10:44 ` Pascal Obry
2005-11-20 19:48 ` Jeffrey R. Carter
2005-11-22 5:11 ` greptree lou
2005-11-22 6:08 ` greptree Simon Wright
2005-11-25 1:00 ` greptree Björn Persson
2006-01-23 12:51 ` Don't use the "use" clause adaworks
2006-01-23 20:21 ` Jeffrey R. Carter
2006-01-24 2:27 ` Stephen Leake
2006-01-24 3:32 ` Ed Falis
2006-01-24 4:44 ` Jeffrey R. Carter
2006-01-24 22:53 ` Stephen Leake
2006-01-24 8:54 ` Dmitry A. Kazakov
2006-01-24 9:48 ` Martin Dowie
2006-01-24 10:28 ` Dmitry A. Kazakov
2006-01-24 13:30 ` brian.b.mcguinness
2006-01-24 20:03 ` Simon Wright
2006-01-24 23:00 ` Stephen Leake
2006-01-25 4:58 ` Jeffrey R. Carter
2006-01-24 23:38 ` Randy Brukardt
2006-01-25 14:49 ` Dmitry A. Kazakov
2006-01-25 21:46 ` Randy Brukardt
2006-01-26 9:14 ` Dmitry A. Kazakov
2006-01-27 1:04 ` Randy Brukardt
2006-01-27 15:23 ` Dmitry A. Kazakov
2006-01-27 16:35 ` Georg Bauhaus
2006-01-27 23:09 ` Randy Brukardt
2006-01-27 23:18 ` Randy Brukardt
2006-01-28 10:41 ` Dmitry A. Kazakov
2006-01-24 22:55 ` Stephen Leake
2006-01-24 9:42 ` Martin Dowie
2006-01-24 23:02 ` Stephen Leake
2006-01-25 9:14 ` Martin Dowie
2006-01-25 11:01 ` Peter Amey
2006-01-25 11:06 ` Martin Dowie
2006-01-25 20:07 ` Jeffrey R. Carter
2006-01-31 2:24 ` Stephen Leake
2006-02-09 5:13 ` Anonymous Coward
2005-11-17 20:55 ` Ada Quality and Style book discussion Simon Wright
2005-11-18 0:44 ` Larry Kilgallen
2005-11-19 20:56 ` Anonymous Coward
2005-11-19 22:41 ` Simon Wright
2005-11-20 0:03 ` Anonymous Coward
2005-11-17 4:23 ` Ada Quality and Style book discussion ("_Type" suffix) Anonymous Coward
2005-11-17 10:51 ` Martin Dowie
2005-11-19 21:52 ` Anonymous Coward
2005-11-20 15:50 ` Martin Dowie
2005-11-17 11:34 ` Georg Bauhaus
2005-11-17 11:53 ` Martin Dowie
2005-11-17 13:26 ` Georg Bauhaus
2005-11-17 12:26 ` Brian May
2005-11-17 13:45 ` Martin Dowie
2005-11-17 14:22 ` Marc A. Criley
2005-11-17 14:50 ` Martin Dowie
2005-11-18 3:04 ` Brian May
2005-11-18 9:23 ` Maciej Sobczak
2005-11-18 14:00 ` Marc A. Criley
2005-11-18 11:48 ` Java exception model. Was: " Peter C. Chapin
2005-11-18 13:18 ` Dmitry A. Kazakov
2005-11-19 18:06 ` Peter C. Chapin
2005-11-19 18:58 ` Dmitry A. Kazakov
2005-11-21 22:38 ` Brian May
2005-11-21 23:27 ` Brian May
2005-11-18 22:33 ` Simon Wright
2005-11-17 14:03 ` Hyman Rosen
2005-11-20 19:41 ` Jeffrey R. Carter
2005-11-20 20:43 ` Dmitry A. Kazakov
2005-11-21 0:00 ` Simon Wright
2005-11-16 13:51 ` Ada Quality and Style book discussion Marc A. Criley
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox