Wolfgang Pavel: Zuse-Z22-Simulation: Beispiel 02
Gleitkomma-Rechnung mit Ausdrucken

Was auf dem Lochstreifen steht:
(Das Trennzeichen kann entweder Zwischenraum oder NeueZeile sein.)
T5000T​•​2,5​•​4​•​
T3000T​•​3,14159265​•​3​•​B5000​•​U6​•​X​•​B3000​•​X​•​B5001​•​X​•​B3001​•​:​•​D​•​Z0​•​
T1030T​•​9'​•​3'​•​5'​•​1'​•​1'​•​11'​•​-1'​•​
EZ3002E​•​

Besonders betroffene Themen:
► Grundprogramm-Befehle
► Formatierung der Fernschreiber-Ausgabe

Was es tun soll:
Das Volumen eines geraden Kreiskegels mit dem Grundflächenradius r und der Höhe h beträgt: v = 1/3 • π • r² • h. Die Werte für r und h werden in zwei Worten auf der Trommel gespeichert. Zusätzlich muss aber auch π sowie die Zahl 3 als Gleitkommazahl auf der Trommel gespeichert werden. Statt r² wird r • r berechnet. Die Berechnung geschieht mit den Gleitkommabefehlen des Grundprogramms; das Ergebnis wird auf dem Fernschreiber ausgedruckt.
Was es noch zu bemerken gibt:
Ist das Programm einmal gelaufen, genügt es für andere Maße, die beiden Werte für r und h auf der Trommel zu ändern und das Programm erneut zu starten; die anderen Werte bleiben unverändert.
Für z.B. jetzt r = 15 und h = 8.5 würde folgender Lochstreifen genügen: T5000T  15  8.5  E3002E
Wie es gespeichert und ausgeführt wird:
Trommel-
adresse
ExternInternErläuterung
T5000TAb hier werden die variablen Werte r und h gespeichert.
50002,5Wert für den Radius r
50014Wert für die Höhe h (Gleitkommazahl; eine entsprechende Strichzahl würde 4´ geschrieben).
T3000TAb hier wird das Programm gespeichert; zunächst werden in diesem Fall jedoch die konstanten Zahlen abgelegt
30003,14159265Die Zahl π (mehr als 9 Dezimalen sind nicht erlaubt und führen zu falschen Werten).
30013Zur Gleitkommadivision durch 3 .
3002B5000NA0+5000Wert für r in den Akku .
3003U6UK6+0Damit steht der Wert für r im Akku UND im Schnellspeicher 6 .
3004XF0+367Multiplikation; es werden immer die Inhalte von Akku und Schnellspeicher 6 multipliziert; hier ergibt das r • r oder eben r² . Das Ergebnis steht immer im Akku und im Schnellspeicher 6.
3005B3000NA0+3000Die Zahl π kommt in den Akku. Das vorige Ergebnis für r² steht immer noch im Schnellspeicher 6 .
3006XF0+367Multiplikation, also r² • π ; das Ergebnis kommt wieder in den Akku und Schnellspeicher 6 .
3007B5001NA0+5001Der Wert für die Höhe h kommt in den Akku.
3008XF0+367Multiplikation; das Ergebnis, das ist jetzt r² • π • h , kommt nach Akku und Schnellspeicher 6 .
3009B3001NA0+3001Gleitkommazahl 3 nach Akku .
3010:F0+480Division, und zwar immer Schnellspeicher 6 geteilt durch Akku. Ergebnis in Akku und Schnellspeicher 6.
3011DF0+644Der Inhalt des Akkus wird auf dem Fernschreiber ausgedruckt; das ist hier das gewünschte Ergebnis.
3012Z0EKZ0+0Endgültiger Stopp.
T1030TJedes Programm, das Ausgabe erzeugt, sollte Angaben zur Druckformatierung in den Trommelzellen 1030-1036 haben. Hier soll das Ergebnis – ist nur eine einzige Zahl – in Festkommdarstellung mit maximal 3 Vorkomma- und 5 Nachkommastellen ausgegeben werden.
10309'Mantissenstellen für Gleitkommadarstellung, hier nur von Bedeutung, wenn Ergebnis größer als 3 Stellen vor dem Komma ist.
10313'Vorkommastellen
10325'Nachkommastellen
10331'Spalten
10341'Zwischenräume
103511'Strichzahlstellen, hier ohne Bedeutung
1036-1'Festkomma-Darstellung
EZ3002EWegen Z stoppt die Maschine nach dem Einlesen zunächst. Mit Weiter oder Start beginnt das Programms bei Adresse 3002; nicht etwa bei 3000, denn dort stehen ja erst die beiden Konstanten; der erste Befehl des Programms steht in 3002.