3.4 Zuweisung (Ergibt-Anweisung)

Eine der meist verwendeten Anweisungen ist die ZUWEISUNG (auch ERGIBT-Anweisung genannt). Dabei sind 2 Fälle zu unterscheiden:

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:

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                                
bzw.
    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
              MVC   ergebnisfeld,sendefeld  
      ZAP   ergebnisfeld,rechenfeld  
      rech  ergebnisfeld,rechenfeld       rech  ist ein Rechenbefehl
                    (z.B.:   AP   SP   MP   DP )



Zurück
zum vorherigen Kapitel
zum Anfang dieses Kapitels
zum Inhaltsverzeichnis