Le clônage

Commande de compilation...
Commande d'exécution...
Fichier source...

upscmp Source=cloner.upl

Revenir en haut de la page...

cloner

Revenir en haut de la page...

Source Composant "Exemple d'emploi du clonage" Version 1.0.0;

Enumere Type Personne1 Defaut
/*******************/
Fin Type

Type Personne2 Defaut
/*******************/ Fin Type

Variable Procedure Bonjour()
/*****************/
Debut
Ecran.Ecrire("bonjour");
Fin Procedure

Fonction Personne2.Cloner(EntrepotCible : Nul Ou Entrepot=Nul, Profondeur : ProfondeurClonage=ClonageObjetSeul) Retourner Nul Ou Personne2
/************************************************************************/
Variable Debut
R=Personne2();
Selon Profondeur Faire Fin Selon
Retourner R;
Fin Fonction

Fonction F(Per1 : Nul Ou Personne2, Per2 : Nul Ou Personne2) Retourner ComparaisonObjet
/*********************************************************************************/
Debut
Si Per1==Nul Ou Per2==Nul Alors Fin Si
Si Per1.Nom<Per2.Nom Alors Fin Si
Si Per1.Nom>Per2.Nom Alors Fin Si
Retourner ComparaisonEgal;
Fin Fonction

Principal
/*******/
Debut
X1=Personne1();
X1.Nom="nom1";
X1.Prenom="prenom1";
X1.Pointure=1;
X1.Taille=10.1;
X1.Yeux=Rouge;

X2=Personne1();
X2.Nom="nom2";
X2.Prenom="prenom2";
X2.Pointure=2;
X2.Taille=20.2;
X2.Yeux=Rouge;

Y1=Personne2();
Y1.Nom="nom1";
Y1.Prenom="prenom1";
Y1.Pointure=1;
Y1.Taille=10.1;
Y1.Yeux=Rouge;

Y2=Personne2();
Y2.Nom="nom2";
Y2.Prenom="prenom2";
Y2.Pointure=2;
Y2.Taille=20.2;
Y2.Yeux=Rouge;

A1=Binaire("coucou");
A2=A1.Cloner();
A1=Nul;
Ecran.Ecrire(Caractere(A1));
Ecran.Ecrire(Caractere(A2));

B1="coucou";
B2=B1.Cloner();
B1=Nul;
Ecran.Ecrire(B1);
Ecran.Ecrire(B2);

C1=Date("16-5-1968 22:45:58");
C2=C1.Cloner();
C1=Nul;
Ecran.Ecrire(Caractere(C1, "%jj-%mm-%A %HH:%Mi:%S"));
Ecran.Ecrire(Caractere(C2, "%jj-%mm-%A %HH:%Mi:%S"));

D1=32;
D2=D1.Cloner();
D1=Nul;
Ecran.Ecrire(D1);
Ecran.Ecrire(D2);

E1=Bleu;
E2=E1.Cloner();
E1=Nul;
Ecran.Ecrire(Couleur(E1));
Ecran.Ecrire(Couleur(E2));

F1=DivisionParZero;
F2=F1.Cloner();
F1=Nul;
Ecran.Ecrire(F2.NomException);

G1=Fichier("coucou.txt", EcritureTexte);
G2=G1.Cloner();
G1=Nul;
Ecran.Ecrire(G2.NomFlux);

H1=Global;
H2=H1.Cloner();
H1=Nul;
Ecran.Ecrire(H2.NomModule);

J1=32.64;
J2=J1.Cloner();
J1=Nul;
Ecran.Ecrire(J1);
Ecran.Ecrire(J2);

N1=Bonjour;
N2=N1.Cloner();
N1=Nul;
N2();

O1=EntrepotSysteme;
O2=O1.Cloner();
O1=Nul;
Ecran.Ecrire(O2.NomEntrepot);
Ecran.Ecrire("\n");

Ecran.Ecrire("Clonage type");
X3=X1.Cloner();
X1.Nom="NOM1";
X1.Prenom="PRENOM1";
Ecran.Ecrire(X3.Nom+" "+X3.Prenom);
X1.Nom="nom1";
X1.Prenom="prenom1";
X3=X1.Cloner(Nul, ClonageObjetsDirects);
X1.Nom="NOM1";
X1.Prenom="PRENOM1";
Ecran.Ecrire(X3.Nom+" "+X3.Prenom);
X1.Nom="nom1";
X1.Prenom="prenom1";
X3=X1.Cloner(Nul, ClonageRecursif);
X1.Nom="NOM1";
X1.Prenom="PRENOM1";
Ecran.Ecrire(X3.Nom+" "+X3.Prenom);
X1.Nom="nom1";
X1.Prenom="prenom1";
Y3=Y1.Cloner();
Y1.Nom="NOM1";
Y1.Prenom="PRENOM1";
Ecran.Ecrire(Y3.Nom+" "+Y3.Prenom);
Y1.Nom="nom1";
Y1.Prenom="prenom1";
Y3=Y1.Cloner(Nul, ClonageObjetsDirects);
Y1.Nom="NOM1";
Y1.Prenom="PRENOM1";
Ecran.Ecrire(Y3.Nom+" "+Y3.Prenom);
Y1.Nom="nom1";
Y1.Prenom="prenom1";
Y3=Y1.Cloner(Nul, ClonageRecursif);
Y1.Nom="NOM1";
Y1.Prenom="PRENOM1";
Ecran.Ecrire(Y3.Nom+" "+Y3.Prenom);
Y1.Nom="nom1";
Y1.Prenom="prenom1";
Ecran.Ecrire("\n");

