Array inhalte vergleichen

Anfängerfragen zum Programmieren mit PureBasic.
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Array inhalte vergleichen

Beitrag 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
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Array inhalte vergleichen

Beitrag von RSBasic »

@gnaps
Du kannst es auf- oder absteigend sortieren und dann den letzten bzw. ersten Eintrag auslesen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Array inhalte vergleichen

Beitrag 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() )
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: Array inhalte vergleichen

Beitrag 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())
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: Array inhalte vergleichen

Beitrag 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
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Antworten