"X" Varaibel? Besser als Algorithmus?

  • VB6

Es gibt 37 Antworten in diesem Thema. Der letzte Beitrag () ist von Neptun.

    "X" Varaibel? Besser als Algorithmus?

    Nabend
    Problem ganz kurz, Ich möchte Polynomdivisionen rechnen lassen in der Form
    (ax³+bx²+cx+d)/(x-y)
    y vorher im loop berechner als 1. Nullstelle mit ay³+by²+cy+d=0
    a,b,c,d werden durch textfelder "ermittelt"
    die frage ist nur... wie setze ich eine Variable ohne wert fest? einfach x... alles andere würde ich bisher über loops und simple Rechnungen erledigen, bisher habe ich nichts konkretes zu gefunden.. und von algorythmen in Vb habe ich noch keine ahnung
    Willkommen im Forum. :thumbup:
    Du hast gerade eine gute Gelegenheit, auf VB.NET umzusteigen. Nutze sie.
    Zu Deinem Problem:
    Möchtest Du eine Polynomdivision implementieren?
    Weißt Du überhaupt, was das ist?
    Hast Du mal bei Wiki nachgelesen?
    Wenn man einen (funktionierenden) Algorithmus hat, kann man ihn auch implementieren.
    Wenn Du ein Schneider bist, wirst Du es nicht können.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hi,

    also X ist ja selber nichts anderes als = 1x
    Also kannst du "X" als Integer deklarieren und so damit arbeiten.
    X Muss also nicht "leer" sein o. ä.

    Visual Basic-Quellcode

    1. Dim X As Integer = 1
    2. 'X ist zur Zeit = 1, also hast du 1x
    3. 'Ausgeben kannste das z.B: so:
    4. Label.text = PrintX(X)
    5. Function PrintX(ByVal X As Integer) As String
    6. If X = 0 Then
    7. Return String.Empty
    8. ElseIf X = 1 Then
    9. Return "x"
    10. Else
    11. Return X.ToString & "x"
    12. End If
    13. End Function
    @Jopi24:
    wurde scheinbar in folgeposts verstanden aber kann ich^^
    ich habe ja die beiden "formeln" "
    (ax³+bx²+cx+d)/(x-y)" und die Grundformel ohne Linearfaktor
    ich wollte 4 textfelder(a;b;c;d) nehmen und als
    1. ay³+by²+cy+d=0 als Ziel geben (über loop erste Nullstelle probieren mit y=-10;-9....10) ganze Zahlen reichen mir vorerst weil ichs nur für die schule gerne hätte um ergebnisse zu vergleichen zb..
    wenn y (erste nullstelle= darüber ermittelt ist würde ich darüber
    2. (ax³+bx²+cx+d)/(x-y) rechnen lassen und mir den entsprechenden Term in einem 5. Textfeld ausgeben lassen
    3. über ein weiteres Textfeld den "Rechenweg" ausgeben lassen wobei ich danach hier nicht fragen brauche.. lässt sich soweit ich weiß nur per hand tippen und variablen einsetzen, wobei ich den vlt auch weg lasse für den punkt.. nur variablen schlacht..

    @RodFromGermany:
    schön das ich willkommen bin^^
    umsteigen würde ich persönlich vlt gern aber da ich durch meine Lehrerin (die mir bei meinen Projekten nie helfen kann O_o.) an VB6 gebunden bin wird das nichts...
    1. Polynomdivision kenne ich und kann ich auch per Hand, möchte ich nur jetzt in mein "Projekt" einbinden in dem ich bisher z.B. sämtliche Physikalischen Formeln eingebunden habe die ich bisher brauche (Fachabi bereich Technik)
    2.Hab ich bei Wiki drüber gesehen ja, habe auch ein Algorythmus Codefragment für Basic gefunden, habe aber selber noch nicht mit algorithmen gearbeitet und bezweifel das mir meine Lehrerin da weiter helfen kann, weswegen ich mich da erstmal mit Loop und simpler Division ranwagen wollte..
    3.aktuell ist mein Problem dabei wie ich x festlegen kann in einer Form das Basic auch damit rechnen kann.
    wie auch immer du schneider definierst... das ich mit Algorithmen noch nicht umgehen kann ist mir durchaus bewusst, deswegen wollte ich mir vorerst auch nen leichten weg suchen, werde mich aber auch da rein arbeiten... muss mir nur leider alles selber aneignen da meine Lehrerin wie oben erwähnt nicht viel Ahnung von dem hat was sie uns beibringen will (Rest hat bisher als "schwierigstes" nen Loop um alle Zahlen von x bis y zusammen zu rechnen bzw einen... nennen wirs Zinseszins rechner... wobei jeweils auch feste Zahlen/Jahre angegeben waren..)

    @Eistee:
    das ist mir schonmal eine große hilfe danke, dh. wenn ich x=1 setze kann er mit x rechnen und es auch so ausgeben?
    ich wäre von ausgegangen das er mir dann x potenziert und jeweils *a/b/c/d rechnet und eine einfache Zahl ausgibt..

    Edit by hal2000:
    - Vollzitate entfernt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()

    galelind schrieb:

    Algorythmus Codefragment
    1. Such Dir eine neue Lehrerein. :D
    2. Bevor Du einen Algorithmus implementieren kannst, musst Du ihn verstehen. Wenn das nicht der Fall ist, hast Du ganz schlechte Karten, insbesondere, wenn es nur ein Fragment ist.
    Wenn Du einen Algo-Code abschreibst (C&P) und der funktioniert zufällig in Deinen 3 oder 8 Test-Cases wirst Du Probleme bekommen, wenn er Dir in einem anderen Fall um die Ohren fliegen sollte, Du kannst ihn mit an Sicherheit grenzender Wahrscheinlichkeit nicht reparieren.
    Sorry. :S
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    1.... ich geh zum schulleiter und sag ihm "ey, ich will nen andren lehrer in info..sonst tot!" klappt bestimmt =P
    2. schon klar, deswegen wollte ich keinen einfach kopieren unds erstmal iwie umgehen.. werd mich aber von mir aus reinarbeiten ums dann nochmal besser zu machen wenn ich so weit bin^^ frage war nur eher obs vlt sogar einfacher is^^

    Visual Basic-Quellcode

    1. Dim X As Integer = 1
    "Compile Error:
    Expected: end of statement"

    Edit by hal2000:
    - Vollzitat entfernt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „hal2000“ ()

    galelind schrieb:

    ich geh zum schulleiter und sag ihm
    Es kann durchaus sinnvoll sein, dass Du dem Schulleiter dies vorträgst, blättere ihm diesen Thread hin und lass ihn sich seine Meinung selbst bilden. Er muss ja sicherstellen, dass der
    Leerplan ( :thumbsup: ) geschafft wird.

    galelind schrieb:

    "Compile Error:
    Expected: end of statement"
    Poste bitte mal 3 Zeilen vor bis 3 Zeilen nach der Codezeile (Leerzeilen natürlich nicht zählen).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wär vlt nen Versuch wert aber bringt nix..

    nja die Zeile um dies ging hab ich ja Zitiert... hab dann auch noch nicht groß weiter gemacht.. dachte wenn beim Variablen angeben schon nen Fehler kommt sollte ich umdenken, wollte mich bisi an dem Vorschlag von Eistee orientieren (und bei zeilen mit funktionen die ich noch nicht im gebrauch hatte informieren wofür/was genau die festlegen)
    hatte quasi nur

    Visual Basic-Quellcode

    1. Option Explicit
    2. Dim a as Single
    3. Dim b as Single
    4. Dim c as Single
    5. Dim d as Single
    6. Dim x as Integer = 1
    7. Private Sub Command1_Click()
    8. 'noch nichts weiter eingefügt wegen dem genannten Error
    9. End Sub


    Edit by hal2000:
    - Vollzitat entfernt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()

    Steht da irgendwo noch

    Visual Basic-Quellcode

    1. Public Class ClassXXX
    :?: :?: :?:
    Mei mir ist alles i.O.:
    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Public Class Class1
    2. Dim a As Single
    3. Dim b As Single
    4. Dim c As Single
    5. Dim d As Single
    6. Dim x As Integer = 1
    7. Private Sub Command1_Click()
    8. 'noch nichts weiter eingefügt wegen dem genannten Error
    9. End Sub
    10. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    petaod schrieb:

    Dürfte an [VB6.0 und älter] liegen.
    OK.
    Dann dürfte ihm die Vorgabe des Wertes (= 1) nicht gefallen, bei a, b, c, d geht es ja auch.
    Also weg damit.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Steht bisher nirgends... "Public Class" war mir unbekannt und
    sobald ich noch etwas hinter schreiben möchte und aus der zeile springe (z.B. Class1) heißt es wieder
    "Compile
    error
    Expected: end of statement"...
    warscheinlich kennt er alles womit ihr mir helfen wollt in VB6 noch nicht -.-

    Visual Basic-Quellcode

    1. Public
    2. Class
    wird angenommen, ändert aber an dem problem bei

    Visual Basic-Quellcode

    1. Dim
    2. X As Integer = 1

    nichts.. wenn ich aus der Zeile springen will heißt es wieder
    "Compile error
    Expected: end of statement"...
    mit Markierung auf "=" bzw auf allem was dahinter stehen würde... will er
    bei der Variablen Deklarierung nicht... ich könntes evtl nochmal mit unten "x=1" versuchen was gehen müsste...
    is die frage ob der effekt der gleiche ist... versuches gleich mal mit ner abgewandelten version vom code von Eistee

    edit:und oh wunder oh wunder... er markiert mir sofort die "Return" zeilen mit oft genug genanntem error -.-

    Steht da irgendwo noch

    Visual Basic-Quellcode

    1. Public Class ClassXXX
    :?: :?: :?:
    Mei mir ist alles i.O.:
    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Public Class Class1
    2. Dim a As Single
    3. Dim b As Single
    4. Dim c As Single
    5. Dim d As Single
    6. Dim x As Integer = 1

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „galelind“ ()

    galelind schrieb:

    "Public Class"
    ist .NET.

    RodFromGermany schrieb:

    Dann dürfte ihm die Vorgabe des Wertes (= 1) nicht gefallen, bei a, b, c, d geht es ja auch.
    Also weg damit.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    x=1 kann ich nur innerhalb der Prozedur mit rein hauen, sonst sagt er was gegen wenn ich testlauf machen will...

    nullstellen hab ich schonmal (auf schulaufgaben basis.. -.-)

    jetz häng ich nur an dem rechnen mit x und der ausgabe... komme mir langsam bisi noobi vor -.-

    bisher...

    Visual Basic-Quellcode

    1. Option Explicit
    2. Dim a As Single
    3. Dim b As Single
    4. Dim c As Single
    5. Dim d As Single
    6. Dim e As Single
    7. Dim x As Long
    8. Dim y As Single
    9. Dim term2 As Long
    10. Private Sub Command1_Click()
    11. x = 1
    12. 'loop um nullstelle zu "raten"
    13. y = -200
    14. Do
    15. y = y + 1
    16. a = Val(txt_a)
    17. b = Val(txt_b)
    18. c = Val(txt_c)
    19. d = Val(txt_d)
    20. e = Val(txt_0)
    21. term2 = Val(txt_term)
    22. e = a * y ^ 3 + b * y ^ 2 + c * y + d
    23. If e = 0 Then Exit Do
    24. txt_0 = Str(y)
    25. Loop
    26. txt_0 = Str(y) 'Ausgabe der erratenen Nullstelle
    27. 'anfang zur division...
    28. term2 = (a * x ^ 3 + b * x ^ 2 + c * x + d) / (x - y)
    29. term2 = Str(txt_term)
    30. End Sub

    wobei ich mir noch die frage stelle warum vb abstürzt wenn ich

    Visual Basic-Quellcode

    1. y = y + 0.1
    draus mache.. aber brauch ich au nich umbedingt..

    hänge jetz auf jeden fall bei die x als x zu rechnen..kommt immer inen fehler wenn ich sage das er rechnen soll, des öfteren overflow... war mir aber relativ klar das noch was fehlt^^

    Edit by hal2000:
    - Vollzitat entfernt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()

    galelind schrieb:

    wobei ich mir noch die frage stelle warum vb abstürzt wenn ich
    Setz da mal einen Haltepunkt drauf und sieh Dir den Wert von x an.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    die stelle die du grad zitiert hast ging einzig und allein eig um y?^^

    hab x=1 drin stehen, weiß ich, kann ich auch so allein nich stehen lassen, sollte ja eig 1*x sein... aber das will er ja nich.. und hab noch keinen wirklichen weg gefunden das in vb6 zu realisieren..
    habs mir grad mal versucht leicht zu machen, womit ich aber auch mein problem eher umgehe statt es zu lösen...

    Visual Basic-Quellcode

    1. f=b-a*-y
    2. g=c-f*-y
    3. txt_term.text= a & "x²+" & f & "x+" & g

    funktionier zumindest bei x³+x²+x+1 =P an sich könnte die lösung funktionieren... is nur stark vereinfacht...

    Edit by hal2000:
    - Vollzitat entfernt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()

    galelind schrieb:

    die stelle die du grad zitiert hast ging einzig und allein eig um y?^^
    Und wie ist der y-Wert?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!