Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash CS4 Professional

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-01-2011, 17:01   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2011
Beiträge: 4
Question Anspruchsvoller Taschenrechner für Anspruchsvolle :)

Guten Abend,

ich bin dabei einen Taschenrechner zu programmieren und bin auf ein Problem gestossen, bei dem mir leider keiner Helfen konnte, deswegen will ichs mal hier versuchen.

Das Problem ist, dass der Taschenrechner zwei Anzeigen haben soll. In der oberen wird die Gleichung stehen (z.B.: 2+3+5-6) und in der unteren Anzeige das Ergebnis. Das Problem ist, wie programmiere ich mit AS so, dass er den übernommenen Array nach mehreren Determinanten splitet, dass ich erstmal die einzelnen Werte irgendwelchen Variablen zuordne und das zweite Problem ist, wie finde ich dann herraus, ob die zwei Werte + oder - genommen wurden. Und damit das ganze noch lustiger wird, möchte ich auch eine Klammer einbauen.

In dem Anhang findet man die .fla-Datei bis zu dem Punkt, zu dem ich gekommen bin. Vielleicht könnte mir jemand mit paar Tips oder Ideen weiterhelfen.

Vielen Dank
Angehängte Dateien
Dateityp: fla taschenrechner.fla (160,0 KB, 3x aufgerufen)
mximy ist offline   Mit Zitat antworten
Alt 10-01-2011, 17:30   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.325
H.G.Seib -> String_calculator function fCalc("2+3*4^5");

so z.b.
das teil ist uralt, deshalb darfst du das als (schlechte) vorlage verwenden um es besser neu zu programmieren ;-)

auch ganz interessant, suche: symbolisch rechnen
http://www.informatik.uni-leipzig.de...ipte/esr06.pdf
und suche: flash formel parsen
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (10-01-2011 um 17:36 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 10-01-2011, 17:35   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2011
Beiträge: 4
Hallo HGSeib,

danke für die schnelle Antwort. Ich kann leider die Datei calculator.fla mit CS4 nicht öffnen. Könntest du vielleicht einfach den Code hier anhängen?

Dankeschön!
mximy ist offline   Mit Zitat antworten
Alt 10-01-2011, 17:43   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.325
das ist flash5 und geht wohl nicht mehr mit neueren flash-versionen.
naja, vielleicht den script ansehen geht noch.
aber öffentlich zeigen will ich den script nicht (jugendsünde) ;-)))
Angehängte Dateien
Dateityp: fla calculator.fla (46,0 KB, 4x aufgerufen)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 10-01-2011, 17:46   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2011
Beiträge: 4
Supi, jetzt kann ichs aufmachen. Dankeschön.
mximy ist offline   Mit Zitat antworten
Alt 10-01-2011, 18:17   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2011
Beiträge: 4
Jetzt treten bei mir die ersten Fragen auf zu der Funktion.

function fCalc(vForm) {
gCalcN = 0;
gCalc = vForm+((vForm.charAt(vForm.length-1) != "=") ? "=" : "");
return fCalcIt();
}

Damit fängt ja das ganze an. Ich habe das jetzt so verstanden, dass man ein Array in die Variable vForm einfügt.

(z.b.: "2+3")

Dann wird eine neue Variable erstellt => die Gleichung wird 0 gesetzt (was da in Klammern passiert keine Ahnung, aber tut nichts zur Sache)

Die Funktion startet eine andere Funktion fCalcIt();

Und die ganze fCalcIt()-Funktion ist mir bisschen zu komplex bzw. zu groß, dass ich da alleine durchblicke.

Am Ende wird aber vLZ zurückgegeben und so wie ich das jetzt verstanden habe, müsste drinnen dann das endgülte Ergebnis vorliegen, was aber nicht der Fall ist.

Wenn ich am Ende des Programm trace(vLZ) schreibe, kommt undefined raus. Was habe ich jetzt falsch verstanden?

Geändert von mximy (10-01-2011 um 18:24 Uhr)
mximy ist offline   Mit Zitat antworten
Alt 11-01-2011, 09:21   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.325
soso ;-) soviel also zum thema: "Anspruchsvoller Taschenrechner für Anspruchsvolle "

grundsätzlich ist das so:
du zerlegst das ganze in terme und baust einen strukturbaum auf nach den rechenregeln: punkt geht vor strich
Code:
4*7+5*8
also ganz einfach gehalten:
         +
      /     \
    *        *
   / \       / \
  4  7      5  8
zuerst bei plus bzw. minus trennen
die reste bei mal bzw. geteilt trennen
bis nur noch zahlen übrig bleiben
dann den baum zusammenrechnen
         +
      /    \
    28     40
und
       68
habs nicht nachgerechnet ;-)
wenn später noch klammer dazukommen, dann gibts mehr verschachtelungen.
wobei ein klammerinhalt wie eine eigenständige formel zu berechnen ist. stichwort: rekursiv
mach das erstmal nur mit ziffern.

dann
um aus der formel zahlen zu extrahieren kannst du den string zeichen für zeichen abarbeiten.
kommt ein rechenzeichen, dann ist eine zahl fertig und eine neue beginnt
kommt eine ziffer, dann gehört die zu der zahl dazu
123+456
aktuelle zahl ist 0
jetzt kommt eine 1, also die aktuelle zahl *10 plus diese ziffer macht 0*10+1 = 1
jetzt kommt eine 2, also die aktuelle zahl *10 plus diese ziffer macht 1*10+2 = 12
jetzt kommt eine 3, also die aktuelle zahl *10 plus diese ziffer macht 12*10+3 = 123
jetzt kommt ein rechenzeichen, somit ist die erste zahl komplett
...

wenn's dir immer noch zu schwer ist, dann programmiere vielleicht einen UPN-rechner
suche mal im internet nach: umgekehrte polnische notation
http://de.wikipedia.org/wiki/Umgekeh...ische_Notation
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (11-01-2011 um 09:55 Uhr)
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash 5] anspruchsvolle Raumplanung mit Flash realisierbar? julia29 Flash Einsteiger 6 20-04-2010 11:57
taschenrechner beetlejuice® ActionScript 1 2 18-08-2005 14:49
Taschenrechner Tutorial Prose ActionScript 1 4 31-03-2005 16:54
Taschenrechner Morpheus00 ActionScript 1 2 29-11-2004 18:06
Taschenrechner indy2 Flash 4 und Flash 5 5 11-11-2001 09:52


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele