( als PDF-Datei )
( 2/3, 2./3, 2d0/3, 1/2*4.0, 1/2.0*4, usw. ),sowie bei Zuweisung des Ergebnisses an Variablen unterschiedlichen Typs (INTEGER oder REAL).
integer function nfak(n) ... nfak = <ausdruck> ! Funktionswert zurueckgeben return endDer Funktionsname (nfak) darf (muss aber nicht) innerhalb der Funktion beliebig als lokale Variable benutzt werden, ihm muss aber am Ende der Funktionswert zugewiesen werden.
Testen Sie zunächst für kleine n, ob das Programm richtige Ergebnisse liefert.
Zur Darstellung positiver ganzer Zahlen werden 31 Bit benutzt:
als Summe: ∑bk 2k,
( bk ∈ {0|1}, k = 0, … ,30 ).
Welche Reaktion ist bei ,,zu großem'' n zu erwarten?
Testen Sie, ob die erwartete Reaktion auch wirklich eintritt.
Vergleichen Sie die Ergebnisse der Integer-Arithmetik mit denen von Real und DoublePrecision, indem Sie alle Datentypen (incl. Funktionen) entsprechend ändern, bzw. alle 3 Funktionen in einem Hauptprogramm verwenden:
integer function nfak(n) real function rfak(rn) doubleprecision function dfak(dn)
|
integer function nfak(n) integer function dummy(n) integer n,dummy integer n,nfak ... nfak = n*dummy(n-1) dummy=nfak(n)
|
|
|
Schreiben Sie je ein Unterprogramm für diese drei Berechnungen und ein Hauptprogramm, in dem die Zahlen n und k eingelesen und die drei berechneten Werte ausgegeben werden.