http://www.adaconcept.com/programs/cserek.adb
with Ada.Text_IO;

with csere;

use Ada.Text_IO;

procedure cserek is
   
   type fedonev is (Borisz,Dorisz);
 
   procedure ugynok_csere is new csere(fedonev);

   
   procedure csere(A: in out integer;B: in out integer) is
     c:integer; 
   begin
      c:=a;
      a:=b;
      b:=c;
   end;
   
   procedure csere(A: in out float;B: in out float) is
     c:float;
   begin
      c:=a;
      a:=b;
      b:=c;
   end;

  

   i:integer:=7;
   j:integer:=8;
   k:float:=7.0;
   l:float:=8.0; 
   b:fedonev:=Borisz;
   d:fedonev:=Dorisz;

begin
   Ada.Text_IO.Put_Line("Program indul");
   
   csere(i,j);

   if i=8 then put_line("jo :)"); 
          else put_line("rossz");
   end if;
   
   csere(k,l);
   
   if k=8.0 then put_line("jo :)"); 
            else put_line("rossz");
   end if;

   ugynok_csere(b,d);

   if d=Borisz then put_line("jo :)"); 
               else put_line("rossz");
   end if;


   Ada.Text_IO.Put_Line("Program vege");
end cserek;