|
|
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 - metrics - downloadIndex: B T
Length: 5500 (0x157c)
Types: TextFile
Names: »B«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
└─⟦124ff5788⟧ »DATA«
└─⟦this⟧
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
└─⟦6f12a12be⟧ »DATA«
└─⟦this⟧
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
└─⟦d65440be7⟧ »DATA«
└─⟦this⟧
separate (Expertsystem)
package body Tuple is
function Cardinality (Thetuple : Tuple.Object) return Natural is
begin
return Thetuple.Count;
end Cardinality;
function Isnull (Thetuple : Tuple.Object) return Boolean is
begin
return Thetuple.Count = 0;
end Isnull;
function Isnotnull (Thetuple : Tuple.Object) return Boolean is
begin
return Thetuple.Count /= 0;
end Isnotnull;
procedure Forall (Thetuple : Tuple.Object) is
begin
for I in 1 .. Thetuple.Count loop
Action (Get (Thetuple, I));
end loop;
end Forall;
function First (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 1);
end First;
function Second (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 2);
end Second;
function Third (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 3);
end Third;
function Fourth (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 4);
end Fourth;
function Fifth (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 5);
end Fifth;
function Sixth (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 6);
end Sixth;
function Seventh (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 7);
end Seventh;
function Eighth (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 8);
end Eighth;
function Ninth (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 9);
end Ninth;
function Tenth (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 10);
end Tenth;
function Get (Thetuple : Tuple.Object; Item : Positive := 1)
return Expertsystem.Reference is
begin
if Item > Thetuple.Count then
return Nullreference;
else
return Thetuple.Cells (Item);
end if;
end Get;
procedure Add (Thetuple : in out Tuple.Object;
Aref : Expertsystem.Reference) is
begin
if Thetuple.Count = Thetuple.Size then
declare
Bigtuple : Tuple.Object (Thetuple.Size + Thetuple.Size / 2);
begin
Bigtuple.Cells (1 .. Thetuple.Size) :=
Thetuple.Cells (1 .. Thetuple.Size);
Bigtuple.Count := Thetuple.Count;
Bigtuple.Unity := Thetuple.Unity;
Thetuple := Bigtuple;
end;
end if;
Thetuple.Count := Thetuple.Count + 1;
Thetuple.Cells (Thetuple.Count) := Aref;
end Add;
procedure Merge (Thetuple : in out Tuple.Object;
R1 : Expertsystem.Reference := Nullreference;
R2 : Expertsystem.Reference := Nullreference;
R3 : Expertsystem.Reference := Nullreference;
R4 : Expertsystem.Reference := Nullreference;
R5 : Expertsystem.Reference := Nullreference;
R6 : Expertsystem.Reference := Nullreference;
R7 : Expertsystem.Reference := Nullreference;
R8 : Expertsystem.Reference := Nullreference;
R9 : Expertsystem.Reference := Nullreference;
R10 : Expertsystem.Reference := Nullreference) is
begin
if R1 /= Nullreference then
Add (Thetuple, R1);
end if;
if R2 /= Nullreference then
Add (Thetuple, R2);
end if;
if R3 /= Nullreference then
Add (Thetuple, R3);
end if;
if R4 /= Nullreference then
Add (Thetuple, R4);
end if;
if R4 /= Nullreference then
Add (Thetuple, R4);
end if;
if R5 /= Nullreference then
Add (Thetuple, R5);
end if;
if R6 /= Nullreference then
Add (Thetuple, R6);
end if;
if R7 /= Nullreference then
Add (Thetuple, R7);
end if;
if R8 /= Nullreference then
Add (Thetuple, R8);
end if;
if R9 /= Nullreference then
Add (Thetuple, R9);
end if;
if R10 /= Nullreference then
Add (Thetuple, R10);
end if;
end Merge;
function Asobject (Aref : Expertsystem.Reference) return Tuple.Object is
Result : Tuple.Object;
begin
Add (Result, Aref);
return Result;
end Asobject;
procedure Sort (Thetuple : in out Tuple.Object) is
Repere : Integer range Thetuple.Cells'First - 1 .. Thetuple.Cells'Last;
Nombre : Expertsystem.Reference;
begin
for I in Thetuple.Cells'First + 1 .. Thetuple.Count - 1 loop
Nombre := Thetuple.Cells (I);
Repere := I - 1;
while (Repere /= Thetuple.Cells'First - 1) and then
(Nombre < Thetuple.Cells (Repere)) loop
Thetuple.Cells (Repere + 1) := Thetuple.Cells (Repere);
Repere := Repere - 1;
end loop;
Thetuple.Cells (Repere + 1) := Nombre;
end loop;
end Sort;
end Tuple;