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: ┃ T V ┃
Length: 14846 (0x39fe) Types: TextFile Names: »V«
└─⟦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 Etape, Text_Io; package Role is -- specifications de l'objet role subtype Acteur is String (1 .. 50); type Descripteurderole is record Lacteur : Acteur; Lesetapes : Etape.Etape; Encours : Boolean; Ledebut : Etape.Temps; Lindex : Etape.Etape; Laduree : Etape.Temps; end record; type Role is access Descripteurderole; function Creerunrole (A : Acteur) return Role; function Leroleestvide (Unrole : Role) return Boolean; function Lacteurdurole (Unrole : Role) return Acteur; function Ladureedurole (Unrole : Role) return Etape.Temps; function Leroleestencours (Unrole : Role) return Boolean; function Lesetapes (Unrole : Role) return Etape.Etape; function Quelleactiondurole (Unrole : Role; Untemps : Etape.Temps) return Etape.Action; procedure Caseruneactiondansunrole (Unrole : Role; Untemps : Etape.Temps; Uneaction : Etape.Action); procedure Exclureuneactiondansunrole (Unrole : Role; Untemps : Etape.Temps); procedure Decaleruneactiondurole (Unrole : Role; Untemps : Etape.Temps; Delai : Integer); procedure Deplaceruneactiondurole (Unrole : Role; Untemps : Etape.Temps; Delai : Integer); procedure Decalerlerole (Unrole : Role; Untemps : Etape.Temps; Delai : Integer); procedure Viderlerole (Unrole : in out Role); function Chargerunacteur (F : in Text_Io.File_Type) return Acteur; function Chargeruneaction (F : in Text_Io.File_Type) return Etape.Action; function Chargeruntemps (F : in Text_Io.File_Type) return Etape.Temps; function Chargerunrole (F : in Text_Io.File_Type) return Role; procedure Demarrerlerole (Unrole : in out Role); procedure Arreterlerole (Unrole : in out Role); procedure Jouerlerole (Unrole : Role); procedure Solliciterlerole (Unrole : Role); procedure Sauvegarderlerole (Unrole : Role; Fichier : String); end Role; -- Nom : TD.ADA -- Auteur : Sebastien BROCHET -- Date : 9 Octobre 1993 -- But : Ce programme illustre quelques TAD -- conversion en Ada d'un TD ecrit en Pascal -- -- -------------- Etape ------------------------------ -- Package Objet_Etape is -- specifications -- TYPE Temps is INTEGER; -- TYPE Action is CHARacter; -- TYPE Etape is access CelluleEtape; -- TYPE CelluleEtape is RECORD -- LeTemps:Temps; -- Laction:Action; -- LaSuite:Etape; -- END RECORD; -- -- FUNCTION CreerUneEtape(UnTemps:temps;UneAction:Action;UneEtape:Etape) return Etape; -- FUNCTION LeTempsDeLetape(UneEtape:Etape) return Temps; -- FUNCTION LactionDeLetape(UneEtape:Etape) return Action; -- FUNCTION LaSuiteDeLetape(UneEtape:Etape) return Etape; -- PROCEDURE ChangerLeTempsDeLetape(UneEtape: IN OUT Etape;UnTemps:temps); -- PROCEDURE ChangerLactionDeLetape(UneEtape:IN OUT Etape;UneAction:Action); -- PROCEDURE CaserUneActionDansLesEtapes(T:temps;A:Action;E:IN OUT Etape); -- PROCEDURE DetruireEtape(E:IN OUT Etape); -- PROCEDURE ExclureUneActionDesEtapes(E:IN OUT Etape;T:temps); -- End Objet_Etape; -- -- Package body Objet_Etape is -- EtapeInexistante: constant:= null; -- -- -- testee -- FUNCTION CreerUneEtape(UnTemps:temps;UneAction:Action;UneEtape:Etape) return Etape is -- EtapeAux:Etape; -- BEGIN -- EtapeAux:= NEW CelluleEtape; -- EtapeAux.LeTemps:=UnTemps; -- EtapeAux.Laction:=UneAction; -- EtapeAux.LaSuite:=UneEtape; -- return EtapeAux; -- END; -- -- -- testee -- FUNCTION LeTempsDeLetape(UneEtape:Etape) return Temps is -- BEGIN -- return UneEtape.LeTemps; -- END; -- -- -- Testee -- FUNCTION LactionDeLetape(UneEtape:Etape) return Action is -- BEGIN -- return UneEtape.Laction; -- END; -- -- -- testee -- FUNCTION LaSuiteDeLetape(UneEtape:Etape) return Etape is -- BEGIN -- return UneEtape.LaSuite; -- END; -- -- -- testee -- PROCEDURE ChangerLeTempsDeLetape(UneEtape: IN OUT Etape;UnTemps:temps) is -- BEGIN -- UneEtape.LeTemps:=UnTemps; -- END; -- -- -- testee -- PROCEDURE ChangerLactionDeLetape(UneEtape:IN OUT Etape;UneAction:Action) is -- BEGIN -- UneEtape.Laction:=UneAction; -- END; -- -- -- testee -- -- rmq : L'etape E qui est retournee est la meme que celle transmise -- -- elle n'est pas modifiee mais doit etre passee par adresse pour que -- -- des affectations ( insertions) puissent se faire pdt la recursion arriere -- PROCEDURE CaserUneActionDansLesEtapes(T:temps;A:Action;E:IN OUT Etape) is -- BEGIN -- IF E = EtapeInexistante THEN -- OK -- E:=CreerUneEtape(T,A,E) -- ELSE -- IF T = LeTempsDeLetape(E) THEN -- OK -- ChangerLactionDeLetape(E,A) -- ELSE -- IF T > LeTempsDeLetape(E) THEN -- OK -- CaserUneActionDansLesEtapes(T,A,E^.LaSuite) -- ELSE -- E:=CreerUneEtape(T,A,E); -- OK -- END; -- -- -- testee -- PROCEDURE DetruireEtape(E:IN OUT Etape) is -- BEGIN -- DISPOSE(E); -- E:=EtapeInexistante; -- END; -- -- -- testee -- PROCEDURE ExclureUneActionDesEtapes(E:IN OUT Etape;T:temps) is -- A_Jeter:Etape; -- BEGIN -- IF E != EtapeInexistante THEN -- OK -- BEGIN -- IF T = LeTempsDeLetape(E) THEN -- BEGIN -- A_Jeter:=E; -- E:=E.LaSuite; -- DetruireEtape(A_Jeter); -- OK -- END -- ELSE -- IF T > LeTempsDeLetape(E) THEN -- OK -- ExclureUneActionDesEtapes(E.LaSuite,T); -- END; -- END; -- END Objet_Etape; -- -- -- --------- Role ------------------------------------- -- -- Package Objet_Role is -- specifications de l'objet role -- FUNCTION CreerUnRole(A:Acteur) retunr Role is -- FUNCTION LeRoleEstVide(UnRole:Role) return BOOLEAN is -- FUNCTION LacteurDuRole(UnRole:Role)return Acteur is -- FUNCTION LaDureeDuRole(UnRole:Role) return Temps is -- FUNCTION LeRoleEstEnCours(UnRole:Role) return BOOLEAN is -- FUNCTION LesEtapes(UnRole:Role) return Etape is -- FUNCTION QuelleActionDuRole(UnRole:Role;UnTemps:Temps) return Action is -- PROCEDURE CaserUneActionDansUnRole(UnRole:Role;UnTemps:Temps;UneAction:Action) is -- PROCEDURE ExclureUneActionDansUnRole(UnRole:Role;UnTemps:Temps) is -- PROCEDURE DecalerUneActionDuRole(UnRole:Role;UnTemps:Temps;delai:INTEGER) is -- PROCEDURE DeplacerUneActionDuRole(UnRole:Role;UnTemps:Temps;delai:INTEGER) is -- PROCEDURE DecalerLeRole(UnRole:Role;UnTemps:Temps;delai:INTEGER) is -- PROCEDURE ViderLeRole(UnRole:IN OUT Role) is -- FUNCTION ChargerUnActeur(F:IN OUT TEXT) return Acteur is -- FUNCTION ChargerUneAction(F:IN OUT TEXT) return Action is -- FUNCTION ChargerUnTemps(F:IN OUT TEXT) return Temps is -- FUNCTION ChargerUnRole(F:IN OUT TEXT) return Role is -- PROCEDURE DemarrerLeRole(UnRole:IN OUT Role) is -- PROCEDURE ArreterLeRole(UnRole:IN OUT Role) is -- PROCEDURE JouerLeRole(UnRole:Role) is -- PROCEDURE SolliciterLeRole(UnRole:Role) is -- PROCEDURE SauvegarderLeRole(UnRole:Role;Fichier:STRING) is -- END Objet_Role; -- -- -- Package body Objet_Role is -- -- TYPE Acteur is STRING; -- TYPE DescripteurDeRole is RECORD -- Lacteur:Acteur; -- LesEtapes:Etape; -- EnCours:BOOLEAN; -- LeDebut:Temps; -- Lindex:Etape; -- LaDuree:Temps; -- END RECORD; -- TYPE Role is access DescripteurDeRole; -- -- FUNCTION CreerUnRole(A:Acteur) retunr Role is -- Resultat:Role; -- BEGIN -- Resultat:=NEW Role; -- Resultat.Lacteur:=A; -- Resultat.LesEtapes:=EtapeInexistante; -- Resultat.EnCours:=FALSE; -- Resultat.LeDebut:=0; -- Resultat.Lindex:=EtapeInexistante; -- Resultat.LaDuree:=0; -- return Resultat; -- END; -- -- FUNCTION LeRoleEstVide(UnRole:Role) return BOOLEAN is -- BEGIN -- return (UnRole.LesEtapes=EtapeInexistante); -- END; -- -- FUNCTION LacteurDuRole(UnRole:Role)return Acteur is -- BEGIN -- return UnRole.Lacteur; -- END; -- -- FUNCTION LaDureeDuRole(UnRole:Role) return Temps is -- BEGIN -- return UnRole.LaDuree; -- END; -- -- FUNCTION LeRoleEstEnCours(UnRole:Role) return BOOLEAN is -- BEGIN -- return (UnRole.EnCours=TRUE); -- END; -- -- FUNCTION LesEtapes(UnRole:Role) return Etape is -- BEGIN -- return UnRole.LesEtapes; -- END; -- -- FUNCTION QuelleActionDuRole(UnRole:Role;UnTemps:Temps) return Action is -- indexRole:Etape; -- Trouve:BOOLEAN:=FALSE; -- BEGIN -- IndexRole:=LesEtapes(UnRole); -- WHILE (IndexRole<>EtapeInexistante) AND (NOT TROUVE) DO -- BEGIN -- IF LeTempsDeLetape(IndexRole)=UnTemps THEN -- BEGIN -- Trouve:=TRUE; -- QuelleActionDuRole:=LactionDeLetape(IndexRole); -- END; -- IndexRole:=LaSuiteDeLetape(IndexRole); -- END; -- END; -- -- PROCEDURE CaserUneActionDansUnRole(UnRole:Role;UnTemps:Temps;UneAction:Action) is -- E:Etape; -- BEGIN -- E:=LesEtapes(UnRole); -- CaserUneActionDansLesEtapes(UnTemps,UneAction,E); -- END; -- -- PROCEDURE ExclureUneActionDansUnRole(UnRole:Role;UnTemps:Temps) is -- E:Etape; -- BEGIN -- E:=LesEtapes(UnRole); -- ExclureUneActionDesEtapes(E,UnTemps); -- END; -- -- PROCEDURE DecalerUneActionDuRole(UnRole:Role;UnTemps:Temps;delai:INTEGER) is -- BEGIN -- null; -- END; -- -- PROCEDURE DeplacerUneActionDuRole(UnRole:Role;UnTemps:Temps;delai:INTEGER) is -- BEGIN -- null; -- END; -- -- PROCEDURE DecalerLeRole(UnRole:Role;UnTemps:Temps;delai:INTEGER) is -- BEGIN -- null; -- END; -- -- PROCEDURE ViderLeRole(UnRole:IN OUT Role) is -- BEGIN -- UnRole.LesEtapes:=EtapeInexistante; -- END; -- -- FUNCTION ChargerUnActeur(F:IN OUT TEXT) return Acteur is -- ActAux:Acteur; -- BEGIN -- READLN(F,ActAux); -- return ActAux; -- END; -- -- FUNCTION ChargerUneAction(F:IN OUT TEXT) return Action is -- ActionAux:Action; -- BEGIN -- READLN(F,ActionAux); -- return ActionAux; -- END; -- -- FUNCTION ChargerUnTemps(F:IN OUT TEXT) return Temps is -- TempsAux:Temps; -- BEGIN -- READLN(F,TempsAux); -- return TempsAux; -- END; -- -- FUNCTION ChargerUnRole(F:IN OUT TEXT) return Role is -- UnRole:Role;UnActeur:Acteur; -- UneAction:Action;UnTemps:Temps; -- Nombre:INTEGER; -- BEGIN -- UnActeur:=ChargerUnActeur(F); -- UnRole:=CreerUnRole(UnActeur); -- READLN(F,Nombre); -- FOR i IN 1..Nombre LOOP -- UneAction:=ChargerUneAction(F); -- UnTemps:=ChargerUnTemps(F); -- CaserUneActionDansUnRole(UnRole,UnTemps,UneAction); -- END LOOP; -- return UnRole; -- END; -- -- PROCEDURE DemarrerLeRole(UnRole:IN OUT Role) is -- IndiceRole:Role; -- BEGIN -- IndiceRole:=UnRole; -- IndiceRole.EnCours:=TRUE; -- IF IndiceRole.Etape!='' THEN -- BEGIN -- Text_IO.PutLine("Acteur = ",IndiceRole.Laction); -- IndiceRole.Etape:=IndiceRole.Etape.LaSuite; -- END; -- END; -- -- PROCEDURE ArreterLeRole(UnRole:IN OUT Role) is -- BEGIN -- null; -- END; -- -- PROCEDURE JouerLeRole(UnRole:Role) is -- BEGIN -- null; -- END; -- -- PROCEDURE SolliciterLeRole(UnRole:Role) is -- BEGIN -- null; -- END; -- -- PROCEDURE SauvegarderLeRole(UnRole:Role;Fichier:STRING) is -- F:TEXT; -- BEGIN -- ASSIGN(F,Fichier); -- APPEND(F); -- SauverUnActeur(F,UnRole); -- END; -- END Objet_Role; -- -- -- -- Programme principal -- -- deb,E,debut:Etape; -- R:Role; -- -- PROCEDURE Affiche(E:Etape) is -- UnTemps:Temps; -- UneAction:Action; -- BEGIN -- IF E!=EtapeInexistante THEN -- BEGIN -- UnTemps:=LeTempsDeLetape(E); -- UneAction:=LactionDeLetape(E); -- WRITELN('Temps : ',UnTemps,' Action : ',UneAction); -- END -- ELSE -- Text_IO.PutLine("Pointeur NIL , erreur"); -- END; -- -- BEGIN -- -- TEST des methodes liees a l'objet Etape -- WRITELN; -- deb:=CreerUneEtape(1,'S',EtapeInexistante); -- Affiche(deb); -- ChangerLeTempsDeLetape(deb,4); -- ChangerLactionDeLetape(deb,'T'); -- Affiche(deb); -- deb:=CreerUneEtape(3,'U',deb); -- Affiche(deb); -- debut:=deb; -- deb:=LaSuiteDeLetape(deb); -- Affiche(deb); -- E:=EtapeInexistante; -- CaserUneActionDansLesEtapes(9,'d',E); -- Inexistante OK -- Affiche(E); -- CaserUneActionDansLesEtapes(2,'h',deb); -- avant , OK -- Affiche(deb); -- CaserUneActionDansLesEtapes(2,'k',deb); -- temps = , OK -- Affiche(deb); -- CaserUneActionDansLesEtapes(3,'z',deb); -- apres -- Affiche(deb); -- deb:=LaSuiteDeLetape(deb); -- Affiche(deb); -- DetruireEtape(deb); -- Affiche(deb); -- E:=EtapeInexistante; -- ExclureUneActionDesEtapes(E,15); -- Inexistante -- Affiche(E); -- ExclureUneActionDesEtapes(debut,15); -- T > , OK -- Affiche(debut); -- ExclureUneActionDesEtapes(debut,1); -- T < , OK -- Affiche(debut); -- ExclureUneActionDesEtapes(debut,3); -- T = , OK -- Affiche(debut); -- -- -- TEST des methodes liees a l'objet Role -- -- R:=CreerUnRole('b'); -- END; -- -- test du package generique Pile -- -- Auteur : Sebastien BROCHET -- -- Date : 28 Octobre 1993 -- -- With Pile; -- procedure test is -- -- package Pile_Int is new Pile(Element => integer;Taille => 20); -- package Pile_Char is new Pile(Element => character;Taille => 20); -- begin -- null; -- end test; -- -- Test du package generique fifo -- -- auteur : Sebastien BROCHET -- -- date : 3 Novembre 1993 -- -- With Fifo,Text_IO; -- procedure TestFifo is -- caractere:character:='s'; -- package FifoChar is new Fifo(Element=> character); -- Ma_Fifo:FifoChar.Object; -- begin -- Ma_Fifo:=FifoChar.EmptyFifo; -- loop -- Text_IO.Put_Line("<1> Enfiler un caractere"); -- Text_IO.Put_Line("<2> Defiler un caractere"); -- Text_IO.Put_Line("<9> Quitter"); -- Text_IO.Put("Votre choix : "); -- Text_IO.Get(caractere); -- case caractere is -- when '1'=> Text_IO.Put("Entrer un caractere : "); -- Text_IO.Get(caractere); -- FifoChar.EnQueue(Ma_Fifo,caractere); -- Text_IO.New_Line; -- when '2'=> FifoChar.DeQueue(Ma_Fifo,caractere); -- Text_IO.Put_Line("Caractere extrait : " & caractere); -- when others => null; -- end case; -- exit when caractere='9'; -- end loop; -- end TestFifo; -- -- fichier : TestLex.ada -- -- Test du package LEX pour l'analyse lexicale -- -- auteur : Sebastien BROCHET -- -- date : 31 octobre 1993 -- -- With LEX,TEXT_IO; -- procedure TestLex is -- aFile:INTEGER:=1; -- a modifer avec TEXT_IO.File_Type -- begin -- TEXT_IO.Put_Line("Entrer une chaine de caracteres : "); -- LEX.LexOpen(aFile); -- loop -- LEX.LexNext; -- Text_IO.Put_Line(LEX.CurrentValue); -- Text_IO.Put_Line(LEX.Token'image(LEX.CurrentToken)); -- exit when TEXT_IO.End_Of_File; -- end loop; -- end TestLex; -- With Text_IO;Use Text_IO; -- procedure exemple is -- begin -- Put_Line("Table de multiplication : "); -- for i in 1..10 loop -- Put_Line -- end loop; -- end;