PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ARGH! Drecks ungülter Prozeduraufruf!!!


huha
2003-09-18, 18:40:26
Morgen!

Kann mir hierbei vielleicht jemand helfen? Mir gehts heute nämlich dermaßen merkwürdig, daß ich absolut NICHTS mehr hinkrieg...


erg = Sqr((cities(solutions(i, u + 1), 0) - cities(solutions(i, u), 0) ^ 2 + ((cities(solutions(i, u + 1), 1) - (cities(solutions(i, u), 1) ^ 2)))))


Sprache ist VB, ist aber nicht so wichtig. Kommt immer Fehler Nummer 5, ungültiger Prozeduraufruf od. ungültiges Argument - na danke!
Was hab' ich jetzt schon wieder falsch gemacht?

-huha

Demirug
2003-09-18, 18:52:32
Auf anhieb sehe ich da jetzt auch nichst aber zerlege diese Horrorcodezeile doch einfach mal in mehrere dann steigt man möglicherweise auch wieder bei den Klammern durch.

Exxtreme
2003-09-18, 19:54:27
Original geschrieben von Demirug
Auf anhieb sehe ich da jetzt auch nichst aber zerlege diese Horrorcodezeile doch einfach mal in mehrere dann steigt man möglicherweise auch wieder bei den Klammern durch.
Jaja, aus huha wird wohl ein zweiter J.C. werden. :D

J.C. schreibt angeblich auch Code, der nur vom Compiler lesbar ist. :D

zeckensack
2003-09-19, 12:01:08
Zwei Möglichkeiten:
1)In C ist "^" der XOR-Operator, und nicht "hoch". Wenn das in VB auch so sein sollte, dann ist das der Fehler :bäh:
2)Bist du 1000%ig sicher, daß das ganze Zeugs in der äußeren Klammer niemals negativ sein kann? Ich sehe Subtraktion, das kann gefährlich werden. Laß am besten mal ein Protokoll mitlaufen, um das zu prüfen.

Obligaron
2003-09-19, 15:31:34
'schritt 1
Dim solutions1 As Integer
Dim solutions2 As Integer
Dim solutions3 As Integer
Dim solutions4 As Integer

solutions1 = solutions(i, u + 1)
solutions2 = solutions(i, u)
solutions3 = solutions(i, u + 1)
solutions4 = solutions(i, u)

Dim cities1 As Integer
Dim cities2 As Integer
Dim cities3 As Integer
Dim cities4 As Integer

cities1 = cities(solutions1, 0)
cities2 = cities(solutions2, 0)
cities3 = cities(solutions3, 1)
cities4 = cities(solutions4, 1)

erg = Sqr((cities1 - cities2 ^ 2 + ((cities3 - (cities4 ^ 2)))))

'schritt 2
Dim solutions1 As Integer
Dim solutions2 As Integer

solutions1 = solutions(i, u + 1)
solutions2 = solutions(i, u)

Dim cities1 As Integer
Dim cities2 As Integer
Dim cities3 As Integer
Dim cities4 As Integer

cities1 = cities(solutions1, 0)
cities2 = cities(solutions2, 0)
cities3 = cities(solutions1, 1)
cities4 = cities(solutions2, 1)

cities2 = cities2 ^ 2
cities4 = cities4 ^ 2

'erg = Sqr(cities1 - cities2 + (cities3 - cities4))
erg = Sqr(cities1 - cities2 + cities3 - cities4)

Ich bin jetzt mal davon ausgegangen das die alle nur Integer zurückgeben und auch selbst keine Klassen etc. sind, sondern reine Funktionsaufrufe.

btw: Also ^ ist in VB wirklich 'hoch', das passt schon.

MfG,
Obligaron