fehler im array ?

Anfängerfragen zum Programmieren mit PureBasic.
OptimusPrime
Beiträge: 43
Registriert: 07.03.2005 16:52

fehler im array ?

Beitrag von OptimusPrime »

das ist mein code :
es geht darum, dass die werte in einem array überprüft werden, um einen index in einem 2. array zu schreiben.

d.h. der grösste wert des ersten arrays erhält im 2. array an gleicher position den höchsten index, etc...

ich benötige das, um eine legende korrekt darzustellen.

ich habe hier ein beispiel, das leider nicht funktioniert :
invalid parameters numbers for array :Insel()

ich habe viel experimentiert, verstehe diesen fehler allerdings überhaupt nicht ;o(

korrekte ausgabe des requesters wäre (sollte sein ;o) : "0,2,1,3,"

anz=3
ind=0
Dim Index.l(anz)
Dim Insel.l(20,50,40,70)

For i = 0 To anz
For k= 1 To anz
If Insel(i) > Insel(k) ; <- hier wird der fehler angezeigt
ind=ind+1
EndIf
Next k
Index(i)=ind
ind=0
Next i

For i=0 To anz
text$=text$+Str(index(i)+","
Next i

MessageRequester("index",text$, 0)


vielen dank !
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Code: Alles auswählen

 For k= 0 To anz 
????
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26
Wohnort: Hessen
Kontaktdaten:

Beitrag von Leo »

Du hast ein 4-Dimensionales Array angelegt (warum auch immer)

Code: Alles auswählen

Dim Insel.l(20,50,40,70) ;<-- 4 Dimensionen
Später jedoch gibst du nur eine Dimension an, obwohl doch 4 erwartet werden.

Code: Alles auswählen

Insel(k) ;<-- Nur eine Dimension
Meinetwegen kann es so heißen (ich weiß ja nich, was du damit erreichen willst..) :

Code: Alles auswählen

Insel(k,0,0,0) ;<-- Alle 4 Dimensionen angegeben
[Edit]
Kanns sein, dass du das hier erreichen willst?

Code: Alles auswählen

anz=3 
ind=0 
Dim Index.l(anz) 
Dim Insel.l(anz) 
Insel(0) = 20
Insel(1) = 50
Insel(2) = 40
Insel(3) = 70

For I = 0 To anz 
    For k= 1 To anz 
        If Insel(I) > Insel(k)
            ind=ind+1 
        EndIf 
    Next k 
    Index(I)=ind 
    ind=0 
Next I 

For I=0 To anz 
    text$=text$+Str(Index(I))+"," 
Next I 

MessageRequester("index",text$, 0)
Zuletzt geändert von Leo am 11.03.2005 16:43, insgesamt 1-mal geändert.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Hroudtwolf hat geschrieben:

Code: Alles auswählen

 For k= 0 To anz 
????
Die Variable anz wurde ganz oben auf 3 festgelegt man könnte also auch

Code: Alles auswählen

For k = 0 To 3
schreiben
OptimusPrime
Beiträge: 43
Registriert: 07.03.2005 16:52

THANX

Beitrag von OptimusPrime »

4 dimensionales Array....
Ich Trottel...

(idas sollten eigentlich die werte des eindimensionalen sein, ich noob)

LOL

Vielen Dank !
Antworten