Sekvan paĝon! Indekson! Instrukcion!

Aroj

  1. Aroperacioj
  2. Genera programpeco en Ada
Aroperacioj
Estu VAR A,B,C: ARO EL entjera; n,x: entjera; tiam oni povas fari jenan tabelon:

Nocio Paskale en C
vakuo A := [] a = 0
unuelementa aro A := [x + 5] a = (1 >> x+5)
arkonstruilo B := [1..n, 15, x-4]
membrorilato x+5 EN A a & (1 ›› x+5)
rigora subaro A < B (a!=b) && (a&b)==a
nerigora subaro A <= C (a & b) == a
rigora superaro B > A (a!=b) && (a&b)==b
superaro C >= A (a & b) == b
komunaĵo C := A * B c = a & b
kunaĵo C := A + B c = a | b
ardiferenco C := A - B c = a & ~(a & b)
simetria 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 rigore 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


Sekvan paĝon Indekson Instrukcion