[Indekso][Instrukcio]


Aroj

Paskalaj aroj

VAR A,B,C: ARO EL entjera; n,x: entjera

   ---------------+------------------
         Nocio    |     Paskale
   ---------------+------------------
         vakuo    !    A := []
   unuelementa aro!    A := [x+5]
     arkonstruilo !B := [1..n,15,x-4]
       aparteno   !   x+5 EN  A
        subaro    !    A<B A<=C
      superaro    !    B>A C>=A
      komunaĵo    !    C := A*B
       kunaĵo     !    C := A+B
      diferenco   !    C := A-B


Genera programpeco en ADA

   
GENERIC --komenciĝas la interfaca peco
   TYPE universo IS (<>);--formala parametro: numerebla tipo

PACKAGE aroj IS -- sekvas specifoj de la eksportataj objektoj

   TYPE ara IS PRIVATE; -- la uzulo ne atentu la realigon
   vakuo: CONSTANT ara; -- eksporto de kostanto artipa

   FUNCTION anas(x: universo; a: ara) RETURN BOOLEAN; -- x EN a
   FUNCTION "<="(a,b: ara) RETURN BOOLEAN; -- a partas en b
   FUNCTION "<"(a,b: ara) RETURN BOOLEAN;  -- a strikte partas en b
   FUNCTION "+"(a,b: ara) RETURN ara; -- kunaĵo de 2 aroj
   FUNCTION "-"(a,b: ara) RETURN ara; -- komplemento
   FUNCTION "+"(a: ara; x: universo) RETURN ara; -- anigo, arkremento
   FUNCTION "-"(a: ara; x: universo) RETURN ara; -- eksigu anon
   FUNCTION "*"(a,b: ara) RETURN ara; -- komunaĵo de 2 aroj

   ---- kaj tiel plu ...

PRIVATE        -- sufloro por la tradukilo: --

   TYPE ara IS ARRAY (universo) OF BOOLEAN;  -- bitvektoro
   vakuo: CONSTANT ara := ara'(OTHERS => FALSE);  -- plena nulo

END aroj; ----------- finiĝis la interfaco



PACKAGE aroj IS -- makroa skemo pri realigo de la funkcioj:

   FUNCTION anas(x: universo; a: ara) RETURN BOOLEAN IS
      BEGIN RETURN a(x);
      END anas;

   FUNCTION "+"(a,b: ara) RETURN ara IS
      BEGIN RETURN a OR b;
      END "+";

   FUNCTION "+"(a: ara; x: universo) RETURN ara IS
         lab: ara := a; -- loka labora variablo, komencvalorizo
      BEGIN lab(x):=TRUE; RETURN lab;
      END "+";

   FUNCTION "-"(a,b: ara) RETURN ara IS
      BEGIN RETURN a AND (NOT b);
      END "-";

   FUNCTION "-"(a: ara; x: universo) RETURN ara IS
         lab: ara := a;
      BEGIN a(x):=FALSE; RETURN lab;
      END "-";

   FUNCTION "*"(a,b: ara) RETURN ara IS
      BEGIN RETURN a AND b;
      END "*";

   FUNCTION "<="(a,b: ara) RETURN BOLEAN IS
      BEGIN RETURN (a AND b)=a;      -- a<=b sse a+b=a
      END "<=";

   FUNCTION "<"(a,b: ara) RETURN BOOLEAN IS
         lab: ara := (a AND b);      --  a<b sse (a+b=a)&a#b):
      BEGIN RETURN (lab=a) AND (lab/=b);
      END "<";

   ---- kaj tiel plu ...

END aroj;   --  finiĝis la realigo


[Indekso][Instrukcio]