Eine Ordnungsfunc...

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Fetze

Betreff: Eine Ordnungsfunc...

BeitragMo, Jan 19, 2004 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi leutz!

Ich hab mal wieder ein Problem:
Ich will meine Raumnschiffe nach Preis ordnen lassen.
Das ganze Raumschiffspeichersystem sieht so aus:

Preis(raumschifftyp-nr)=sonstwas

Jetzt brauch ich eine Func, die mir anzeigt, welchen rang, preisgeordnet, ein bestimmtes schiff einnimmt, und umgekehrt:

ordnungsfunc(raumschifftyp-nr)=nr-in-preisgeordneter-rangfolge

Wenn jetzt Raumschiff Nr 4 das mit dem niedrigsten Preis und Raumschiff Nr 7 das mit dem zweitniedrigsten ist, dann soll folgendes dabei herauskommen:

ordnungsfunc(4)=1
ordnungsfunc(7)=2
...

Das Problem an der Sache ist, dass die Ordnungsfunc auch mehrere Schiffe mit gleichem Preis unterstützen soll, und da scheiterts bei meiner, die ich hier leider nicht posten kann, da ich sie in einem halben wutanfall gelöscht hab Rolling Eyes Wink

Also, bitte helft mir mal Very Happy

theBlade

BeitragMo, Jan 19, 2004 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm ok ich weiss nicht obs dir hilft, aber zieh dir mal bubblesort rein...
"Ich bin wie ich bin. Die einen kennen mich, die anderen können mich." (Dr. Konrad Adenauer)

UTFSB -> (use the fuckin "suchen"-button)

User posted image <- link -.-

simi

BeitragMo, Jan 19, 2004 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, habs nich probiert, aber vielleicht gehts Very Happy

Code: [AUSKLAPPEN]

Function ordnungsfunc(nr)
   Preis = SchiffsPreis(nr)
   Rang = 1
   For x = 0 to AnzahlSchiffe
      if SchiffsPreis(x) < Preis then Rang = Rang + 1
   next
   return rang
end function


Du musst im Array SchiffsPreis den Preis von jedem Schiff haben und AnzahlSchiffe muss die Anzahl Schiffe enthalten Very Happy

cu simi

Fetze

BeitragMo, Jan 19, 2004 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ne, geht nicht.
Schiffe mit gleichen Preisen werden so übereinandergelegt oder eines davon wird quasi "gelöscht". Ich hab mich jetzt 2 Tage mit dieser Function beschäftigt, und bin zu keiner Lösung gekommen.

simi

BeitragMo, Jan 19, 2004 21:00
Antworten mit Zitat
Benutzer-Profile anzeigen
und wenn du
Code: [AUSKLAPPEN]

 if SchiffsPreis(x) <=  Preis and x < nr  then Rang = Rang + 1

nimmst, dann sollten gleich grosse auch mit gezählt werden, aber nur, wenn sie einen kleineren index als die das abgefragete schiff haben(sonst hat einmal das eine die 5, und dann das andere).

Fetze

BeitragMo, Jan 19, 2004 22:29
Antworten mit Zitat
Benutzer-Profile anzeigen
nope, geht auch nicht.
 

Gast

BeitragDi, Jan 20, 2004 9:19
Antworten mit Zitat
theblade hatte schon Recht: Bubblesort sollte hier helfen.

PseudoCode:

for i = 1 to AnzRaumschiffe-1

for l = 1 to i

if PreisRaumschiff(l) > PreisRaumschiff(l+1) then

Hilfsvariable = RaumschiffRang(l)
RaumschiffRang(l) = RaumschiffRang(l+1)
RaumschiffRang(l+1) = Hilfsvariable
next

next

Zur Erklärung:

In dem Array RaumschiffRang sollte eine ID der Raumschiffe stehen um diese zuzuordnen. Ist natürlich auch anders machbar, sollte aber weiterhelfen....

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group