Seite 1 von 1

Höchste Zahl in For...Next Schleife finden

Verfasst: 09.09.2010 18:54
von Ironsmurf
Hallo zusammen

Bescheidene Frage, wie kann ich den höchten Wert in einer Schleife finden ?

Code: Alles auswählen

NewList Zahlen()
  For n = 1 To 30
    AddElement(Zahlen())
    Zahlen() = Random(999)
  Next

  OpenConsole()
  ForEach Zahlen()
    PrintN(Str(Zahlen()))
  Next
  Input()
Dieses Beispiel aus dem Forum liefert mir 30 Zufallszahlen, ich möchte jetzt nur die höchste Zahl an eine Variable übergeben,
kann mir jemand erklären, wie ich das machen muss.

Vielen Dank im voraus

Re: Höchste Zahl in For...Next Schleife finden

Verfasst: 09.09.2010 19:03
von ts-soft
Da nicht ersichtlich ist, warum Du das so machst, mal meinen Vorschlag:

Code: Alles auswählen

Dim Zahlen(999)
Define n
For n = 1 To 30
  Zahlen(Random(999)) = 1
Next

For n = 999 To 0 Step - 1
  If Zahlen(n) = 1
    Debug n
    Break
  EndIf
Next
Erfüllt die Aufgabe schnell, aber ähnelt Deinem Code nicht.

Gruß
Thomas

Re: Höchste Zahl in For...Next Schleife finden

Verfasst: 09.09.2010 19:05
von rolaf
Wozu ne Liste? Am einfachsten gehts so:

Code: Alles auswählen

For A = 1 To 30
  Zahl = Random(999)
  If Zahl > Hzahl
    Hzahl = Zahl
  EndIf
Next

Debug Hzahl

Re: Höchste Zahl in For...Next Schleife finden

Verfasst: 10.09.2010 01:50
von Sunny
Und falls es unbedingt ne Liste sein muss, wäre hier mein Vorschlag:

Code: Alles auswählen

NewList Zahlen()

For n = 1 To 30
  AddElement(Zahlen())
  Zahlen() = Random(999)
Next

n=0

ForEach Zahlen()
  n+1
  If Zahlen()>=Max
    Max=Zahlen()
    Nr=n
  EndIf
Next

n=0

ForEach Zahlen() 
  n+1
  If Zahlen()=Max
    Debug n
  EndIf
Next

Re: Höchste Zahl in For...Next Schleife finden

Verfasst: 10.09.2010 09:17
von Bisonte
Höchste Zahl in einer Liste ?

Sort - Lib ;)

Code: Alles auswählen

NewList Zahlen()

For n = 1 To 30
  AddElement(Zahlen()) : Zahlen() = Random(999)
Next n

SortList(Zahlen(),#PB_Sort_Descending)
FirstElement(Zahlen())

Debug Zahlen()

Re: Höchste Zahl in For...Next Schleife finden

Verfasst: 10.09.2010 09:32
von Kiffi
und hier die obligatorische bloated Database-Solution ;-)

Code: Alles auswählen

UseSQLiteDatabase()

DB = OpenDatabase(#PB_Any, ":memory:", "", "", #PB_Database_SQLite)
DatabaseUpdate(DB, "Create Table myTable (myField)")

For n = 1 To 30
  DatabaseUpdate(DB, "Insert Into myTable (myField) Values (" + Str(Random(999)) + ")")
Next

DatabaseQuery(DB, "Select Max(myField) From myTable")
NextDatabaseRow(DB)

Debug GetDatabaseLong(DB, 0)

FinishDatabaseQuery(DB)
Grüße ... Kiffi