Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

SWAP

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 959
Wohnort: Niederbayern

BeitragVerfasst am: 21.11.2007, 18:48    Titel: SWAP Antworten mit Zitat

Guten Abend!

Ich habe eine kleines Problem, und wenig Zeit im Internet.

Es gibt ja den Befehl SWAP. Dieser Befehl sortiert 10 Namen und deren zugehörigen Punktezahl. Da es aber sein kann, dass zwei oder mehrere Spieler gleiche Punktezahl haben, möchte ich diese durch eine gesonderte Feinwertung nochmal extra sortieren. Wie kann man sowas einfach und schnell programmieren?

Mit freundlichen Grüßen
ALWIM
_________________
SHELL SHUTDOWN -s -t 05


Zuletzt bearbeitet von ALWIM am 27.11.2007, 16:00, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 21.11.2007, 18:58    Titel: Antworten mit Zitat

Das kann man nicht pauschal lösen. Dazu müssten wir deine Feinkriterien kennen. Das könnte so gehen...
Code:

[...]
If Spieler(i).Punktezahl = Spieler(j).Punktezahl THEN
  If Spieler(i).Irgendwas > Spieler(j).Irgendwas THEN
    Swap [...]
  Else
    [...]
  EndIf
ElseIf Spieler(i).Punktezahl > Spieler(j).Punktezahl THEN
  Swap [...]
EndIf
[...]

_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 21.11.2007, 21:41    Titel: Antworten mit Zitat

Einfach die gleichen Punktezahlen unterschiedlich machen, im Bereich einer Nachkommastelle. Damit können bis zu zehn Platzierte die gleiche Punktezahl besitzen, ohne dass der Algo an Wirkung verliert. Also bspw.:
Code:

FOR i = 1 TO 10
 IF i > 1 AND Spieler(i) = Spieler(i-1) THEN Spieler(i) = Spieler(i) + 0.1
NEXT

Man muss eben im oben aufgeführten Beispiel noch eine Abfrage hinzufügen, ob der vorangegangenen Punktzahl bereits eine Nachkommastelle hinzuaddiert wurde und, wenn ja, welche.

Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 959
Wohnort: Niederbayern

BeitragVerfasst am: 27.11.2007, 16:05    Titel: Antworten mit Zitat

habe schon eine kleine lösung gefunden.
bei schach gibt es ja die feinwertung sonneborn-berger-system.
nach diesem prinzip wollte ich es machen. vielleicht kriege ich es noch so hin dass es passt.

mit freundichen grüßen
alwim
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz