Eines der Unterprogramme von dem Programm was ich in dem Beitrag : For Next Schleifen lassen sich nicht ersetzen - SonstigeProblemstellungen - VB-Paradise 2.0 – Die große Visual-Basic- und.NET-Community veröffentlicht habe verursacht manchmal, wenn es aufgerufen wird die Fehlermeldung System.IndexOutOfRangeException
In einer der Visual script Varianten, die ich geschrieben hatte, war es mir gelungen, eine Version des Programms zu erstellen, bei der man in der Ausgabe gut sehen kann, wie das Programm funktioniert. :
Wenn man in diesem Script eine einfache Zahlenkombination wie zum Beispiel 6 hoch 4 mod 150 eingibt , kann man sehr gut nachvollziehen, wie dieses Script das Ergebnis berechnet.
Was habe ich bisher selbst versucht, um das Problem zu beheben ?
Ich habe die Deklaration des Feldes :
erhöht. Ich glaube aber, dass es nur wichtig ist, dass das Feld Produkt mindestens so groß wie Pot dimensioniert wird, weil am Ende der Funktion nur zurückgegeben wird. Dann habe ich zum Beispiel versucht von der Seite : RSA-Kryptosystem– Wikipedia eine Funktion, die
das gleiche macht wie meine :
mittels des Link : Code Converter C# to VB and VB to C# – Telerik
von der Programmiersprache C in VB zu übersetzen. Leider erhalte ich beim Versuch der Übersetzung eine Fehlermeldung. Dann habe ich mir auch den Link : IndexOutOfRangeException
Klasse (System) | Microsoft Docs
angeguckt, aus den Hinweisen die dort gegeben werden, werde ich nicht schlau, in Bezug auf das, was ich bei diesem kleinen Programm verändern muss, um das Auftreten dieser Fehlermeldung zu verhindern ?
Kann mir jemand für dieses kleine Programm :
Veränderungsvorschläge machen um das Problem zu beheben ?
In einer der Visual script Varianten, die ich geschrieben hatte, war es mir gelungen, eine Version des Programms zu erstellen, bei der man in der Ausgabe gut sehen kann, wie das Programm funktioniert. :
Visual Basic-Quellcode
- dim a,P,k,x,Ausg,Erg
- a=Inputbox("Bitte geben sie die Basis ein:",_
- "b=a mod c")
- P=Inputbox("Bitte geben sie die Potenz ein:",_
- "b=a mod c:")
- k=Inputbox("Bitte geben sie den Teiler K ein:",_
- "b=a mod c:")
- redim Produkt(P+1) 'Feld anlegen
- Produkt(0)= a 'initialisieren
- For x= 0 to P
- Produkt(x+1)=(Produkt(x)*a)
- mod k
- if x > 0 then
- Ausg = Ausg + "
- Innerhalb der Schleife " & " x : " & x & " Produkt(x) : "_
- & Produkt(x) & " = (" & Produkt(x-1) & " mal " & a & ") mod " & K & Chr(13)
- end if
- next
- Erg = Produkt(P-1)
- Msgbox Ausg & Chr(13) & " Ergebnis = " & Erg
Wenn man in diesem Script eine einfache Zahlenkombination wie zum Beispiel 6 hoch 4 mod 150 eingibt , kann man sehr gut nachvollziehen, wie dieses Script das Ergebnis berechnet.
Was habe ich bisher selbst versucht, um das Problem zu beheben ?
Ich habe die Deklaration des Feldes :
erhöht. Ich glaube aber, dass es nur wichtig ist, dass das Feld Produkt mindestens so groß wie Pot dimensioniert wird, weil am Ende der Funktion nur zurückgegeben wird. Dann habe ich zum Beispiel versucht von der Seite : RSA-Kryptosystem– Wikipedia eine Funktion, die
das gleiche macht wie meine :
mittels des Link : Code Converter C# to VB and VB to C# – Telerik
von der Programmiersprache C in VB zu übersetzen. Leider erhalte ich beim Versuch der Übersetzung eine Fehlermeldung. Dann habe ich mir auch den Link : IndexOutOfRangeException
Klasse (System) | Microsoft Docs
angeguckt, aus den Hinweisen die dort gegeben werden, werde ich nicht schlau, in Bezug auf das, was ich bei diesem kleinen Programm verändern muss, um das Auftreten dieser Fehlermeldung zu verhindern ?
Kann mir jemand für dieses kleine Programm :
VB.NET-Quellcode
Veränderungsvorschläge machen um das Problem zu beheben ?