Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- ads
- PACKAGE Stosy IS
- TYPE Stos(Max_Rozmiar: Integer) IS PRIVATE;
- stos_pusty, stos_pelny: exception;
- PROCEDURE Wypisz (S: IN Stos);
- PROCEDURE WlozNaStos(S: IN OUT Stos; L: IN Integer);
- PROCEDURE ZdejmijZeStosu(S: IN OUT Stos; L: OUT Integer);
- FUNCTION Rozmiar (S: IN Stos) RETURN Integer;
- PRIVATE
- TYPE Tablica IS ARRAY (Integer RANGE <>) OF Integer;
- type stos(max_rozmiar: integer) is record
- Dane: Tablica(1..Max_Rozmiar);
- Wierzcholek: Integer:=0;
- END RECORD;
- end Stosy;
- --------------------------
- WITH ada.text_io, ada.Integer_Text_IO;
- USE ada.text_io, ada.Integer_Text_IO;
- package body Stosy is
- PROCEDURE Wypisz(S: IN Stos) IS
- BEGIN
- FOR I IN REVERSE 1..S.Wierzcholek LOOP
- Put(S.Dane(I));
- new_line;
- END LOOP;
- END Wypisz;
- PROCEDURE WlozNaStos(S: IN OUT Stos; L: IN Integer) IS
- BEGIN
- IF S.Wierzcholek=S.Max_Rozmiar THEN
- RAISE Stos_Pelny; END IF;
- s.Wierzcholek:=s.Wierzcholek+1;
- s.dane(s.wierzcholek):=l;
- END WlozNaStos;
- PROCEDURE ZdejmijZeStosu(S: IN OUT Stos; L: OUT Integer) IS
- BEGIN
- IF S.Wierzcholek=0 THEN
- RAISE Stos_Pusty; END IF;
- L:=S.Dane(S.Wierzcholek);
- s.wierzcholek:=S.Wierzcholek - 1;
- END ZdejmijZeStosu;
- FUNCTION Rozmiar (S: IN Stos) RETURN Integer IS
- BEGIN
- return s.wierzcholek;
- END Rozmiar;
- end Stosy;
- ---------------
- -- Test_sTosy
- WITH ada.text_io, ada.integer_text_io, stosy;
- USE Ada.Text_Io, Ada.Integer_Text_Io, Stosy;
- PROCEDURE Test_Stosy IS
- ZmiennaKtoraJestStosem: Stos(10);
- Liczba: Integer;
- ch: character;
- BEGIN
- Put("Podaj liczbe: "); Get(Liczba);
- WlozNaStos(ZmiennaKtoraJestStosem, Liczba);
- Put("Podaj liczbe: "); Get(Liczba);
- WlozNaStos(ZmiennaKtoraJestStosem, Liczba);
- Wypisz(ZmiennaKtoraJestStosem);
- New_Line(2);
- ZdejmijZeStosu(ZmiennaKtoraJestStosem, Liczba);
- Wypisz(ZmiennaKtoraJestStosem); new_line(2);
- ZdejmijZeStosu(ZmiennaKtoraJEstStosem, Liczba);
- Wypisz(ZmiennaKtoraJestStosem);
- new_line(2);
- LOOP
- Put("Podaj liczbe: "); Get(Liczba);
- WlozNaStos(ZmiennaKtoraJestStosem, Liczba);
- Put("Czy chcesz kontynuowac? T/N");
- get(ch);
- exit when ch='n' or ch='N';
- end loop;
- new_line(2);
- Wypisz(ZmiennaKtoraJEstStosem);
- end Test_Stosy;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement