kostenloser Webspace werbefrei: lima-city


Funktion eingeben

lima-cityForumProgrammiersprachenBasic

  1. hm du willst das f?r x ne zahl reinkommt die der user eingibt
    m?sste dan irgenwie so:
    x= txtvariable.text
    ergebnis = 3*x
    txtergebnis.text=ergebnis

    so zumindest in visual basic weis nicht obs in q basic auch geht variablen deklarieren net vergessen
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. f?r was wilslt du das denn ahben nen programm?`?? wensn nicht also viel arbeit ist prog ich dir das schnell in vb
  4. d*f

    Das, was Du Dir vorgenommen hast w?rde ich schon zu den anspruchsvolleren Programmierprojekten z?hlen!

    Ich hab ein Programm zur Therm- (bzw. Funktions)auswertung vor l?ngerer Zeit geschrieben und bestimmt 10 Stunden gebraucht (allerdings ohne jegliche Hilfe).
    Das Programm und ein Teil des Quelltextes (, der Dir weiter helfen sollte,) kannst Du unter http://home.arcor.de/drfiasko/Programmierprojekte.html downloaden!

    Grunds?tzlich: Du solltest das Problem auf JEDEN FALL rekursiv angehen. Alles andere wird nie etwas.
  5. 0******a

    Man, man... ich weiss, warum es keine guten Nachwuchsprogrammier mehr gibt... ihr seid einfach zu phantasielos geworden... ;-)
    Ich h?tte da noch eine andere Idee, wie das Problem zu l?sen ist:
    Mit OPEN eine Datei ?ffnen, den zu berechnenden String in ein kurzes Programm schreiben und danach die Datei (nach Abspeichern) mit SHELL per Aufruf mit "qbasic /run calc.bas > ergebnis.dat" ausf?hren. Das kurze Programm, das man in calc.bas geschrieben hat, sollte einfach nur das Endergebnis ausgeben. Danach ergebnis.dat auslesen und man hat das Ergebnis der Berechnung. Sollte nicht l?nger als eine Stunde dauern, das zu programmieren.

    Viel Spass dabei.
  6. d*f

    Origineller Vorschlag, aber wie verhinderst du mathematische Inkorrektheiten wie Division durch 0, sorgst daf?r das zu gro?e Zahlen keinen ?berlauf verursachen und das der Benutzer keinen Bl?dsinn (Buchstaben) eingibt und damit Syntaxfehler erzeugt.
    Au?erdem ist es schade um die viele Rechenzeit, die mit sinnlosen Abspeichern und Auslesen vertan wird, wenn eine Variable wie von ttobsen gewollt verschiedene Werte annimmt (f?r einen Funktionsgraphen braucht man mindestens 1000 berechnete Stellen).
    Also keine ernsthafte elegante L?sung, sondern wirklich nur ein Scherzprogramm.
  7. 0******a


    drf schrieb:
    Origineller Vorschlag, aber wie verhinderst du mathematische Inkorrektheiten wie Division durch 0, sorgst daf?r das zu gro?e Zahlen keinen ?berlauf verursachen und das der Benutzer keinen Bl?dsinn (Buchstaben) eingibt und damit Syntaxfehler erzeugt.

    Wenn es um eine Programmiersprache gehen w?rde, die mit einem Compiler arbeitet, w?ren deine Einw?nde berechtigt. Aber da es sich um QBASIC, also eine Interpretersprache handelt, macht das nichts aus. Der Interpreter amcht n?mlich genau das Gleiche, was man bei eigenen Fehlermeldungen auch machen w?rde, n?mlich auf den Fehler hinweisen.




    drf schrieb:
    Au?erdem ist es schade um die viele Rechenzeit, die mit sinnlosen Abspeichern und Auslesen vertan wird, wenn eine Variable wie von ttobsen gewollt verschiedene Werte annimmt

    Ich denke nicht, das das einen grossen zeitlichen Unterschied macht, bei der heutigen Festplattenzugriffsgeschwindigkeit. Und wenn die Zeit so ein wichtiger Faktor sein sollte, dann w?rde ich das eh nicht in einer Interpretersprache machen. Da ich weiss, das ttobsen auch mit Pascal und Delphi arbeitet, gehe ich mal davon aus, das absolute Geschwindigkeitsoptimierung f?r ihn nicht das Wichtigste in diesem Fall sein kann. Sonst h?tte er es halt nicht in QBASIC gemacht.




    drf schrieb:
    Also keine ernsthafte elegante L?sung, sondern wirklich nur ein Scherzprogramm.

    Na ja... elegant bestimmt nicht, ernsthaft ja, weil es ja hier nur um das Ergebnis geht. Verkaufen w?rde ich das aber so auch nicht ;-)
  8. d*f

    Ist schon okay, 0-checka, Du hast ja recht: Wenn es wirklich nur um das Ergebnis geht, ist deine Variante wahrscheinlich die beste.
  9. mistermonopoly

    mistermonopoly hat kostenlosen Webspace.

    F?r sowas kann man sich eigentlich recht schnell einen Parser programmieren, so unglaublich schwer ist das nicht wenn man mal weis wie das geht. Dank Rekursion (*anhimmel*) ist auch Punkt-Vor-Strich Rechnung rein gar kein Problem... Gehen wir mal davon aus:
    Der Term ist als String vorhanden, mit Zahlen, der Variable x, Operatoren und Funktionen. Als allererstes w?rde ich den String nach 'x' untersuchen und diese Stelle dementsprechend durch die gew?nschte Zahl ersetzen. Jetzt geht das eigentliche Funktionsparsing los. Mein Parser funktioniert nach dem Prinzip, das die Funktion immer zuerst nach Strichrechnungsoperatoren sucht, und zwar den ersten vorkommenden. Ob zuerst + oder - ist egal. Nehmen wir mal an es wurde + gefunden. Dann ruft sich die Funktion 2 mal nacheinander selbst auf - Als erstes mit dem ersten Teil des Strings vor dem + , als zweites mit dem Teil des Strings nach dem +. Der R?ckgabewert ist meinetwegen eine reele Zahl. Beide Ergebnisse werden addiert. Du musst in der Funktion immer nur die einzelnen Operatoren oder math. Funktionen nacheinander ?ber pos (f?r Delphi, ein VB ?quivalent kenne ich nicht) suchen. Wenn am Ende nur noch die Zahl im String vorhanden ist wird diese zur?ckgegeben. Durch die Reihenfolge, in der du die Operatoren abfragst, wird auch gleich Punkt vor Strich ber?cksichtigt - Ein genial einfaches Prinzip. Verdammt, ich hab total wirr geschrieben ^^ Ich geb' mir sp?ter nochmal was mehr M?he und formulier das ordentlich, denn das lohnt sich echt, der Parser braucht kaum Code und ist extrem einfach zu erweitern...
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!