Die Addition in C (Die Addition in C), Lektion, Seite 722919
https://www.purl.org/stefan_ram/pub/addition_c (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C-Kurs

Die Addition »…+…« in C 

Einführendes Beispiel

Im folgenden Beispielprogramm wird der Ausdruck »1 + 1« ausgewertet, der die Summe von »[1]« mit »[1]« notiert. Es ergibt sich der erwartete Wert »[2]«.

main.c

#include <stdio.h>

int main( void )
{ printf
( "%d\n", 1 + 1 ); }

stdout
2

Syntax

Die Addition wird mit dem Pluszeichen »+« geschrieben. Ist A  ein Additivausdruck und a  ein Multiplikativausdruck, so ist A +a  wieder ein Additivausdruck, die Summe  von A  und a. Dabei wird A  auch Augend  und a  Addend  genannt.

Neue, erweiterte Syntax (Syntaxdiagramm)

Primaerausdruck
.-. .----------. .-.
--->.--->( ( )--->| Ausdruck |--->( ) )--->.--->
| '-' '----------' '-' ^
| .----------. |
'------------>| Literal |-------------'
'----------'

Vorzeichenausdruck
.--------------------.
---.------------>| Primaerausdruck |----.---->
| '--------------------' ^
| .-. .--------------------. |
'--->( - )--->| Vorzeichenausdruck |----'
| '-' '--------------------' |
| .-. .--------------------. |
'--->( + )--->| Vorzeichenausdruck |----'
'-' '--------------------'

Multiplikativausdruck
.--------------------.
---.--->| Vorzeichenausdruck |--------------------------------------.--->
| '--------------------' ^
| .--------------------. .-. .--------------------. |
'--->| Vorzeichenausdruck |--->( * )--->| Vorzeichenausdruck |---'
| '--------------------' '-' '--------------------' |
| .--------------------. .-. .--------------------. |
'--->| Vorzeichenausdruck |--->( / )--->| Vorzeichenausdruck |---'
'--------------------' '-' '--------------------'

Additivausdruck
.-----------------------.
---.--->| Multiplikativausdruck |-----------------------------------------.--->
| '-----------------------' ^
| .-----------------------. .-. .-----------------------. |
'--->| Additivausdruck |--->( + )--->| Multiplikativausdruck |---'
'-----------------------' '-' '-----------------------'

Ausdruck
.-----------------.
--->| Additivausdruck |--->
'-----------------'

N2176 6.5.6 Additive operators
Syntax

1 additive-expression:

multiplicative-expression

additive-expression + multiplicative-expression

additive-expression - multiplicative-expression

Typanforderungen

Bei der Addition können beide Operanden einen numerischen Typ (»int« oder »double«) haben.

Typ

Ist der Typ des einen Operanden »double«, so wird der Wert des anderen Operand nach »double« gewandelt und der Typ des gesamten Ausdrucks hat den Typ »double«. Sonst hat der gesamte Ausdruck den Typ »int«.

double  + … → double 
+ double double 
int  + int int 

Wert

Bei der Auswertung einer Addition werden beide Operanden ausgewertet. Der Wert eines Additionsausdrucks mit numerischen Operanden ist die Summe dieser Operanden.

Die Typangleichung erfolgt so wie bei der Division, nur daß es hier weniger Probleme mit Nachkommastellen gibt, weil die Addition zweier ganzzahliger Werte auch in der Mathematik keine Nachkommastellen ergibt.

main.c

#include <stdio.h>

int main( void )
{ printf
( "%d\n", 1 + 1 ); }

stdout
2
main.c

#include <stdio.h>

int main( void )
{ printf
( "%g\n", 1 + 1. ); }

stdout
2
main.c

#include <stdio.h>

int main( void )
{ printf
( "%g\n", 1. + 1 ); }

stdout
2
main.c

#include <stdio.h>

int main( void )
{ printf
( "%g\n", 1. + 1. ); }

stdout
2

Die Abstraktion des unsichtbaren Implementation (black box )

Der Operator »+« wird in der Regel nur dadurch beschrieben, welches Ergebnis  er liefert. Die Technik, wie  der Operator »+« es erreicht, das richtige Ergebnis zu „finden“ wird verborgen. Dadurch wird der Verwender dieses Operators davon entlastet, sich über die Details der Umsetzung Gedanken machen zu müssen.

Man kann dies mit einer Maschine wie beispielsweise einem Fahrstuhl vergleichen: Der Bediener muß nur wissen, welche Wirkung die einzelnen Knöpfe haben (er muß also nur die Oberfläche zur Bedienung kennen), aber nicht, wie die Technik das im einzelnen realisiert. Das Innere der Maschine ist für den Benutzer nicht sichtbar (abstrahiert).

Die Umsetzung von Funktionen wird Implementation  (hier wäre dies also die „Implementation der Addition“) genannt. Die Implementation wird in der Programmierung oft verborgen.

Diese Abstraktion der „unsichtbaren Implementation“ (black box ) ist eine der wichtigsten Techniken, die in der Programmierung zur Beherrschung der Komplexität großer Programm eingesetzt wird.

Übungsfragen

?   Ausdrücke

Welcher der folgenden Ausdrücke hat denselben Wert wie »1 / 2+3«?

»1/( 2+3 )«   Anton
»( 1/2 )+ 3«  Berta

?   Ausdrücke

Welche Werte haben die folgenden Ausdrücke jeweils?

A »1/2 + 1/2«
B »1/2. + 1/2«

Übungsaufgaben

/   Terme

Die in der Mathematik vorkommenden Schreibweisen für Werte werden Terme  genannt. In C  verwendet man keine Terme. Die Ausdrücke von C  haben aber Ähnlichkeit mit Termen. Viele Terme lassen sich auch als Ausdruck schreiben und umgekehrt.

Schreiben Sie möglichst kurze Ausdrücke für die folgenden Terme, ohne vorher irgendwelche Teile der Terme im Kopf auszurechnen. Die Werte der Ausdrücke sollten den mathematischen Werten der vorgegebenen Terme möglichst nahe kommen, also den Werten, die man in der Grundschule als Werte der Terme ansehen würde.

Term (Ein Halb plus drei Viertel, erwartete Ausgabe: ungefähr »1.25«)
 1       3
--- + ---
2 4
Term (Drei plus Vier im Zähler und Fünf plus Sechs im Nenner, erwartete Ausgabe: ungefähr »0.636364«)
  3 + 4
---------
5 + 6

Falls beim Lösen der zweiten Übungsaufgabe die Lösung der ersten Übungsaufgabe noch aufbewahrt werden soll, so ist es am besten, die Lösung der ersten Übungsaufgabe in eine extra Textdatei zu kopieren, damit die Lösung der zweiten Übungsaufgabe übersichtlich bleibt. Es spricht aber auch nichts dagegen, wenn beim Lösen der zweiten Übungsaufgabe die Lösung der ersten Übungsaufgabe wieder verloren geht.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722919 stefan_ram:722919 Die Addition in C Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722919, slrprddef722919, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/addition_c