Untitled

 avatar
unknown
plain_text
2 months ago
2.6 kB
11
Indexable
with Ada.Text_IO;         use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
with Ada.Float_Text_IO; use Ada.Float_Text_IO;

procedure ada032 is
   type DS1 is 
     array(31 .. 35)of Float;
   
   
   type DS2_Child is 
     array(Character range '5' .. '9') of String(1 .. 5);
   
   type DS2 is
     array(Boolean'range) of DS2_Child;
   
   
   type DS3 is 
     array(73 .. 74, Character range '4'..'8') of Integer;
   
   procedure Get(Item: out DS1) is
   begin
      for I in reverse DS1'Range Loop
	 Get(Item(I));
      end loop;
   end Get;
   procedure Put(Item: in DS1) is
   begin
      for I in reverse DS1'Range loop
	 Put(Item(I),Aft=>3,Exp=>0,Fore=>0);
	 if not (I = DS1'First) then
	    Put(" ");
	 end if;
      end loop;
   end Put;
   
   procedure Get(Item: out DS2_Child) is
      C: Character;
   begin
      for J in reverse DS2_Child'Range loop
	 Get(Item(J));
	 if not (J = DS2_Child'First) then
	    Get(C);
	 end if;
      end loop;
   end Get;
   
   procedure Get(Item: out DS2) is
      C:Character;
   begin
      for I in DS2'Range Loop
	 Get(Item(I));
	 if not (I = DS2'Last) then
	    Get(C);
	 end if;
      end loop;
   end Get;
   procedure Put(Item: in DS2) is
   begin
      for I in DS2'Range Loop
	 for J in reverse DS2_Child'Range loop
	    Put(Item(I)(J));
	    if not (J = DS2_Child'First) then
	       Put(" ");
	    end if;
	 end loop;
	 if not (I = DS2'Last) then
	    Put(" ");
	 end if;
      end loop;
   end Put;
   
   procedure Get(Item: out DS3) is
   begin
      for I in DS3'Range(1) loop
	 for J in DS3'Range(2) loop
	    Get(Item(I,J));
	 end loop;
      end loop;
   end Get;
   
   procedure Put(Item: in DS3) is
   begin
      for I in DS3'Range(1) loop
	 for J in DS3'Range(2) loop
	    Put(Item(I,J), Width => 0);
	    if not (J = DS3'Last(2)) then
	       Put(" ");
	    end if;
	 end loop;
	 if not (I = DS3'Last(1)) then
	    Put(" ");
	 end if;
      end loop;
   end Put;
   
   Post1: DS1;
   Post2: DS2;
   Post3: DS3;
begin
   Put_Line("För DS1:");
   Put("Mata in datamängd: ");
   Get(Post1);
   Skip_Line;
   Put("Inmatad datamängd: ");
   Put(Post1);
   New_Line(2);
   
   Put_Line("För DS2:");
   Put("Mata in datamängd: ");
   Get(Post2);
   Skip_Line;
   Put("Inmatad datamängd: ");
   Put(Post2);
   New_Line(2);
   
   Put_Line("För DS3:");
   Put("Mata in datamängd: ");
   Get(Post3);
   Skip_Line;
   Put("Inmatad datamängd: ");
   Put(Post3);
   
end ada032;
Editor is loading...
Leave a Comment