From: yus000@unbc.edu
Subject: urgent help needed!!!
Date: 1997/03/29
Date: 1997-03-29T00:00:00+00:00 [thread overview]
Message-ID: <859690935.9677@dejanews.com> (raw)
Hi, i have a urgent question.
I am doing assignment on stacks. We have to declare the stack as "limited
private type"
As a result, in my main program, i need to initiate the stack. Do i use
with Text_IO; use Text_IO;
with ordered_stack; use ordered_stack;
procedure main is
begin
declare
w: stack; -- line 7
m: integer := 4;
n: integer := 3;
k: integer := 2;
begin
push(w, m);
push(w, n);
push(w, k);
end;
end main;
*** i get the error" subtype mark required in this context"
How do i arrange my main program???
I tried to change it to : type w is new ordered_stack, but i still get
errors. Please help!!!
thanks.
----------------------------------------------------------------
with ordered_stack; --use ordered_stack;
with Text_IO; use Text_IO;
procedure testorder is
a,b,c,d : integer;
begin
declare
use ordered_stack;
a : integer := 4;
b : integer := 3;
c : integer := 2;
d : integer := 1;
-- a, b, c, d : integer;
type w is new ordered_stack;
--type p is new ordered_stack;
--subtype w is p; -- stack;
begin
-- a := 4;
-- b := 3;
--c := 2;
--d := 1;
--begin
push(w,a);
push(w,b);
push(w,c);
push(w,d);
put(" is going to print");
New_Line;
print(w);
end;
end testorder;
----------------------------------------------------------
------------------------------------------------------------------
with Gnat.IO; use Gnat.IO;
package body ordered_stack is
procedure push(s: in out stack; x: in integer) is
k: cell_ptr;
begin
k := new cell'(value=>x, next=>null);
s.list.next := k;
s.list := k;
s.count := s.count + 1;
end push;
--////////////////////////////////////////
function empty (s: stack) return Boolean is
begin
return s.list = null;
end empty;
--/////////////////////////////////////////////
procedure pop(s: in out stack; x: out integer)is
begin
x:= s.list.value;
s.list := s.list.next;
end pop;
--////////////////////////////////////////////////
function top(s: stack) return integer is
begin
return s.list.value;
end top;
--////////////////////////////////////////////////////
procedure print(s: out stack) is
i: integer;
m: integer;
begin
m := s.count;
Put("The ordered stack is as follows");
New_Line;
for i in 1 .. m loop
put(integer(s.list.value));
end loop;
New_Line;
end print;
end ordered_stack;
---------------------------------------------------------------------
*******************************************************************
package ordered_stack is
type stack is limited private;
procedure push(s: in out stack; x: in integer);
function empty (s: stack) return Boolean;
procedure pop (s: in out stack; x: out integer);
function top (s: stack) return integer;
-- function top return integer;
procedure print(s: out stack);
private
type cell;
type cell_ptr is access cell;
type cell is
record
value: integer;
next: cell_ptr;
end record;
type stack is
record
--max: constant := 100;
--type integer_vector is array(integer range<>) of integer;
--s: interger_vector(1 .. max);
--top: integer range 0 .. max := 0;
count: integer:= 0;
list: cell_ptr;
end record;
end;
*********************************************************************
-------------------==== Posted via Deja News ====-----------------------
http://www.dejanews.com/ Search, Read, Post to Usenet
next reply other threads:[~1997-03-29 0:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-03-29 0:00 yus000 [this message]
1997-03-31 0:00 ` urgent help needed!!! Robert Dewar
1997-03-31 0:00 ` Nick Roberts
[not found] ` <01bc3dd0$ff5bf600$7e0464c3@edi-c>
1997-03-31 0:00 ` Nick Roberts
1997-04-01 0:00 ` Larry Kilgallen
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox