comp.lang.ada
 help / color / mirror / Atom feed
From: "Phoenix." <david.judge1@ntlworld.com1>
Subject: Re: Why can't i get an EXE!
Date: Sun, 6 Jan 2002 19:45:02 -0000
Date: 2002-01-06T19:45:02+00:00	[thread overview]
Message-ID: <8Q1_7.2291$6q2.727350@news2-win.server.ntlworld.com> (raw)

    Tankyou very much for your assistance with my program. Your advise has
solved my primary problem. However I appear to have a new problem.
    My program now runs however it doesn't perform it's desired task. Which
is to allow the user to add and remove items from a queue and also to show
what is in the queue. This is where my problem occured when I was trying to
show what is stored within the queue.
    The problem is that as soon as the procedure ends, it appears to clear
what is stored within the que. Therefore I think the problem is that the
variables are not declared globally, and are local to each procedure, and
thus I was wondering how I declare them Globally if that is the problem.
However if it is not the problem I was wondering what the problem is.

 >>BEGIN QUE.ADS

package Que is

Empty_Queue : exception;

type Queue is array(1..500) of Integer;

Q : Queue;

Qs : Queue;

Tail : Integer := 0;

Tails : Integer := 0;

Head : Integer := 1;

Heads : Integer := 1;

Count : Integer := 0;

N : Integer;

A : Integer;

procedure Initialiser(Q: in out Queue; Head: in out Integer; Tail: in out

Integer);

procedure Add(Q: in out Queue; Head: in out Integer; Tail: in out Integer);

procedure Remove(Q: in out Queue; Head: in out Integer; Tail: in out

Integer);

procedure Show(Q: in out Queue; Head: in out Integer; Tail: in out Integer);

end Que;

<<END QUE.ADS



>>BEGIN QUE.ADB

with Ada.Text_Io, Ada.Integer_Text_Io;

use Ada.Text_Io, Ada.Integer_Text_Io;

with Text_Io;

use Text_Io;



package body Que is

procedure Initialiser(Q: in out Queue; Head: in out Integer; Tail: in out

Integer) is

begin

Tail := 0;

Head := 1;



end Initialiser;

procedure Add(Q: in out Queue; Head: in out Integer; Tail: in out Integer)

is

begin

Put_Line("Please enter an integer ");

Get(N);

Tail := Tail+1;

Q(Tail) := N;

-- call proc show here

-- Proc SHOW

for Count in Tail..Head loop

A := Q(Count);

Put(A);

end loop;

-- END PROC SHOW

end Add;

procedure Remove(Q: in out Queue; Head: in out Integer; Tail: in out

Integer) is

begin

if Head < Tail then

--put_line("Queue is currently empty");

raise Empty_Queue;

else

Head := Head + 1;

end if;

--call proc show here

exception

when Empty_Queue=>

Skip_Line;

Put_Line("The queue is currently empty");

New_Line;

end Remove;

procedure Show(Q: in out Queue; Head: in out Integer; Tail: in out Integer)
is

A : integer;

begin

put_line("This is your queue: - ");

if Head > Tail then

--put_line("Queue is currently empty");

raise Empty_Queue;

else

for Count in Head..Tail loop

A := Q(count);

Put(A);

end loop;

end if;

exception

when Empty_Queue =>

Skip_Line;

Put_Line("The queue is currently empty");

New_Line;

end Show;

end Que;

<<END QUE.ADB



>>BEGIN MAIN.ADB

with Que; use Que;

with Ada.Text_Io, Ada.Integer_Text_Io;

use Ada.Text_Io, Ada.Integer_Text_Io;

procedure Main is

begin

loop

Initialiser(Q, Head, Tail);

New_Line;

Put_Line("****************************");

Put_Line(" 1). Add to queue");

Put_Line(" 2). remove to queue");

Put_Line(" 3). Show Queue");

Put_Line(" 4). Quit queue program");

Put_Line("****************************");

New_Line;

Get(A);

case A is --Execute menu option depending on A's value

when 1 => Add(Q, Head, Tail);

when 2 => Remove(Q, Head, Tail);

when 3 => Show(Q, Head, Tail);

when 4 => exit;

when others => Put_Line("Sorry incorrect entry please retry");

end case;

end loop;

end Main;

<<END MAIN.ADB








             reply	other threads:[~2002-01-06 19:45 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-06 19:45 Phoenix. [this message]
2002-01-06 20:12 ` Why can't i get an EXE! Preben Randhol
2002-01-06 22:03   ` Phoenix.
  -- strict thread matches above, loose matches on Subject: below --
2002-01-05 23:33 NTL
2002-01-06  0:52 ` Preben Randhol
2002-01-06  2:02   ` Phoenix.
2002-01-06 12:19     ` Preben Randhol
2002-01-07 11:06 ` Preben Randhol
2002-01-07 21:52 ` Liddle Feesh
2002-01-08 13:14   ` Phoenix.
2002-01-08 13:31     ` Phoenix.
2002-01-08 13:55       ` Liddle Feesh
2002-01-08 13:52     ` Liddle Feesh
2002-01-07 21:59 ` Liddle Feesh
replies disabled

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