Vergleich von Real-Zahlen

Tobi_90

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich bin neu hier im Forum und bedanke mich gleich für eure Hilfe!

Ich soll ein Programm erstellen, dass aus einer Menge von Realzahlen die größte ermittelt. Wollte das ganze so umsetzten:

Netzwerk1:

L DB1.DBD 0
L DB1.DBD 4
>R
SPB R10
L DB1.DBD 0
L DB1.DBD 4
>R
SPBN R11
R10: L DB1.DBD 0
T MD 0
R11: L DB1.DBD 4
T MD 0

Netzwerk2:

L DB1.DBD 8
L DB1.DBD 12
>R
SPB R1_2
L DB1.DBD 8
L DB1.DBD 12
>R
SPBN R1_3
R1_2: L DB1.DBD 8
T MD 4
R1_3: L DB1.DBD 12
T MD 4
usw....

Nun funktioniert das aber überhaupt nicht so wie es soll... Ich vermute das ich noch irgendwie einen groben Schnitzer bei den Sprunkfunktionen mach, konnte diesen allerdings auch nach längerer Suche im Internet und in meinen Unterlagen nicht finden. Ich hoffe Ihr könnt mir sagen wo mein Fehler liegt. Danke schonmal im Vorraus!

Gruß Tobias
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke! Hat ja iwie doch leicht ähnlichkeiten zu meinem Programm, könntest du mir aber evtl. doch sagen wo bei mir der Fehler liegt? Sonst bin ich hinterher nicht schlauer ;)
 
Hallo,
wenn du schreibst "Nun funktioniert das aber überhaupt nicht so wie es soll..." - was meinst du konkret damit ?
Du hast das ein bißchen umständlich gemacht (man könnte es also optimieren) - aber einen "echten" Fehler sehe ich so nicht ...

Gruß
Larry
 
Ok ich versuch es mal zu erklären. Wenn ich das Programm simulier, wird bei jedem Netzwerk der 2. Vergleichswert ausgegeben.
z.b. Netzwerk1: Nach Ausführung steht im Merkerdoppelwort0 der Wert von DB1.DBD 4
bei Netzwerk2: steht im Merkerdoppelwort 4 der Wert von DB1.DBD 12
unabhängig ob nun der Wert größer oder kleiner als der Vergleichswert ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mal dein erstes Netzwerk:
Netzwerk1:

L DB1.DBD 0
L DB1.DBD 4
>R
SPB R10
L DB1.DBD 0
L DB1.DBD 4
>R
SPBN R11
R10: L DB1.DBD 0
T MD 0
R11: L DB1.DBD 4
T MD 0

Wenn du zum Label "R10" springst wird alles was danach kommt ebenfalls ausgeführt. Die Zuweisung von DBD4 wird also in jedem Falle ausgeführt. Das willst du aber nicht, d.h. du musst dir was überlegen damit nur eine der beiden Zuweisungen ausgeführt wird.
 
Du hast Recht - es gibt doch noch einen Fehler - ich habe dir mal im Netzwerk 1 noch etwas Code eingefügt ...
Das gilt dann natürlich genauso für die ggf. weiteren Netzwerke ...
Netzwerk1:

L DB1.DBD 0
L DB1.DBD 4
>R
SPB R10
L DB1.DBD 0
L DB1.DBD 4
>R
SPBN R11
R10: L DB1.DBD 0
T MD 0
SPA R1X
R11: L DB1.DBD 4
T MD 0
R1X:nop 0
Gruß
Larry
 
Zuletzt bearbeitet:
Achso, dass war mir nicht bewusst. Dachte der führt dann nur den Inhalt bis zur nächsten sprungmarke aus ;) Dann werd ich wohl noch ein paar sprünge einfügen müssen^^ Das mit der übersichtlichkeit kommt hoffentlich noch, lege bis jetzt primär augenmerk auf die Funktion meiner Programme. Danke für deine Hilfe!
 
Es könnte aber auch so aussehen :
Code:
L DB1.DBD 0
L DB1.DBD 4
>R
SPBN R11
L DB1.DBD 0
SPA R1X
R11: L DB1.DBD 4
R1X:T MD 0
...
 
Ja wäre auf jeden fall weniger zu schreiben, muss eingestehen das mein Programm sehr umständlich ist^^ ;)


Ist es eigentlich möglich den Variablen im DB Namen zu zuordnen, über Symboltabelle geht das bei mir nicht!
 
Ja wäre auf jeden fall weniger zu schreiben, muss eingestehen das mein Programm sehr umständlich ist^^ ;)


Ist es eigentlich möglich den Variablen im DB Namen zu zuordnen, über Symboltabelle geht das bei mir nicht!

Sie mussen die DB ein Symbolische name geben.

Z.b. DB1 in Byboltabelle DB_Real.

DBD0 in DB1 = Wert[1]


DB1.DB0 Symbolisch DB_Real.Wert[1]
 
Zurück
Oben