3.4 Zuweisung (Ergibt-Anweisung)
Eine der meist verwendeten Anweisungen ist die ZUWEISUNG (auch ERGIBT-Anweisung genannt). Dabei sind 2 Fälle zu unterscheiden:
- Übertragung von alphanumerischen Daten (das sind Zeichen bzw. Zeichenkettendaten)
- Übertragung von numerischen Daten (das sind Rechenfelder) bzw. Rechenoperationen mit Rechenfeldern
Beide Übertragungsarten entsprechen einem Kopieren von Daten, sind aber ansonsten unterschiedliche Maschinenbefehle. In höheren Programmiersprachen wird meist für beide Zuweisungen dasselbe Symbol (oft das Gleichheitszeichen) verwendet!
Zuweisung von alphanumerischen Daten:
In diesem Buch steht der Pfeil "-->" als Symbol für eine Übertragungsoperation (im Sinne von Kopieren) von alphanumerischen Daten:
sendefeld --> empfangsfeld |
Eine solche Übertragung erfolgt immer linksbündig (d.h. zeichenweise von links beginnend nach rechts) und darf daher niemals für Rechenfelder verwendet werden. (Der Pfeil kann auch umgedreht werden, dann steht das Ergebnis- bzw. Empfangsfeld auf der linken Seite.)
Bei der Übertragung von Zeichenkettendaten unterscheidet man - abhängig von der Programmiersprache - eine maschinenorientierte Übertragung und eine problemorientierte Übertragung:
- Maschinenorientierte Übertragung:
Eine Übertragung erfolgt immer zeichenweise von links nach rechts in der Länge des Empfangsfeldes (unabhängig von der Länge des Sendefeldes!). - Problemorientierte Übertragung:
Der Inhalt des Sendefeldes wird immer linksbündig in das Empfangsfeld kopiert. Ist das Sendefeld kürzer als das Empfangsfeld, wird dieses rechts noch mit Leerzeichen aufgefüllt. Ist das Sendefeld länger als das Empfangsfeld, werden die überzähligen Zeichen rechts einfach weggelassen (abgeschnitten).
Zuweisung von numerischen Daten (Rechenoperationen):
In diesem Buch steht die Zeichenfolge ":=" als Symbol für eine Übertragung von numerischen Daten bzw. für Rechenoperationen mit numerischen Daten (Rechenfeldern). Dies darf nicht mit einer mathematischen Gleichung verwechselt werden!
ergebnisfeld := rechenfeld |
ergebnisfeld := arithmetischer Ausdruck |
Auf der rechten Seite ist jeder gültige arithmetische Ausdruck, der ein Ergebnis liefert, oder ein einzelnes Rechenfeld erlaubt, auf der linken Seite ist nur ein Rechenfeld erlaubt. Zuerst wird der arithmetische Ausdruck auf der rechten Seite berechnet und das Ergebnis anschließend in das auf der linken Seite stehende Ergebnisfeld übertragen. Steht auf der rechten Seite nur ein einzelnes Rechenfeld, wird einfach der Inhalt dieses Rechenfelds (eine Zahl) in das Ergebnisfeld kopiert.
Diese Übertragung erfolgt immer arithmetisch (d.h. rechtsbündig mit Dezimalkommaausrichtung) und unterscheidet sich daher ganz wesentlich von der Übertragung von Zeichenkettendaten! Ist das Empfangsrechenfeld länger als der Ergebniswert, wird es links mit führenden Nullen (bzw. rechts mit Nachkommanullen) aufgefüllt. Ist es kürzer, gehen die überzähligen signifikanten Ziffern links (bzw. Nachkommastellen rechts) verloren - ersteres zerstört den Ergebniswert, zweiteres liefert ein ungenaues Ergebnis.
Zuweisung:
PL/I |
empfangsfeld = sendefeld; ergebnisfeld = arithmetischer Ausdruck; | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Cobol |
MOVE sendefeld TO empfangsfeld. COMPUTE ergebnisfeld = arithmetischer Ausdruck. | ||||||||||||||||
C/C++ |
strcpy(empfangsfeld, sendefeld); ergebnisfeld = arithmetischer Ausdruck; | ||||||||||||||||
/370-Assembler |
|
- Zurück
- zum vorherigen Kapitel
- zum Anfang dieses Kapitels
- zum Inhaltsverzeichnis
- zum Anfang dieses Kapitels