1
0
This repository has been archived on 2025-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
opal-examples/RealFun.impl
2013-10-19 01:17:37 +02:00

54 lines
1.3 KiB
Plaintext

IMPLEMENTATION RealFun
-- Einzeilige Kommentare werden mit einem doppelten Minus eingeleitet.
/*
Kommentare
ueber mehrere Zeilen
sehen so aus.
*/
/* Fuer alle Berechnungen brauchen wir hier die Struktur Real,
die Fliesskommazahlen und ihre Operationen, wie z.B. *, +,
und Konstanten, wie z.B. pi, bereitstellt.
Erlaeuterungen zur Basisstruktur Real findet Ihr unter
http://uebb.cs.tu-berlin.de/infadm/opal/doc/kommentierteLib/doc/shortbib_toc.html
Dort koennt Ihr weitere, fuer die Loesung der Aufgaben evtl.
notwendige Funktionen heraussuchen.
*/
IMPORT Real COMPLETELY
/*
Gegeben ist hier ein Beispiel einer Funktionsdefinition.
Diese Implementierung einer Funktion kann zwar von
oasys uebersetzt werden, sie ist aber *nicht* korrekt.
Daher soll sie von Euch korrigiert werden.
Die Quadratfunktion:
*/
DEF square(X) == X * X
DEF cube(X) == X * square(X)
DEF reciprocal(X) == 1/X
DEF ld(X) == ln(X)/ln(2)
DEF circ(D) == pi/4 * square(D)
-- Argument D: Durchmesser
DEF vol(D,H) == circ(D) * H
-- Argument D: Durchmesser
-- Argument H: Hoehe des Zylinders
DEF len(X,Y,Z) == sqrt(square(X) + square(Y) + square(Z))
-- Argumente X,Y,Z sind die Koordinaten des Vektors