Les types de données

Ce programme présente la déclaration d'un type ayant des propriétés scalaires ou objets et des méthodes ainsi que l'usage de celles-ci.

Le fichier source est ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/type2.upl.

Mode compilé

Commande de compilation

upscmp Source=type2.upl

Commande d'exécution

type2

Mode interprété

upssng Source=type2.upl

Fichier source

Source Composant "Exemple de définition de types" Version 4.0.0;

Entrepot
/******/
Public :
/******/
Type TA Entrepot MonEntrepot TailleSegment 10
/*******************************************/
Public : Protege :
/*******/
Prive :
/*****/ Public :
/******/ Protege :
/*******/ Prive :
/*****/ Fin Type

Protege :
/*******/
Type TB
/*****/
Public :
/******/ Protege :
/*******/ Prive :
/*****/ Public :
/******/ Protege :
/*******/ Prive :
/*****/ Fin Type

Prive :
/*****/
Type TC
/*****/
Public :
/******/ Protege :
/*******/ Prive :
/*****/ Public :
/******/ Protege :
/*******/ Prive :
/*****/ Fin Type

Public :
/******/
Constructeur TA()
/***************/
Debut
A=Vrai;
B=Vrai;
C=10;
D=11;
E=20.1;
F=21.2;
G="A";
Fin Constructeur

Procedure TA.P1()
/***************/
Debut
Ecran.Ecrire("TA.P1");
Fin Procedure

Protege :
/*******/
Procedure TA.P1(PA : Entier)
/************************/
Debut
Ecran.Ecrire("TA.P2");
Ecran.Ecrire(PA);
Fin Procedure

