Seite 1 von 1
Array inhalte vergleichen
Verfasst: 03.01.2014 12:34
von gnaps
Hallo Forum,
wie kann man den größten wert in einem Array ermitteln?
Ich habe ein Array mit 3 Ganzzahlen und benötige hier die Größte Zahl.
Gibt es da eine einfache Abfrage oder muss ich alles mit IF vergleichen ?
Gruß
gnaps
Re: Array inhalte vergleichen
Verfasst: 03.01.2014 12:36
von RSBasic
@gnaps
Du kannst es auf- oder absteigend sortieren und dann den letzten bzw. ersten Eintrag auslesen.
Re: Array inhalte vergleichen
Verfasst: 03.01.2014 17:40
von Danilo
Ohne Sortierung geht man das Arrays einfach durch und gibt die größte gefundene Zahl zurück.
Code: Alles auswählen
Procedure.i GroessteZahlImIntegerArray( Array a.i(1) )
elemente = ArraySize( a() )
If elemente >= 0
ergebnis = a(0)
For i = 0 To elemente
If a(i) > ergebnis
ergebnis = a(i)
EndIf
Next
ProcedureReturn ergebnis
EndIf
EndProcedure
Procedure.i KleinsteZahlImIntegerArray( Array a.i(1) )
elemente = ArraySize( a() )
If elemente >= 0
ergebnis = a(0)
For i = 0 To elemente
If a(i) < ergebnis
ergebnis = a(i)
EndIf
Next
ProcedureReturn ergebnis
EndIf
EndProcedure
Dim arr.i(2)
arr(0) = 14
arr(1) = 768
arr(2) = -5
Debug GroessteZahlImIntegerArray( arr() )
Debug KleinsteZahlImIntegerArray( arr() )
Debug "------------"
Dim arr2.i(100)
For i = 0 To 100
arr2(i) = Random(2000)
Next i
Debug GroessteZahlImIntegerArray( arr2() )
Debug KleinsteZahlImIntegerArray( arr2() )
Re: Array inhalte vergleichen
Verfasst: 03.01.2014 19:21
von Andreas21
oder einfach so:
Erstellung eines 2 Array als Kopie, damit die Indexe des Array nicht verändert werden.
Code: Alles auswählen
Dim Array1.i(41000)
Dim size.i
For t = 0 To 4100
Array1(t) = Random(100000)
Next
size = ArraySize(Array1())
Dim Array2.i(size)
CopyArray(Array1(), Array2())
SortArray(Array2(), #PB_Sort_Ascending)
Groestes = Array2(size)
Kleinstes = Array2(0)
FreeArray(Array2())
Re: Array inhalte vergleichen
Verfasst: 04.01.2014 00:08
von gnaps
Hallo Forum,
Danke an RSBasic, Deine Antwort hat mir geholfen und reicht aus.
RSBasic hat geschrieben:
Du kannst es auf- oder absteigend sortieren und dann den letzten bzw. ersten Eintrag auslesen.
Mein Array ist nur ein Contaner für drei Werte da spielt die Sortierung keine Rolle.
Alles andere wäre zu aufwendig.
Gruß
gnaps