home *** CD-ROM | disk | FTP | other *** search
-
- CO
- -------------------------------------------------------
- Demolisting für ALGOL-68
- (C) 1991 R. Fischer & TOOLBOX
- -------------------------------------------------------
- CO
-
- CO
- Skalarprodukt zweier Vektoren
- Aufrufbeispiel:
- REAL [3:6] a;
- REAL [-1:2] b;
- WRITE(a*b)
- Sind die beiden Vektoren verschieden
- lang, ist das Ergebnis SMALL REAL
- CO
-
- OP (REF[]REAL, REF[]REAL) LONG REAL * =
- (REF[]REAL v1,REF[]REAL v2) LONG REAL:
-
- CO Testen, ob Vektoren gleich lang CO
- ( UPB v1 - LWB v1 = UPB v2 - LWB v2
- | LONG REAL sum = LOC LONG REAL := 0
- CO Index für beide Vektoren als von
- 1 beginnend interpretieren -
- vereinfacht die Rechnung
- CO
- REF[]REAL a = v1[AT 1];
- REF[]REAL b = v2[AT 1];
- FOR i TO UPB a DO
- sum +:= LENG a[i] * b[i]
- OD;
- sum
- | SMALL REAL
- );
-
- CO
- Berechnung des größten gemeinsamen
- Teilers nach dem Verfahren von
- Euclid
- CO
-
- PROC gcd = (INT z1,z2) INT :
- ( z2 = 0
- | ABS z1
- | gcd(z2,z1 MOD z2)
- )