[Excel] Zahlen aus String auslesen und in ein array einfügen

strumpf

Grünschnabel
Hallo,
ich habe folgendes Problem ich muss ein Polynom bis zum Grad 10 aus eine Excel-Zelle auslesen und alle Teile eineln zur analytischen berechnung in ein array einfügen. Wenn immer nur einstellige Zahlen vor dem X stehen wäre das ja kein Problem aber bei zwei oder dreistelligen Zahlen weiß ich nicht weiter wie ich das machen soll.....kann mir jemand helfen?
 
Um dich zu zitieren: Ich habe folgendes Problem ich ... weiß nicht was ein Polynom ist und wie ein Polynom aussieht!

Kannst du mal ein Beispiel zeigen wie der "String" aufgebaut ist.
 
"Beliebeige Zahl"*x^10+"Beliebige Zahl"*x^9+"Beliebige Zahl"*x^8+"Beliebige Zahl"*x^7....."Beliebige Zahl"*x^0
 
Und was willst du jetzt da auslesen? Also mit der 10 hast du irgend ein Problem weil es 2-Stellig ist?
 
Schön ist anders, aber es geht:

Visual Basic:
Sub polynom()
inhalt = Tabelle1.Range("$A$1")
zeile = 1
a = 1

Do While a < Len(inhalt)
    If a = 1 Then
        von = 1
    Else
        von = InStr(a, inhalt, "+") + 1
    End If
    
    If a < Len(inhalt) Then
        bis = InStr(a + 1, inhalt, "*x^")
    Else
        bis = Len(inhalt)
    End If
    If von = 0 Or bis = 0 Then Exit Sub
    Tabelle1.Cells(zeile, 3) = Mid(inhalt, von, bis - von)
    a = bis + 1
    zeile = zeile + 1
Loop
End Sub

Im Beispiel steht der Wert in Zelle "A1" und die einzelnen Zahlen werden in Spalte "C" eingetragen
 
1. Schritt: Split auf den String mit Trennzeichen "+"
2. Schritt: Per Schleife durch das aus Schritt 1 resultierende Array, erneut mit Split auf das Array-Element mit Trennzeichen "*" --> In Element 0 des hieraus resultierenden Arrays hast du die Zahl links vom Malzeichen
 
Danke, aber es muss auch möglich sein, das ganze mit einem negativen Vorzeichen zu machen.

Ich habs mit dem Befehl split versucht, aber bin noch nicht darauf gekommen, wie ich zwei verschiedene Trennzeichen nutzen kann ohne die Reihenfolge durcheinanderzubringen....

Wenn ich nur positive vorzeichen nehm gehts aber sobald ein minus kommt nicht...

Allerdings stoß ich mit dem Befehl split sowieso an eine gewisse grenze, da mein Programm zum integrieren und Ableiten genutzt wird...da brauch ich wahrscheinlich eh ein zweidimensionales array bei dem jede Zahl und der jeweils dazugehörige x-wert in einer spalte sind.... Ich hab echt nur gröbste grundlagenkenntnisse in VBA und komm hier nicht weiter
 
Zuletzt bearbeitet:
Code:
10*x^10+9*x^9+-8*x^8+-7*x^7+6*x^6+-5*x^5+4*x^4+3*x^3+2*x^2+-1*x^1+0*x^0

122*x^10+9*x^9+-678*x^8+-67*x^7+336*x^6+-256*x^5+64*x^4+3*x^3+21*x^2+-31*x^1+270*x^0

Immer unter der Voraussetzung das das was ich oben stehen habe ein (korrektes) Polynom ist, erhalte ich hierfür mit meinem obigen Beispiel die Zahlen

Code:
10 / 9 / -8 / -7 / 6 / -5 / 4 / 3 / 2 / -1 / 0

122 / 9 / -678 / -67 / 336 / -256 / 64 / 3 / 21 / -31 / 270

und das sollte doch stimmen!?
 
Zuletzt bearbeitet:
es geht aber nur unter der voraussetzung, dass ich immer ein polynom vom grad 10 habe, welches auch bei jeder potenz einen wert hat, wenn ich jetzt z.B. 5x^4-2x^3+5 habe, kann ich die nachfolgenden berechnungen nicht durchführen, da ich ja nicht weiß, bei welchem x ich gerade bin. Das muss ich aber wissen, da ich sonst nicht integrieren oder differenzieren kann....
 
Zuletzt bearbeitet:
Meinst du sowas?

dein Ziel-Array ist arrZiel

in arrZiel(0, x) steht der Exponent
in arrZiel(1, x) steht der Koeffizient
 

Anhänge

  • polynom.zip
    16,4 KB · Aufrufe: 13
Zuletzt bearbeitet:
Zurück