home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 04 / grdlagen / algol.a68 next >
Encoding:
Text File  |  1991-02-13  |  1.1 KB  |  49 lines

  1.  
  2. CO
  3.   -------------------------------------------------------
  4.                Demolisting für ALGOL-68
  5.              (C) 1991 R. Fischer & TOOLBOX
  6.   -------------------------------------------------------
  7. CO
  8.  
  9. CO
  10.      Skalarprodukt zweier Vektoren
  11.      Aufrufbeispiel:
  12.      REAL [3:6] a;
  13.      REAL [-1:2] b;
  14.      WRITE(a*b)
  15.      Sind die beiden Vektoren verschieden
  16.      lang, ist das Ergebnis SMALL REAL
  17. CO
  18.  
  19. OP (REF[]REAL, REF[]REAL) LONG REAL * =
  20.    (REF[]REAL v1,REF[]REAL v2) LONG REAL:
  21.  
  22.    CO Testen, ob Vektoren gleich lang CO
  23.    (  UPB v1 - LWB v1 = UPB v2 - LWB v2
  24.    |  LONG REAL sum = LOC LONG REAL := 0
  25.       CO Index für beide Vektoren als von
  26.          1 beginnend interpretieren -
  27.          vereinfacht die Rechnung
  28.       CO
  29.       REF[]REAL a = v1[AT 1];
  30.       REF[]REAL b = v2[AT 1];
  31.       FOR i TO UPB a DO
  32.           sum +:= LENG a[i] * b[i]
  33.       OD;
  34.       sum
  35.    |  SMALL REAL
  36.    );
  37.  
  38. CO
  39.      Berechnung des größten gemeinsamen
  40.      Teilers nach dem Verfahren von
  41.      Euclid
  42. CO
  43.  
  44. PROC gcd = (INT z1,z2) INT :
  45.      (    z2 = 0
  46.      |    ABS z1
  47.      |    gcd(z2,z1 MOD z2)
  48.      )
  49.