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:

Größte, zweitgrößte, ... Zahl einer Menge ermitteln

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



Anmeldungsdatum: 15.04.2010
Beiträge: 34

BeitragVerfasst am: 23.06.2010, 19:08    Titel: Größte, zweitgrößte, ... Zahl einer Menge ermitteln Antworten mit Zitat

Hey,

Ich brauch Hilfe:

Ich brauch irgendwas um den größten Wert herauszufinden.
Und auch irgendetwas um den zweitgrößten Wert, usw. zu finden.

Z.B.


[...]
IF wert1 {am größten} {(ggf.) von wert1, wert2, wert3} THEN
?"Wert 1 ist am größten ! "
IF wert2 {am zweitgrößten} {(ggf.) von wert1, wert2, wert3}
END IF
[...]

Oder so..

Editiert durch Moderator: Wenig aussagekräftigen Thementitel "Brauche Hilfe" ersetzt. (Sebastian)
_________________
Regards lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 23.06.2010, 19:25    Titel: Antworten mit Zitat

Du könntest dir eine Funktion schreiben, die den aktuellen Wert mit zwei Variablen vergleicht, nämlich den Variablen groessteZahl und zweitgroessteZahl.

Wenn der Wert größer ist als die größte Zahl, dann bekommt die zweitgrößte den Wert der größten und der aktuelle Wert wird als größte Zahl gespeichert.
Wenn der Wert kleiner ist als die größte Zahl aber größer als die zweitgrößte, wird der Wert eben der zweitgrößten zugeordnet.
Wenn die Zahl kleiner ist als beide Zahlen, dann passiert eben nichts.

So gehst du dann alle Werte durch und am Ende hast du die größte und zweitgrößte Zahl.


btw.: Treffendere Threadnamen bitte zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 23.06.2010, 19:31    Titel: Antworten mit Zitat

Was du brauchst ist BubbleSort. Wenn du mit arrays umgehen kannst solltest du dir das hier durchlesen:
http://www.freebasic-portal.de/code-beispiele/suchen-und-sortieren/arrays-sortieren-mit-bubblesort-11.html

http://www.freebasic-portal.de/porticula/shakersort-beispiel-1117.html
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
frebas



Anmeldungsdatum: 20.06.2008
Beiträge: 245

BeitragVerfasst am: 23.06.2010, 21:14    Titel: Antworten mit Zitat

bubblesort würde sinn machen wenn es effektiv sein muss und wenn man man die reihenfolge aller oder fast aller werte braucht, ansonsten ist sowas auch gut:



Code:
dim as integer maxwert, wert(999)
for temp as integer = 0 to 999
if wert(temp)>maxwert then maxwert=wert(temp)
next
print "größter wert: "&maxwert
sleep
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stueber



Anmeldungsdatum: 07.07.2008
Beiträge: 202

BeitragVerfasst am: 23.06.2010, 21:33    Titel: Antworten mit Zitat

Zitat:
bubblesort würde sinn machen wenn es effektiv sein muss

Im Gegenteil, Bubblesort macht dann Sinn wenn es nicht effektiv sondern einfach sein muss. QuickSort ist super wenn es schnell gehen muss, schnell implementiert und relativ gut verständlich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OdinX



Anmeldungsdatum: 29.07.2005
Beiträge: 253
Wohnort: SG Schweiz

BeitragVerfasst am: 24.06.2010, 09:00    Titel: Antworten mit Zitat

Ach was. verkettete Listen sind viel besser zum sortieren^^
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 24.06.2010, 10:23    Titel: Antworten mit Zitat

http://de.wikipedia.org/wiki/Sortierverfahren

Meine favoriten sind QuickSort, und RadixSort... je nachdem was man gerade braucht...

wuerde mir die hier mal ansehen:
http://www.freebasic-portal.de/code-beispiele/suchen-und-sortieren/
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
hello



Anmeldungsdatum: 15.04.2010
Beiträge: 34

BeitragVerfasst am: 24.06.2010, 16:33    Titel: Antworten mit Zitat

Ich hatte mir eher was von
{wenn wert1 am größten, dann wert1 = ... }

einfach so alles auflisten dauert zu lange, weil es zu viele sind
_________________
Regards lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 24.06.2010, 17:18    Titel: Antworten mit Zitat

Wenn du alle Werte in ein Array schreibst (das wird in deinem Fall vermutlich sowieso eine gute Möglichkeit sein, die Werte zu speichern) und dieses dann mit einem der oben beschriebenen Verfahren sortierst, dann bedeutet
Code:
IF wert2 = array(2) THEN ' ...

in etwa das, was du mit "Wenn wert2 = der zweitgrößste der Liste array()" meinst. Doppelt vorkommene Werte mal nicht berücksichtigt.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
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 FreeBASIC. 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