Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with Ada.Text_IO, Ada.Integer_Text_IO, Ada.Numerics.Discrete_Random;
- use Ada.Text_IO, Ada.Integer_Text_IO;
- procedure Lab4Lista is
- type Element is
- record
- Data : Integer := 0;
- Next : access Element := Null;
- end record;
- type Elem_Ptr is access all Element;
- procedure Print(List : access Element) is
- L : access Element := List;
- begin
- if List = Null then
- Put_Line("List EMPTY!");
- else
- Put_Line("List:");
- end if;
- while L /= Null loop
- Put(L.Data, 4); -- z pakietu Ada.Integer_Text_IO
- New_Line;
- L := L.Next;
- end loop;
- end Print;
- procedure Insert(List : in out Elem_Ptr; D : in Integer) is
- E : Elem_Ptr := new Element;
- begin
- E.Data := D;
- E.Next := List;
- -- lub E.all := (D, List);
- List := E;
- end Insert;
- -- wstawianie jako funkcja - wersja krótka
- function Insert(List : access Element; D : in Integer) return access Element is
- ( new Element'(D,List) );
- -- do napisania !!
- procedure Insert_Sort(List : in out Elem_Ptr; D : in Integer) is
- L : access Element := List;
- New_El : access Element;
- begin
- L := List;
- if List = Null then
- List := new Element'(D, Null);
- elsif L.Data > D then
- List := new Element'(D,L);
- else
- while L.Next /= Null and then L.Next.Data < D loop
- L := L.next;
- end loop;
- New_El := new Element'(D,L.Next);
- L.Next := New_El;
- end if;
- end Insert_Sort;
- procedure Generate_And_Insert(List : in out Elem_Ptr; N : in Integer ; M : in Integer) is
- subtype Random_Range is Integer range 0 .. M;
- package Random_Generator is new Ada.Numerics.Discrete_Random(Random_Range);
- use Random_Generator;
- Gen : Generator;
- Number : Integer;
- begin
- Reset(Gen);
- for I in 1 .. N loop
- Number := Random(Gen) mod M;
- Insert_Sort(List,Number);
- end loop;
- end Generate_and_insert;
- Lista : Elem_Ptr := Null;
- begin
- Insert_Sort(Lista, 20);
- Insert_Sort(Lista,19);
- Insert_Sort(Lista,6);
- Print(Lista);
- end Lab4Lista;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement