Hallo, ich glaube ich bin auf dem falschem Dampfer. Ich brauche nur eine Bestätigung.
Wenn ich das schreibe:
IF A > 13
DEC A, 13
ENDIF
Angenommen A=20, dann wird doch aus diesen 20 eine 7, oder nicht?
Also quasi A = 7
Wenn jemand ein Ja oder Nein hat reicht es mit schon.
Guten Rutsch und so's Zeug und ich wünsche Euch doppelt soviel wir Ihr mir wünscht. :good:.
Ja,
lass das im Debugmodus laufen ;)
GLOBAL i
GLOBAL A
GLOBAL B[]
DIM B[10]
A = 20
B[5] = 21
DEBUG "Variable A: "+A+"\n"
DEBUG "ARRAY B[5]: "+B[5]+"\n"
IF A > 13
DEC A, 13
ENDIF
FOR i = 0 TO LEN(B[])-1
IF B[i]= 21 THEN DEC B[i],5
NEXT
DEBUG "Variable A: "+A+"\n"
DEBUG "ARRAY B[5]: "+B[5]+"\n"
Danke, dann ist mein Fehler woanders.
Ich bekomme nämlich bei SORTARRAY A[], 0 immer eine 0 reingeschrieben obwohl der Array gefüllt ist. hab mit DEBUG nachgeschaut.
Frohes Neues. :booze:
Rufst Du Sortarray danach nochmals Auf?
Ich schau mal am Spätnachmittag einmal danach.
Muss jetzt erstmal zur Therapie :)
Gesendet von meinem GT-I9300 mit Tapatalk
Hallo, hat sich erledigt. Ich generiere, um doppelte zu vermeiden 10 zufallszahlen und filter die doppelten raus und sortiere dann. Ich zeige mir aber nur die ersten 5 an. Also sind auch andere zahlen dazwischen. Kann man SORTARRAY begrenzen auf z.b. nur 5 statt 10 zahlen zusortieren, oder so?
Um Zufallszahlen eines kleinen Zahlenbereichs zu generieren, ohne doppelte Zahlen zu erhalten,
würde ich in GLBasic folgendes tun:
main()
FUNCTION main:
LOCAL number%[] , amount% , range% , position% , randomNr%[]
// initialisierung V
range = 20 ; amount = 20
IF amount > range THEN amount = range
DIM number[range] ; DIM randomNr[amount]
FOR i = 0 TO range - 1 ; number[i] = i ; NEXT // number Array mit allen Zahlen des Zahlenbereichs befüllen, ende initialisierung
FOR i = 0 TO amount - 1 // nimm die gewünschte Anzahl ( amount ) zufälliger Zahlen
position = RND( range - 1 ) // eine Zufällige position innerhalb des number Array wählen.
randomNr[ i ] = number[ position ] // Diese zufällige Zahl in die Zufallszahlenliste eintragen
DIMDEL number[] , position // den Eintrag mit der zufälligen Zahl entfehrnen ( darunter liegende Einträge werden nach oben verschoben )
DEC range , 1 // Variable range an die Anzahl von Einträgen der number Array anpassen
NEXT
DIM number[0]
ENDFUNCTION
Da Zufallszahlen die doppelt sind wieder neu zu generieren und wieder auf gleichheit zu testen ist ein Kreislauf der sich theoretisch
ewig wiederhohlen kann, ab einer gewissen Anzahl von Zuffalsobjekten.
Geht man so wie in dem code hier vor, ist die Laufzeit des Programms immer fest durch die Variablen range und amount bestimmt
( Und natürlich von der Prozessorleistung =D).
Edit: Frohes Neues Jahr :booze:
Sorry falsch ausgedrückt. Zufallszahlen habe ich, auch ohne doppelte. Ich übergebe aber im Array 10 zahlen, brauche aber erstmal nur fünf, aber SORTARRAY sortiert alle 10, also kommt evtl. die 9 Zahl an zweiter Stelle, die brauch ich aber nicht. Ich möchte von SORTARRAY statt von 0-10 nur z.B. 0-4 sortiert haben.
habe sort array nie benutzt, sry.
Ich habe bis jetzt immer den Bubble Sort verwendet.
wenn sort array immer die Ganze array sortiert, einfach die Array in zwei aufsplitten und dann nur eine sortieren.
Ich schau mal, Danke für den Tip.