Seite 1 von 1

Zahlen auf oder absteigend sotieren

Verfasst: 25.03.2023 14:49
von cyerangle
Hallo zusammen,
ich stehe wieder einmal auf meiner Leitung. Ich habe 3 Zahlen und möchte diese sortiern.
Ich weis, dass das mit einer geschachtelten if Schleife geht. Ich bekomme es aber nicht
gebacken. Kann mir jemand auf die Sprünge helfen?

Vielen Dank
Mike

Re: Zahlen auf oder absteigend sotieren

Verfasst: 25.03.2023 15:32
von STARGÅTE
Vorab, es gibt keine "if-Schleife".
Falls du aber keine Liste benutzten willst, sondern du wirklich nur drei Zahlen hast, dann z.B. so:

Code: Alles auswählen

Define a = 34
Define b = 12
Define c = 23

If a <= b
	If a <= c
		If b <= c
			Debug a
			Debug b
			Debug c
		Else
			Debug a
			Debug c
			Debug b
		EndIf
	Else
		Debug c
		Debug a
		Debug b
	EndIf
Else
	If b <= c
		If a <= c
			Debug b
			Debug a
			Debug c
		Else
			Debug b
			Debug c
			Debug a
		EndIf
	Else
		Debug c
		Debug b
		Debug a
	EndIf
EndIf

Re: Zahlen auf oder absteigend sotieren

Verfasst: 25.03.2023 15:50
von DePe
Hallo Mike,

sind ein bisschen wenig Angaben, meinst so etwas:

Code: Alles auswählen

EnableExplicit

Define a = Random(20, 1) - 10
Define b = Random(20, 1) - 10
Define c = Random(20, 1) - 10
Define s

Debug "" + a + ", " + b + ", " + c

Repeat
  s = #True
  If a > b
    Swap a, b
    s = #False
  EndIf
  If b > c
    Swap b, c
    s = #False
  EndIf
Until s

Debug "" + a + ", " + b + ", " + c
Peter

Re: Zahlen auf oder absteigend sotieren

Verfasst: 25.03.2023 17:59
von mk-soft
Ohne repeat mit drei swaps ...

Code: Alles auswählen

EnableExplicit

Define a = Random(20, 1) - 10
Define b = Random(20, 1) - 10
Define c = Random(20, 1) - 10
Define s

Debug "" + a + ", " + b + ", " + c

If a > b
  Swap a, b
EndIf
If a > c
  Swap a, c
EndIf
If b > c
  Swap b, c
EndIf

Debug "" + a + ", " + b + ", " + c

Re: Zahlen auf oder absteigend sotieren

Verfasst: 25.03.2023 19:15
von cyerangle
Hallo Peter,
genau so etwas habe ich gesucht. ich kannte nur Swap nicht in PureBasic.
Ausserdem habe ich nicht daran gedacht es mit Repeat und Until zu lösen,
ist ja viel eleganter

Vielen vielen Dank
Mike