Ecran.Ecrire("Clonage liste");
K1=ListeDe(X1);
K1+=X2;
K2=K1.Cloner();
X1.Nom="NOM1";
X1.Prenom="PRENOM1";
X2.Nom="NOM2";
X2.Prenom="PRENOM2";

Pour X3=K2.ParcoursAuDebut() JusquA K2.DernierElement() Faire Fin Pour
X1.Nom="nom1";
X1.Prenom="prenom1";
X2.Nom="nom2";
X2.Prenom="prenom2";
K2=K1.Cloner(Nul, ClonageObjetsDirects);
X1.Nom="NOM1";
X1.Prenom="PRENOM1";
X2.Nom="NOM2";
X2.Prenom="PRENOM2";
Pour X3=K2.ParcoursAuDebut() JusquA K2.DernierElement() Faire Fin Pour
X1.Nom="nom1";
X1.Prenom="prenom1";
X2.Nom="nom2";
X2.Prenom="prenom2";
K2=K1.Cloner(Nul, ClonageRecursif);
X1.Nom="NOM1";
X1.Prenom="PRENOM1";
X2.Nom="NOM2";
X2.Prenom="PRENOM2";
Pour X3=K2.ParcoursAuDebut() JusquA K2.DernierElement() Faire Fin Pour
X1.Nom="nom1";
X1.Prenom="prenom1";
X2.Nom="nom2";
X2.Prenom="prenom2";
Ecran.Ecrire("\n");

Ecran.Ecrire("Clonage reference");
L1=ReferenceDe(X1);
L2=L1.Cloner();
X1.Nom="NOM1";
X1.Prenom="PRENOM1";
X2.Nom="NOM2";
X2.Prenom="PRENOM2";
Ecran.Ecrire(L2.Valeur.Nom+" "+L2.Valeur.Prenom);
X1.Nom="nom1";
X1.Prenom="prenom1";
X2.Nom="nom2";
X2.Prenom="prenom2";
L2=L1.Cloner(Nul, ClonageObjetsDirects);
X1.Nom="NOM1";
X1.Prenom="PRENOM1";
X2.Nom="NOM2";
X2.Prenom="PRENOM2";
Ecran.Ecrire(L2.Valeur.Nom+" "+L2.Valeur.Prenom);
X1.Nom="nom1";
X1.Prenom="prenom1";
X2.Nom="nom2";
X2.Prenom="prenom2";
L2=L1.Cloner(Nul, ClonageRecursif);
X1.Nom="NOM1";
X1.Prenom="PRENOM1";
X2.Nom="NOM2";
X2.Prenom="PRENOM2";
Ecran.Ecrire(L2.Valeur.Nom+" "+L2.Valeur.Prenom);
X1.Nom="nom1";
X1.Prenom="prenom1";
X2.Nom="nom2";
X2.Prenom="prenom2";
Ecran.Ecrire("\n");

Ecran.Ecrire("Clonage tableau");
M1[0]=Y1;
M1[1]=Y2;
M2=M1.Cloner();
Y1.Nom="NOM1";
Y1.Prenom="PRENOM1";
Y2.Nom="NOM2";
Y2.Prenom="PRENOM2";
Pour I=0 JusquA 1 Faire Fin Pour
Y1.Nom="nom1";
Y1.Prenom="prenom1";
Y2.Nom="nom2";
Y2.Prenom="prenom2";
M2=M1.Cloner(Nul, ClonageObjetsDirects);
Y1.Nom="NOM1";
Y1.Prenom="PRENOM1";
Y2.Nom="NOM2";
Y2.Prenom="PRENOM2";
Pour I=0 JusquA 1 Faire Fin Pour
Y1.Nom="nom1";
Y1.Prenom="prenom1";
Y2.Nom="nom2";
Y2.Prenom="prenom2";
M2=M1.Cloner(Nul, ClonageRecursif);
Y1.Nom="NOM1";
Y1.Prenom="PRENOM1";
Y2.Nom="NOM2";
Y2.Prenom="PRENOM2";
Pour I=0 JusquA 1 Faire Fin Pour
Y1.Nom="nom1";
Y1.Prenom="prenom1";
Y2.Nom="nom2";
Y2.Prenom="prenom2";
Ecran.Ecrire("\n");

Ecran.Ecrire("Clonage arbre");
P1=ArbreBinaireDe(F, Faux);
P1+=Y1;
P1+=Y2;
P2=P1.Cloner();
Y1.Nom="NOM1";
Y1.Prenom="PRENOM1";
Y2.Nom="NOM2";
Y2.Prenom="PRENOM2";
Pour Y3=P2.ParcoursAuDebut() JusquA P2.DernierElement() Faire Fin Pour
Y1.Nom="nom1";
Y1.Prenom="prenom1";
Y2.Nom="nom2";
Y2.Prenom="prenom2";
P2=P1.Cloner(Nul, ClonageObjetsDirects);
Y1.Nom="NOM1";
Y1.Prenom="PRENOM1";
Y2.Nom="NOM2";
Y2.Prenom="PRENOM2";
Pour Y3=P2.ParcoursAuDebut() JusquA P2.DernierElement() Faire Fin Pour
Y1.Nom="nom1";
Y1.Prenom="prenom1";
Y2.Nom="nom2";
Y2.Prenom="prenom2";
P2=P1.Cloner(Nul, ClonageRecursif);
Y1.Nom="NOM1";
Y1.Prenom="PRENOM1";
Y2.Nom="NOM2";
Y2.Prenom="PRENOM2";
Pour Y3=P2.ParcoursAuDebut() JusquA P2.DernierElement() Faire Fin Pour
Y1.Nom="nom1";
Y1.Prenom="prenom1";
Y2.Nom="nom2";
Y2.Prenom="prenom2";
Ecran.Ecrire("\n");
Fin Principal

Revenir en haut de la page...