Prive :
/*****/
Fonction TA.F1() Retourner Nul Ou Entier
/**************************************/
Debut
Ecran.Ecrire("TA.F1";
Retourner D;
Fin Fonction

Destructeur TA(MettreEnAnteMemoire : Booleen) Retourner Booleen
/*************************************************************/
Debut
Ecran.Ecrire("TA.Destructeur()");
Retourner MettreEnAnteMemoire;
Fin Destructeur

Public :
/******/
Constructeur TB()
/***************/
Debut
A=Vrai;
B=Vrai;
C=20;
D=21;
E=30.1;
F=31.2;
G="B";
Fin Constructeur

Procedure TB.P1()
/***************/
Debut
Ecran.Ecrire("TB.P1");
Fin Procedure

Protege :
/*******/
Procedure TB.P1(PA : Entier)
/************************/
Debut
Ecran.Ecrire("TB.P2");
Ecran.Ecrire(PA);
Fin Procedure

Prive :
/*****/
Fonction TB.F1() Retourner Nul Ou Entier
/**************************************/
Debut
Ecran.Ecrire("TB.F1");
Retourner D;
Fin Fonction

Destructeur TB(? : Booleen) Retourner Booleen
/*******************************************/
Debut
Ecran.Ecrire("TB.Destructeur()");
Fin Destructeur

Public :
/******/
Constructeur TC()
/***************/
Debut
A=Vrai;
B=Vrai;
C=30;
D=31;
E=40.1;
F=41.2;
G="C";
Fin Constructeur

Procedure TC.P1()
/***************/
Debut
Ecran.Ecrire("TC.P1");
Fin Procedure

Protege :
/*******/
Procedure TC.P1(PA : Entier)
/************************/
Debut
Ecran.Ecrire("TC.P2");
Ecran.Ecrire(PA);
Fin Procedure

Prive :
/*****/
Fonction TC.F1() Retourner Nul Ou Entier
/**************************************/
Debut
Ecran.Ecrire("TC.F1");
Retourner D;
Fin Fonction

Destructeur(? : Booleen) Retourner Booleen
/****************************************/
Debut
Ecran.Ecrire("TC.Destructeur()");
Fin Destructeur

Principal
/*******/
Variable
/******/
Debut
Ecran.Ecrire(VA.A);
Ecran.Ecrire(VA.B);
Ecran.Ecrire(VA.C);
Ecran.Ecrire(VA.D);
Ecran.Ecrire(VA.E);
Ecran.Ecrire(VA.F);
Ecran.Ecrire(VA.G);
Ecran.Ecrire("\n");

Ecran.Ecrire(VB.A);
Ecran.Ecrire(VB.B);
Ecran.Ecrire(VB.C);
Ecran.Ecrire(VB.D);
Ecran.Ecrire(VB.E);
Ecran.Ecrire(VB.F);
Ecran.Ecrire(VB.G);
Ecran.Ecrire("\n");

Ecran.Ecrire(VC.A);
Ecran.Ecrire(VC.B);
Ecran.Ecrire(VC.C);
Ecran.Ecrire(VC.D);
Ecran.Ecrire(VC.E);
Ecran.Ecrire(VC.F);
Ecran.Ecrire(VC.G);
Ecran.Ecrire("\n");

Ecran.Ecrire("?+100");
VA.C=VA.C+100;
VA.D=VA.D+100;
VA.E=VA.E+100.0;
VA.F=VA.F+100.0;
VA.G=VA.G+"BCDEF";
Ecran.Ecrire(VA.C);
Ecran.Ecrire(VA.D);
Ecran.Ecrire(VA.E);
Ecran.Ecrire(VA.F);
Ecran.Ecrire(VA.G);
Ecran.Ecrire("\n");

Ecran.Ecrire("?+=100");
VA.C+=100;
VA.D+=100;
VA.E+=100.0;
VA.F+=100.0;
VA.G+="BCDEF";
Ecran.Ecrire(VA.C);
Ecran.Ecrire(VA.D);
Ecran.Ecrire(VA.E);
Ecran.Ecrire(VA.F);
Ecran.Ecrire(VA.G);
Ecran.Ecrire("\n");

Ecran.Ecrire("?-=100");
VA.C-=100;
VA.D-=100;
VA.E-=100.0;
VA.F-=100.0;
Ecran.Ecrire(VA.C);
Ecran.Ecrire(VA.D);
Ecran.Ecrire(VA.E);
Ecran.Ecrire(VA.F);
Ecran.Ecrire("\n");

Ecran.Ecrire("?*=2");
VA.C*=2;
VA.D*=2;
VA.E*=2;
VA.F*=2;
Ecran.Ecrire(VA.C);
Ecran.Ecrire(VA.D);
Ecran.Ecrire(VA.E);
Ecran.Ecrire(VA.F);
Ecran.Ecrire("\n");

Ecran.Ecrire("?/=2");
VA.C\=2;
VA.D\=2;
VA.E/=2;
VA.F/=2;
Ecran.Ecrire(VA.C);
Ecran.Ecrire(VA.D);
Ecran.Ecrire(VA.E);
Ecran.Ecrire(VA.F);
Ecran.Ecrire("\n");

Ecran.Ecrire("?^=2");
VA.C^=2;
VA.D^=2;
VA.E^=2;
VA.F^=2;
Ecran.Ecrire(VA.C);
Ecran.Ecrire(VA.D);
Ecran.Ecrire(VA.E);
Ecran.Ecrire(VA.F);
Ecran.Ecrire("\n");

Ecran.Ecrire("?&=255");
VA.C&=255;
VA.D&=255;
Ecran.Ecrire(VA.C);
Ecran.Ecrire(VA.D);
Ecran.Ecrire("\n");

Ecran.Ecrire("?|=127");
VA.C|=127;
VA.D|=127;
Ecran.Ecrire(VA.C);
Ecran.Ecrire(VA.D);
Ecran.Ecrire("\n");

Ecran.Ecrire("?>>=2");
VA.C>>=2;
VA.D>>=2;
Ecran.Ecrire(VA.C);
Ecran.Ecrire(VA.D);
Ecran.Ecrire("\n");

Ecran.Ecrire("?<<=2");
VA.C<<=2;
VA.D<<=2;
Ecran.Ecrire(VA.C);
Ecran.Ecrire(VA.D);
Ecran.Ecrire("\n");

VA.C=0;
VA.D=0;
VA.E=0.0;
VA.F=0.0;

Ecran.Ecrire("?++");
Ecran.Ecrire(VA.C++);
Ecran.Ecrire(VA.D++);
Ecran.Ecrire(VA.E++);
Ecran.Ecrire(VA.F++);
Ecran.Ecrire("\n");

Ecran.Ecrire("?--");
Ecran.Ecrire(VA.C--);
Ecran.Ecrire(VA.D--);
Ecran.Ecrire(VA.E--);
Ecran.Ecrire(VA.F--);
Ecran.Ecrire("\n");

Ecran.Ecrire("++?");
Ecran.Ecrire(++VA.C);
Ecran.Ecrire(++VA.D);
Ecran.Ecrire(++VA.E);
Ecran.Ecrire(++VA.F);
Ecran.Ecrire("\n");

Ecran.Ecrire("--?");
Ecran.Ecrire(--VA.C);
Ecran.Ecrire(--VA.D);
Ecran.Ecrire(--VA.E);
Ecran.Ecrire(--VA.F);
Ecran.Ecrire("\n");

VA.P1();
VB.P1();
VC.P1();
Fin Principal

Résultat de l'exécution

Vrai Vrai 10 11 20.1 21.2 A Vrai Vrai 20 21 30.1 31.2 B Vrai Vrai 30 31 40.1 41.2 C ?+100 110 111 120.1 121.2 ABCDEF ?+=100 210 211 220.1 221.2 ABCDEFBCDEF ?-=100 110 111 120.1 121.2 ?*=2 220 222 240.2 242.4 ?/=2 110 111 120.1 121.2 ?^=2 12100 12321 14424.01 14689.44 ?&=255 68 33 ?|=127 127 127 ?>>=2 31 31 ?<<=2 124 124 ?++ 0 0 0.0 0.0 ?-- 1 1 1.0 1.0 ++? 1 1 1.0 1.0 --? 0 0 0.0 0.0 TA.P1 TB.P1 TC.P1 TA.Destructeur() TB.Destructeur() TC.Destructeur()