Implementierung in Java
Das Horner-Schema im deutschen Gesetz
Klausuraufgabe aus der Informatik I



Implementierung in Java

Hier zeige ich eine objektoriente Implementierung des Horner-Schemas in Java.
Im folgenden ist nur der wichtigste Ausschnitt aus dem Programm angeführt. Das komplette Programm gibt es im Downloadbereich zum herunterladen.

package de.hornerSchema;

import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class HornerSchema
{
  private double[] koeffizienten;

  public double berechne(double funktionsWert)
  {
    double ergebnis = koeffizienten[koeffizienten.length - 1];

    for (int index = koeffizienten.length - 2; index >= 0; index--)
    {
      ergebnis = ergebnis * funktionsWert + koeffizienten[index];
    }

    return ergebnis;
  }
}


top



Das Horner-Schema im deutschen Gesetz

Man mag es kaum glauben, wo man überall im Alltag auf das Horner-Schema stößt.
Hier ist ein Ausschnitt aus dem Einkommensteuergesetz § 32a:

Einkommensteuergesetz 1997 (EStG 1997)

§ 32a

Einkommensteuertarif
[Fassung ab dem Gesetz zur Umrechnung und Glättung steuerlicher Euro-Beträge (Steuer-Euroglättungsgesetz - StEuglG) vom 19.12.2000 BGBl. I 2000 S. 1790] [Inkrafttreten: 01.01.2002]

(1) Die tarifliche Einkommensteuer bemisst sich nach dem zu versteuernden Einkommen. Sie beträgt vorbehaltlich der § 32b, § 34, § 34b und § 34c jeweils in Euro für zu versteuernde Einkommen

1. bis 7.235 Euro (Grundfreibetrag): 0;

2. von 7.236 Euro bis 9.251 Euro:
(768,85 · y + 1.990) · y;

3. von 9.252 Euro bis 55.007 Euro:
(278,65 · z + 2 300) · z + 432;

4. von 55.008 Euro an: 0,485 · x - 9.872. "y" ist ein Zehntausendstel des 7.200 Euro übersteigenden Teils des nach Absatz 2 ermittelten zu versteuernden Einkommens. "z" ist ein Zehntausendstel des 9.216 Euro übersteigenden Teils des nach Absatz 2 ermittelten zu versteuernden Einkommens. "x" ist das nach Absatz 2 ermittelte zu versteuernde Einkommen.

(2) Das zu versteuernde Einkommen ist auf den nächsten durch 36 ohne Rest teilbaren vollen Euro-Betrag abzurunden, wenn es nicht bereits durch 36 ohne Rest teilbar ist, und um 18 Euro zu erhöhen.

(3) Die zur Berechnung der tariflichen Einkommensteuer erforderlichen Rechenschritte sind in der Reihenfolge auszuführen, die sich nach dem Horner-Schema ergibt. Dabei sind die sich aus den Multiplikationen ergebenden Zwischenergebnisse für jeden weiteren Rechenschritt mit drei Dezimalstellen anzusetzen; die nachfolgenden Dezimalstellen sind fortzulassen. Der sich ergebende Steuerbetrag ist auf den nächsten vollen Euro-Betrag abzurunden.

(4)
(aufgehoben)

(5) Bei Ehegatten, die nach den § 26, § 26b zusammen zur Einkommensteuer veranlagt werden, beträgt die tarifliche Einkommensteuer vorbehaltlich der § 32b, § 34, § 34b und § 34c das Zweifache des Steuerbetrags, der sich für die Hälfte ihres gemeinsam zu versteuernden Einkommens nach den Absätzen 1 bis 3 ergibt (Splitting-Verfahren).

(6) Das Verfahren nach Absatz 5 ist auch anzuwenden zur Berechnung der tariflichen Einkommensteuer für das zu versteuernde Einkommen

1. bei einem verwitweten Steuerpflichtigen für den Veranlagungszeitraum, der dem Kalenderjahr folgt, in dem der Ehegatte verstorben ist, wenn der Steuerpflichtige und sein verstorbener Ehegatte im Zeitpunkt seines Todes die Voraussetzungen des § 26 Abs. 1 Satz 1 erfüllt haben,

2. bei einem Steuerpflichtigen, dessen Ehe in dem Kalenderjahr, in dem er sein Einkommen bezogen hat, aufgelöst worden ist, wenn in diesem Kalenderjahr

a) der Steuerpflichtige und sein bisheriger Ehegatte die Voraussetzungen des § 26 Abs. 1 Satz 1 erfüllt haben,

b) der bisherige Ehegatte wieder geheiratet hat und

c) der bisherige Ehegatte und dessen neuer Ehegatte ebenfalls die Voraussetzungen des § 26 Abs. 1 Satz 1 erfüllen. Dies gilt nicht, wenn eine Ehe durch Tod aufgelöst worden ist und die Ehegatten der neuen Ehe die besondere Veranlagung nach § 26c wählen. Voraussetzung für die Anwendung des Satzes 1 ist, daß der Steuerpflichtige nicht nach den § 26, § 26a getrennt zur Einkommensteuer veranlagt wird.


top



Klausuraufgabe aus der Informatik I

Universität Augsburg
Institut für Informatik
Prof. Dr. Elisabeth André

Klausur Informatik I
Wintersemester 2001/2002


Aufgabe 12 (Eindimensionale Felder)                 9 Punkte

Der Funktionswert eines Polynoms wird berechnet durch

                                                                             (1)

Wenn die Potenzierung vermieden werden soll, kommt man durch Ausnutzen der Distributivität zu folgender Formel:

                 (2)

Aufgaben:

a) Schreiben Sie in C die Funktion double polynomwert (double a[], double x, int n). Sie soll als Rückgabewert den Wert eines gegebenen Polynoms n-ten Grades liefern. Verwenden Sie dazu die rechte Seite der Gleichung (2).

b) Schreiben Sie ein Hauptprogramm, das Ihre Funktion mit den Werten und aufruft und das Ergebnis auf dem Bildschirm ausgibt.


top


(c) 2005 Markus Bauer
Valid XHTML 1.1!