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

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Ironsmurf
Beiträge: 111
Registriert: 04.01.2006 12:57
Computerausstattung: AMD FX(tm)-6300 Six-Core Processor
3.50 GHz / 8 GB Ram
Windows 7 / 64bit / Ultimate
Purebasic 5.20 LTS (Windows - x86)
Wohnort: Deutschland

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

Beitrag 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
Es kommt immer auf die Sichtweise des Betrachters an.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

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

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

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

Beitrag 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
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

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

Beitrag 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
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

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

Beitrag 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()
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

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

Beitrag 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
a²+b²=mc²
Antworten