DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 2626 (0xa42) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
with Text_Io; package body Square is procedure Deposit (Carre : in out Matrix; Coordonnees : in out Case_Courrante; I : in Integer; Nombre : in Integer) is begin if (Carre (Coordonnees.X, Coordonnees.Y) = 0) then Carre (Coordonnees.X, Coordonnees.Y) := I; else Move (North, Coordonnees, Nombre); Move (West, Coordonnees, Nombre); Deposit (Carre, Coordonnees, I, Nombre); end if; end Deposit; procedure Move (D : in Direction; Coordonnees : in out Case_Courrante; Nombre : in Integer) is begin case D is when North => Coordonnees.Y := Coordonnees.Y + 1; if (Coordonnees.Y > Nombre) then Coordonnees.Y := 1; end if; when South => Coordonnees.Y := Coordonnees.Y - 1; if (Coordonnees.Y < 1) then Coordonnees.Y := Nombre; end if; when East => Coordonnees.X := Coordonnees.X + 1; if (Coordonnees.X > Nombre) then Coordonnees.X := 1; end if; when West => Coordonnees.X := Coordonnees.X - 1; if (Coordonnees.X < 1) then Coordonnees.X := Nombre; end if; end case; end Move; procedure Go_To_Center (Coordonnees : in out Case_Courrante; Nombre : in Integer) is begin Coordonnees.X := (Nombre / 2) + 1; Coordonnees.Y := (Nombre / 2) + 1; end Go_To_Center; function Impaire (Nombre : in Integer) return Boolean is begin return ((Nombre mod 2) = 1); end Impaire; procedure Display (Carre : in Matrix; Nombre : in Integer) is I, J : Integer; begin for I in reverse 1 .. Nombre loop for J in 1 .. Nombre loop Text_Io.Put (Integer'Image (Carre (J, I))); end loop; Text_Io.New_Line; end loop; Text_Io.New_Line; end Display; procedure Init_Square (Carre : in out Matrix; Nombre : in Integer) is I, J : Integer; begin for I in 1 .. Nombre loop for J in 1 .. Nombre loop Carre (I, J) := 0; end loop; end loop; end Init_Square; procedure Saisie (Nombre : in out Integer) is begin Nombre := 3; end Saisie; end Square;