In einem Array nach einer Zahl suchen

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

In einem Array nach einer Zahl suchen

Beitrag von Leo »

Hab ich gerade mal gebraucht :mrgreen:
Sucht in einem Ein-Dimensionalem Array nach Einem Long.

Code: Alles auswählen

;#######################################################################################
;#######################################################################################
;Procedure FindInLongArray1D
;#######################################################################################
;#######################################################################################
;Sucht nach einer Zahl "num" in einem Array
;Das Array gibt man einfach mit @+ArrayName an.
Procedure FindInLongArray1D(*array,num)
    *a.LONG=*array
    *a-8
    size=*a\l-1
    *a+8
    For I=0 To size
        If *a\l=num
            ProcedureReturn I
        Else
            *a+4
        EndIf
    Next
    ProcedureReturn -1
EndProcedure

;#######################################################################################
;#######################################################################################
;Beispiel
;#######################################################################################
;#######################################################################################

;Array initialisieren
Dim a(20)

;Array mit Zahlen füllen
For I=0 To 20
    a(I)=I*5
Next

;Nach 50 im Array suchen
num=FindInLongArray1D(@a(),50)
;Debuggen
If num <> -1
    Debug "Eintrags Nummer: "+Str(num)
    Debug "Zahl an Eintrags Nummer: "+Str(a(num))
Else
    Debug "Kein Eintrag gefunden!"
EndIf 
Debug "-----"

;Nach 100 im Array suchen
num=FindInLongArray1D(@a(),100)
;Debuggen
If num <> -1
    Debug "Eintrags Nummer: "+Str(num)
    Debug "Zahl an Eintrags Nummer: "+Str(a(num))
Else
    Debug "Kein Eintrag gefunden!"
EndIf 
Debug "-----"

;Nach 100000 im Array suchen
num=FindInLongArray1D(@a(),100000)
;Debuggen
If num <> -1
    Debug "Eintrags Nummer: "+Str(num)
    Debug "Zahl an Eintrags Nummer: "+Str(a(num))
Else
    Debug "Kein Eintrag gefunden!"
EndIf