Elementare AlgorithmenAlgorithmus zur Addition und Subtraktion von mehrstelligen Zahlen | ![]() |
Ein Algorithmus ist eine ist eine Schritt-für-Schritt-Anleitung für einen bestimmten Vorgang. Ein wichtiges Kennzeichen eines Algorithmus ist, dass die Schritte so eindeutig und detailliert angegeben sind, dass sie von demjenigen, der den Algorithmus ausführen soll, unmittelbar umgesetzt werden können. Wir bezeichnen diese Schritte als Elementaroperationen des Algorithmus.
Ein Algorithmus, den wir in der Schule schon sehr früh lernen, ist das schriftliche Addieren von zwei mehrstelligen Zahlen. Im Folgenden ist dieser Algorithmus in programmiersprachlicher Notation dargestellt, und im Anschluss daran sind die verwendeten Elementaroperationen angegeben, die ein Mensch oder eine Maschine können muss, um den Algorithmus auszuführen.
Die schriftliche Subtraktion, wie wir sie in der Schule lernen, lässt sich in ähnlicher Weise formulieren (Aufgabe).
Tatsächlich lässt sich die Subtraktion einer Zahl jedoch auch noch in ganz anderer Weise realisieren, nämlich durch Addition des Komplements der Zahl. Dieser Algorithmus ist besonders für das Rechnen im Binärsystem geeignet, weil dort die Komplementbildung sehr einfach ist. Daher findet dieser Subtraktionsalgorithmus in der Computerarithmetik Verwendung.
Die Algorithmen funktionieren auch mit Zahlen, die in einem Stellenwertsystem mit anderer Basis B als 10 dargestellt sind (die in den Algorithmen vorkommenden Zahlen 10 bzw. 9 müssen dann durch B bzw. B-1 ersetzt werden).
Die Schulmethode der Addition zweier nichtnegativer ganzer Zahlen lässt sich durch folgenden Algorithmus beschreiben. Vorausgesetzt sei hier, dass beide Zahlen die gleiche feste Länge n haben. Dies lässt sich gegebenenfalls durch Anfügen von führenden Nullen erreichen. Auch das Ergebnis soll die Länge n haben, anderenfalls ist der zulässige Zahlenbereich überschritten und es wird ein Fehler gemeldet.
Es wird eine Variable übertrag_vorhanden verwendet, die true oder false als Wert annehmen kann (einen Wahrheitswert). Durch übertrag_vorhanden wird angezeigt, ob noch ein Übertrag aus der vorherigen Stelle zu berücksichtigen ist.
Algorithmus Addition | |
Eingabe: | Zwei nichtnegative ganze Zahlen a = an-1 ... a0 und b = bn-1 ... b0 in Dezimaldarstellung |
Ausgabe: | Summe s = a + b in Dezimaldarstellung |
Methode: |
|
Als Elementaroperationen werden benötigt: Addition zweier Ziffern, Weiterzählen um 1, Vergleich mit 10 sowie Subtraktion von 10.
Aufgabe 1: Beschreiben Sie in ähnlicher Weise die Schulmethode der Subtraktion zweier nichtnegativer ganzer Zahlen a, b mit ab. Geben Sie die verwendeten Elementaroperationen an. Beschränken Sie sich auf möglichst einfache Elementaroperationen.
Die Subtraktion einer Zahl b lässt sich auch durch Addition des Komplementes von b realisieren. Das Komplement von b ergibt sich durch Ergänzen jeder seiner Ziffern zu 9. Beispielsweise ergibt sich das Komplement von 428 als 571.
Zusätzlich muss bei diesem Verfahren noch 1 addiert werden. Dies geschieht, indem übertrag_vorhanden mit true initialisiert wird.
Auf diese Weise wird Folgendes gerechnet, beispielsweise bei einer Länge der Zahlen von n=3:
a + (999 – b) + 1
Dies ist dasselbe wie
a – b + 1000
Das richtige Ergebnis a – b ergibt sich also, indem im Anschluss an diese Berechnung wieder 1000 subtrahiert wird. Dies geschieht, indem einfach der letzte Übertrag ignoriert wird.
Algorithmus Subtraktion durch Komplementbildung | |
Eingabe: | Zwei nichtnegative ganze Zahlen a = an-1 ... a0 und b = bn-1 ... b0 mit a![]() |
Ausgabe: | Differenz d = a + b in Dezimaldarstellung |
Methode: |
|
Wie bei der Addition wird eine Variable übertrag_vorhanden verwendet, die true oder false als Wert annehmen kann. Anders als bei der Addition wird übertrag_vorhanden jedoch mit true initialisiert.
Als Elementaroperationen werden benötigt: Ergänzen einer Ziffer zu 9 (Komplementbildung), Addition zweier Ziffern, Weiterzählen um 1, Vergleich mit 10 sowie Subtraktion von 10.
Weiter mit:
![]() |
![]() |
![]() |
Informatik in Flensburg studieren...
Neu gestaltetes Studienangebot:
Bachelor-Studiengang
Angewandte Informatik
mit Schwerpunkten auf den Themen Software, Web, Mobile, Security und Usability.
Ihr Abschluss
nach 7 Semestern:
Bachelor of Science
Ebenfalls ganz neu:
Master-Studiengang
Angewandte Informatik
Ein projektorientiertes Studium auf höchstem Niveau mit den Schwerpunkten Internet-Sicherheit, Mobile Computing und Human-Computer Interaction.
Ihr Abschluss
nach 3 Semestern:
Master of Science
Weitere Informatik-Studienangebote an der Hochschule Flensburg: