Wie Maximum herausfinden?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Benibaerenstark

Betreff: Wie Maximum herausfinden?

BeitragFr, Jun 03, 2005 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
In meinem Projekt muss ich aus einem Dim-Feld die Position des grössten Werts ermitteln. Ich komme einfach nicht dahinter, warum mir dieser Code diese Positon nicht ermittelt:

BlitzBasic: [AUSKLAPPEN]
Graphics 500,500,32,0

Dim Zahlen (29)
Global max
Global pos


SeedRnd MilliSecs()

;zahlen setzen
For i = 0 To 29
Zahlen (i) = Rand (0, 100)

Next

;max suchen
For i = 0 To 29

x = Zahlen(i) ;position auslesen

If i <= 28 Then y = Zahlen (i+1) ;nachfolgende position auslesen

If y > x And max <= y Then max = y And pos = i
If y = x And max <= y Then max = y And pos = i
If y < x And max <= x Then max = x And pos = i

Next

Print \"position des grössten werts: \" + pos
Print


For i = 0 To 29
Print i+ \") \"+Zahlen (i)

Next




WaitKey
End


vielen Dank für eure Hilfe

Firstdeathmaker

BeitragFr, Jun 03, 2005 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde das einfacher machen:


BlitzBasic: [AUSKLAPPEN]
wert=0
pos=0
For i=0 To 29
If Zahlen(i)>wert
wert=zahlen(i)
pos=i
Next
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image
  • Zuletzt bearbeitet von Firstdeathmaker am Fr, Jun 03, 2005 20:46, insgesamt einmal bearbeitet
 

Dreamora

BeitragFr, Jun 03, 2005 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist eine extrem komplizierte Fassung irgendwie.

Um das Maximum zu finden, musst du ja lediglich das aktuelle Maximum wissen und es mit jedem Wert vergleichen. Es wird eigentlich kein Wissen über die grösse des nächsten Feldes benötigt. Vielleicht macht ja das Probleme ...


BlitzBasic: [AUSKLAPPEN]

Graphics 500,500,32,0

Dim Zahlen (29)
Global maximum = -1 ; muss 1 kleiner sein als der kleinst mögliche Wert
Global position

SeedRnd MilliSecs()

;zahlen setzen
For i = 0 To 29
Zahlen (i) = Rand (0, 100)
Next

;max suchen
For i = 0 To 29
If Zahlen (i) > maximum
maximum = Zahlen (i)
position = i
EndIf
Next

Print \"position: \" + pos
Print


For i = 0 To 29
Print i+ \") \"+Zahlen (i)
Next


WaitKey
End
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Benibaerenstark

Betreff: Vielen Dank

BeitragFr, Jun 03, 2005 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank für die schnellen Antworten!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group