Simpson - Formel Autor: Martin Bergmann Bsp. Nr.: 1006 Beschreibung: Das Programm n"hert das Integral zwischen zwei Grenzen fr ein Polynom mittels der Formel von Simpson. Das Programm braucht nur 47.280 kByte Speicher und arbeitet sehr schnell, da sehr wenig Schleifen verwendet wurden. Als Eingabe ben"tigt das Programm die Ober- und Untergrenze, und anschlie end max.9 Wertepaare (Koeffizient und Exponent). Beendet wird die Eingabe durch die Zahl 100 oder durch Abbruch des Programms durch EOF bzw. Strg Z. Die Grenzen mssen als Realzahlen, die Koeffizienten als Integer und die Exponenten als Cardinalzahlen (nur pos.) vorliegen. Die h"chste Potenz (Exponent) die auftreten darf ist 8. Eingabedatensatz: 3.0 1.0 1 0 1 2 100 \ / / \/ \ \ Grenzen Koef./ \ Exponent Ende Falsche Eingaben: Das Programm reagiert auf zwei Arten auf falsche Eingaben ?: Dieses Zeichen erscheint nach Eingabe eines unz- l"ssigen Wertes (z.b 2.5 als Exponent). Die Eingabe wird jedoch nach der Ausgabe des Fehlerzeichens fort- gesetzt, der Datensatz wird jedoch nicht verarbeitet. FALSCHE EINGABE: Diese Meldung erscheint erst nach Be- endigung des Datensatz. Tritt auf wenn der Datensatz nicht verarbeitbar ist. (z.B. zweimaliges auftreten des gleichen Exponenten). Pogramm: Konstanten: CEingFehler:Fehlermeldung die bei einer falschen Eingabe erscheint CEnde: Zahl mit welcher der Datensatz beendet wird. CIntervall: Stellt die Intervallgr" e (Genauigkeit) der Berechnung ein. Unterroutinen: 1. Variableninit: Dient zum Initialisieren der Variablen, da die Variablen zum Programmstart unbestimmte Werte annehmen. 2. Fehler: Uberprft ob das Programm abgebrochen wurde oder ob es einen Fehler bei der Eingabe gab. 3. Grenzeneinlesen: Liest die Ober- und Untergrenze ein und vertauscht die Werte bei falscher Reihenfolge der Eingabe. 4. Datenlesen: Liest die Koeffizienten und dazugeh"rigen Exponenten ein. Bei der Abfrage des Koeffizienten wird auch berprft ob der Datensatz beendet werden soll. Die Beendigung ist nur beim Koeffizienten m"glich da sonst die Berechnung nicht m"glich w"re.Die Routine berprft ob das eingelesene Wertepaar schon aufgetreten war. Exponent[n] | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | n= 0 1 2 3 4 5 6 7 8 Wobei n der Exponent von x ist. In Exponent wird der Exponent nur dann gespeichert wenn das Exponent[n] -Bit auf FALSE ist.=> wird auf TRUE gesetzt . Somit kann sehr leicht berprft werden ob der Exponent schon vorher eingegeben wurde. 5. Funkt: Berechnet die Funktionswerte fr das Integral, indem das Produkt Koeffizient*Exponent (von x^0 bis x^8) aufsummiert wird (falls der Exponent in der Eingabe vorkam). 6.Berechnen: Das Berechnen des Intgerals erfolgt wie in der Spezifikation angegeben wurde. Dabei setzt sich das Endergebnis aus drei Termen zusammen: Funktionswert fr x0+x2*n (fe), Funktionswert fr alle geraden x-Indizes (fg) und Funktionswert fr alle un- geraden x-Indizes (fu). Die Variable xkonst wurde benutzt um zu vermeiden, da  in der FOR-Schleife nicht st"ndig die Flie kommadivision, welche immer das selbe Ergebnis liefert, neu berechnet wird. Dadurch wird die Rechengeschwindigkeit deutlich erh"ht.