C++ nach PureBasic übersetzen! Code: y += (y2>y1?1:-1)

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

C++ nach PureBasic übersetzen! Code: y += (y2>y1?1:-1)

Beitrag von Mijikai »

Wie kann ich folgenden C++ Code in PureBasic umsetzten?

Code:

Code: Alles auswählen

y += (y2>y1?1:-1)
Benutzeravatar
#NULL
Beiträge: 2239
Registriert: 20.04.2006 09:50

Re: C++ nach PureBasic übersetzen! Code: y += (y2>y1?1:-1)

Beitrag von #NULL »

Code: Alles auswählen

If y2 > y1
  y = y + 1
Else
  y = y - 1
EndIf
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Re: C++ nach PureBasic übersetzen! Code: y += (y2>y1?1:-1)

Beitrag von Pelagio »

Hallo Mijikai,

Es gibt auch den Befehl BOOL bei PB, eventuell kann mann auch damit zu einem Ergebnis kommen,
wobei die Variant von #NULL die schnellste und auch einfachste ist.
Ein Beispiel:

Code: Alles auswählen

Define.i Y = 10
Y1.i = 12
Y2.i = 9

Y + 2 * Bool(Y2<Y1) - 1
Debug Y 

Y = 10
Y + 2 * Bool(Y2>Y1) - 1
Debug Y
Zuletzt geändert von Pelagio am 29.01.2020 14:06, insgesamt 1-mal geändert.
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Benutzeravatar
mk-soft
Beiträge: 3871
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: C++ nach PureBasic übersetzen! Code: y += (y2>y1?1:-1)

Beitrag von mk-soft »

Viel ASM Code

Code: Alles auswählen

Macro IIf(Assert, r1, r2)
  ((Bool((Assert))*r1) + (Bool(Not(Assert))*r2))
EndMacro

y1 = 1
y2 = 2
y = 10
y + IIF(y2>y1, 1, -1)
Debug y
y1 = 2
y2 = 1
y = 10
y + IIF(y2>y1, 1, -1)
Debug y
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
#NULL
Beiträge: 2239
Registriert: 20.04.2006 09:50

Re: C++ nach PureBasic übersetzen! Code: y += (y2>y1?1:-1)

Beitrag von #NULL »

r1 und r2 müssen im Macro Body geklammert werden. Außerdem muss man dabei beachten, dass der Ausdruck Assert mehrmals ausgewertet wird.
Zuletzt geändert von #NULL am 28.01.2020 16:00, insgesamt 2-mal geändert.
my pb stuff..
Bild..jedenfalls war das mal so.
Antworten