Jetzt lerne ich Pascal... Die Prüfung
In den vergangen Teilen haben Sie Pascal gelernt.
Nun geht es daran auch dies umzusetzen. Als Aufgabe gibt es eine Fragestellung aus dem Bereich
"praktisch angewandte Mathematik".
Haben Sie sich schon einmal Gedanken darüber gemacht, wie der Computer die transzendenten
Funktionen Sinus, Cosinus, Logarithmus und Exponentialfunktion berechnet? Nun er hat sicher keine
Logarithmentafel im ROM. Stattdessen verwendet er eine Annäherung dieser Funktionen durch
Polynome. Für den Cosinus lautet es:
cos(x) = 1 -x2/2! + x4/2 - x6/6! +
x8/8! -
also nach folgendem Bildungsgesetz:
- addiere bzw. subtrahiere abwechselnd das nächste Glied
- Ein Glied besteht aus einer gerade Potenz die sich jeweils um 2 erhöht und durch die
Fakultät der Potenz geteilt wird
- Die Fakultät von n ist das Produkt aller Zahlen von 1 bis n also bei 8:
1*2*3*4*5*6*7*8
Ihre Aufgabe
Schreiben Sie ein Programm das den Benutzer auffordert einen Wert zwischen -
Pi und +Pi einzugeben. Das Programm soll ausgeben:
- Den Cosinus des Wertes
- Bis zu welchem Glied die Approximation laufen muss bei folgenden Genauigkeiten:
- Single (4 Byte 7-8 Stellen)
- Real (6 Byte, 11-12 Stellen)
- Double (8 Byte 15-16 Stellen)
Hinweis zu Realisierung: Rechnen Sie intern im Format "Extended" um Rundungsfehler zu
vermeiden und weisen Sie erst zum Vergleich einer Variablen in dem gewünschten Datentyp zu. Die
Genauigkeit ist erreicht, wenn cos(x)=Approximation(x) in der gewählten Genauigkeit. Mit Extended
macht dies keinen Sinn, weil durch interne Rundungsfehler es nie so sein wird, das die
Approximation die gewünschte Genauigkeit erreicht.
Ergänzungsfrage: Wo sind die meisten Iterationen im Wertebereich nötig?
Lösung downloaden
Dieser Text stammt von
Bernd Leitenberger
© des Textes: Bernd Leitenberger. Jede Veröffentlichung dieses Textes im Ganzen oder in Auszügen darf nur
mit Zustimmung des Urhebers erfolgen.