Wie schwer ist es ein Applet für Matheaufgaben zu erstellen?

Status
Nicht offen für weitere Antworten.

starfox

Mitglied
Hey ihr!

Ich möchte ein Java-Applet für leichte Matheaufgaben erstellen.
Nur habe ich ehrlich gesagt keinen Plan von Java... Schafft man das, wenn man sich ein wenig
einliest oder ist dafür monatelanges Pauken nötig?

Danke schonmal
starfox
 

starfox

Mitglied
Andrey hat gesagt.:
Und was soll man sich denn bitte unter einem "applet für leichte Matheaufgaben" vorstellen?

Ich meinte Aufgaben mit den Grundrechenarten und vll noch Gleichungen lösen.

@Ariol
Oh je, das sieht ja doch recht kompliziert aus. Ich dachte das lässt sich einfach nach dem Prinzip "Antwort richtig/falsch" machen..
 

Der Müde Joe

Top Contributor
wenn du das ganze auf einer Grammatik aufbaust ist es einfacher.
Nimm zB Antlr und erstell dir die Grammatik und lass dir parser und lexer etc erstellen. Grammatiken für antlr Rechner hats zur genüge im Netz der Rest ist noch GUI geplänkel.
 

0x7F800000

Top Contributor
Naja, solche Sachen scheitern weder an java, noch an mathe. Die übersetzung der Formeln in Baumartige Java-Strukturen ist schon problematisch genug, aber eigentlich müsste das "vereinfachen" der Ausdrücke noch problematischer sein... Ich weiß ehrlichgesagt nicht, wie die CAS programme das eigentlich anstellen. ???:L
 

Der Müde Joe

Top Contributor
Baumartige Java-Strukturen ist schon problematisch genug,

naja..eben antlr

Code:
class PParser extends Parser;
options { buildAST=true; }

imaginaryTokenDefinitions : SIGN_MINUS SIGN_PLUS ;

expr    : LPAREN^ sumExpr RPAREN!;
sumExpr : prodExpr ((PLUS^|MINUS^) prodExpr)*;
prodExpr: powExpr  ((MUL^|DIV^|MOD^) powExpr)*;
powExpr	: signExpr (POW^ signExpr)?;
signExpr:  ( m:MINUS^ {#m.setType(SIGN_MINUS); }
            |p:PLUS^  {#p.setType(SIGN_PLUS);  }
           )? atom | SIN^ atom| COS^ atom | TAN^ atom | LOG^ atom | LN^ atom | LD^ atom | EUL^ atom |SQRT^ atom;
atom    :  INT | expr | CHAR;


class LLexer extends Lexer;
options {k=3;}

LPAREN: '(' ;
RPAREN: ')' ;
PLUS  : '+' ;
MINUS : '-' ;
MUL   : '*' ;
DIV   : '/' ;
MOD   : '%' ;
POW   : '^' ;
SQRT  : "sqrt"|"SQRT";
EUL   : 'e'|'E';
SIN   : "sin"|"SIN";
COS   : "cos"|"COS";
TAN   : "tan"|"TAN";
LN    : "ln"|"LN";
LOG   : "log"|"LOG";
LD    : "ld"|"LD";

protected CHARACTER:  (('_')* ('0'..'9')* ('a'..'z'|'A'..'Z')+ ('_')* ('0'..'9')*)+;
protected DOUBLE: ( '0'..'9' )+ ( '.' ( '0'..'9' )* )?;

INT : DOUBLE;
CHAR: CHARACTER;



class TreeWalker extends TreeParser;

expr returns [String r]
 {String a,b; r=null;}

  : #(PLUS a=expr b=expr)  	{ r=Calculator.getInstance().addition(a,b); } 
  | #(MINUS a=expr b=expr) 	{ r=Calculator.getInstance().sub(a,b); } 
  | #(MUL a=expr b=expr)   	{ r=Calculator.getInstance().multip(a,b); }
  | #(DIV a=expr b=expr)   	{ r=Calculator.getInstance().division(a,b); }
  | #(MOD a=expr b=expr)   	{ r=Calculator.getInstance().modulo(a,b); }
  | #(POW a=expr b=expr)   	{ r=Calculator.getInstance().power(a,b); }
  | #(SIN a=expr)	   	{ r=Calculator.getInstance().sin(a); }
  | #(COS a=expr)	   	{ r=Calculator.getInstance().cos(a); }
  | #(TAN a=expr)	   	{ r=Calculator.getInstance().tan(a); }
  | #(SQRT a=expr)         	{ r=Calculator.getInstance().sqrt(a);}
  | #(EUL a=expr)	   	{ r=Calculator.getInstance().euler(a); }
  | #(LOG a=expr)	   	{ r=Calculator.getInstance().logar(a); }
  | #(LN a=expr)           	{ r=Calculator.getInstance().ln(a);}
  | #(LD a=expr)           	{ r=Calculator.getInstance().ld(a);}
  | #(LPAREN a=expr)	   	{ r=Calculator.getInstance().addition(a,"0");}
  | #(SIGN_MINUS a=expr)   	{ r=Calculator.getInstance().multip("-1",a);}
  | #(SIGN_PLUS a=expr) 	{ r=Calculator.getInstance().addition(a,"0");}
  | i:INT { r=i.getText();}
  | q:CHAR {r=Calculator.getInstance().recognizer(q.getText());}
;

Grammatik schafft rechnen sogar mit variablen..wenn ich mich noch recht erinnere (ist schon so 4-5 Jahre her)

ANTLR hat noch irgend so ne Klasse ASTBuilder (lang ists her) oder so und schon ists getan
 

Marco13

Top Contributor
Man braucht keinen Parser, wenn man nur die Grundrechenarten machen will. Aber schon beim "Gleichungen lösen" wird's interessant.

Die Frage "Wie schwer ist es ein Applet für Matheaufgaben zu erstellen?" kann man ganz einfach beantworten: Das nicht unbedingt "schwer", aber du kannst es dir so schwer machen, wie du willst.
 

starfox

Mitglied
Wow, ich hab gerade versucht mich mit diesem Antlr vertraut zu machen bzw. mich einzulesen aber das scheint ja irre kompliziert zu sein :cool: . Kann man sowas überhaupt in ein Java-applet einbinden?

Wo finde ich denn, für mich geeignete, Grammatiken?
Die Namen unter http://www.antlr.org/grammar/list sagen mir leider zu 95% nichts. :roll:
 

starfox

Mitglied
Dank dir!

Werd mich da mal durchbeißen =)

Finde es aber schon ein bisschen verwunderlich dass es nicht wirklich viele tutorials zu Antlr gibt, wobei man bei Java oder anderen Sprachen von Tutorials erschlagen wird.
 

cui23

Mitglied
Für Grundrechenarten brauchste doch zumindest ma keinen Parser und nix..

Zwei Eingabefelder, eine Auswahlliste oder sowas für den Operator, nen Lösen Knopf und ne Ausgabefläche.
Dann nen par If's in den Source-Code für die vier Fälle (vier Operatoren), das wars.
Das Gui-gepfrimel kann man sich anlesen, zumindest wenn man schonma iwas mit Programmierung am Hut hatte sollte das recht einfach sein..
Wenn nicht würde ICH ja nicht gleich mit Gui und Applet und allem anfangen aber jedem das seine^^

lg,
cui.
 

starfox

Mitglied
Hm ich glaube ihr habt mich mißverstanden.. bzw. ich hab mich nicht richtig ausgedrückt.

Ich will ein Applet kreieren, das quasi eine Lernhilfe ist. Man muss vorgegebene Aufgaben rechnen und dann die Lösung in so ein Applet eintippen. Dieses zeigt dann an ob die Lösung richtig oder falsch ist. Es muss aber auch in der Lage sein verschiedene Lösungen zu akzeptieren. (Die Lösung von Matheaufgaben kann oft verschieden ausgedrückt oder geschrieben sein)
 

0x7F800000

Top Contributor
Du willst also in der Lage sein festzustellen, ob zB. sowas wie
Code:
ln(sqrt((a+b)/a))-ln(sqrt(1-b/a))
dasselbe ist wie
Code:
artanh(b/a)
?
Naja, wie gesagt, dazu muss man in der Lage sein, bestimmte Muster in den Formeln zu erkennen, auf diese irgendwelche Regeln anwenden, um zu irgendeiner "normalform" zu kommen, und die ausdrücke anschließend vergleichen. Dabei rettet dich kein Parser-generator mehr, weil es da eben nicht mehr ums parsen geht.

Ein ziemlich dreckiger Trick wäre natürlich, die beiden formeln zu parsen (also eingabe sowie das erwartete ergebnis) und die an paar hundert stellen auszuwerten. Wenn man dann keinen großen numerischen Unterschied feststellt, kann man mit einer gewissen Wahrscheinlichkeit annehmen, dass derjenige, der das eingetippt hat, in etwa wusste was er da tut, und ein richtiges ergebnis geliefert hat. Das kann allerdings auch ziemlich schief gehen, etwa wenn sich jemand den scherz erlaubt, statt zB "e^pi*x" sowas wie "e^pi*x+0.0000000001" einzutippen, und dann trotzdem gesagt bekommt "ihre lösung ist richtig"
 

Wildcard

Top Contributor
starfox hat gesagt.:
Finde es aber schon ein bisschen verwunderlich dass es nicht wirklich viele tutorials zu Antlr gibt, wobei man bei Java oder anderen Sprachen von Tutorials erschlagen wird.
Zu Zustandsautomaten, Lexern, Parsern, Compilern, Grammatiken gibt es tonnenweise Literatur. Ist sozusagen die Königsdisziplin der Informatik. Lediglich für die einzelnen Tools gibt es weniger Literatur, was einfach nur daran liegt, dass sie sich alle ähnlich sind. Das Konzept ist immer das gleiche und warum sollte man das gleiche 1000 mal wiederkäuen?
Oder was denkst du wie man auf das Akronym ANother Tool for Language Recognition kam?
 

starfox

Mitglied
Andrey hat gesagt.:
Ein ziemlich dreckiger Trick wäre natürlich, die beiden formeln zu parsen (also eingabe sowie das erwartete ergebnis) und die an paar hundert stellen auszuwerten. Wenn man dann keinen großen numerischen Unterschied feststellt, kann man mit einer gewissen Wahrscheinlichkeit annehmen, dass derjenige, der das eingetippt hat, in etwa wusste was er da tut, und ein richtiges ergebnis geliefert hat. Das kann allerdings auch ziemlich schief gehen, etwa wenn sich jemand den scherz erlaubt, statt zB "e^pi*x" sowas wie "e^pi*x+0.0000000001" einzutippen, und dann trotzdem gesagt bekommt "ihre lösung ist richtig"

Jep, auf so eine Idee bin ich auch schon gekommen, find ich eigentlich ganz i.O.!

Aber wie gestalte ich ein Applet für Aufgaben à la Terme vereinfachen/? Beispiel : Vereinfache den Term "(a^2)^0,5". (lsg. wäre "a"). Das geht dann aber einfach nach dem Prinzip Passwortabfrage oder?
 

0x7F800000

Top Contributor
naja, wenn all deine ergebnisse aussehen werden wie "a" "b²" oder "-c³" dann brauchst du dafür echt keine Parser oder ähnliches... Allerdings weiß ich dann nicht, was denn bitte so ein Applet überhaupt bringen soll. Mach dann stattdessen einen multiple-choise test (aber dann bitte ohne applets, shockwave-player oder irgendwelchen sonstigen abgefahrenen plugins) Wesentlich einfacher zu "implementieren" und wesentlich stressfreier für den benutzer.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Musikplayer zu schwer für Anfänger? Java Basics - Anfänger-Themen 3
V Buch:Programmieren lernen mit Java-Aufgaben zu schwer ? Java Basics - Anfänger-Themen 2
O Erste Schritte Aller Anfang ist schwer ! Bitte um Unterstützung Java Basics - Anfänger-Themen 6
M Aller anfang ist schwer :D Hilfe! Java Basics - Anfänger-Themen 18
C was mach ich erst wenn die programme richtig schwer werden? Java Basics - Anfänger-Themen 2
S Thread.interrupt() schwer von begriff Java Basics - Anfänger-Themen 3
G Aller anfang is schwer. Java Basics - Anfänger-Themen 4
P schwer zu beschreiben.... Java Basics - Anfänger-Themen 6
M Java-Applet zur Mittelwertberechnung Java Basics - Anfänger-Themen 3
D Java Applet wird nicht im Browser angezeigt Java Basics - Anfänger-Themen 6
M bestehendes Projekt als Applet speichern Java Basics - Anfänger-Themen 2
S Erste Schritte Java - Applet - Rechteck ständig versetzen Java Basics - Anfänger-Themen 14
A Applet Plot für atan erstellen Java Basics - Anfänger-Themen 1
S Erste Schritte Java Applet lässt sich im Browser nicht öffnen Java Basics - Anfänger-Themen 9
K JDK installieren displays java applet für MAC Java Basics - Anfänger-Themen 10
S Zeichen von abgerundeten Rechtecken auf einem Applet Java Basics - Anfänger-Themen 5
J Einfache einbindung eines Bildes in ein Applet Java Basics - Anfänger-Themen 4
S Klassen Applet extern aufrufen Java Basics - Anfänger-Themen 1
J Erstes Applet läßt sich nicht anzeigen Java Basics - Anfänger-Themen 2
C Applet Probleme Java Basics - Anfänger-Themen 1
A Compiler-Fehler Problem beim einbinden der applet Klasse Java Basics - Anfänger-Themen 2
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
G Applet in ein JSP einbinden Java Basics - Anfänger-Themen 1
C Java-Applet Fehler "NoClassDefFoundError"? Java Basics - Anfänger-Themen 1
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
C Kalender in Applet einfügen Java Basics - Anfänger-Themen 0
J JavaScript findet Applet Methode nicht Java Basics - Anfänger-Themen 2
J Punkte im Java-Applet verbinden Java Basics - Anfänger-Themen 4
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
V Text aus einer .txt dynamisch ins applet einpassen Java Basics - Anfänger-Themen 0
K Applet funz. im Browser nicht Java Basics - Anfänger-Themen 11
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
thet1983 Erste Schritte <param> Tag in Applet Java Basics - Anfänger-Themen 4
F Swing Applet: mehrere Komponenten hinzufügen Java Basics - Anfänger-Themen 1
F Platzieren von Komponenten in Swing Applet funktioniert nicht Java Basics - Anfänger-Themen 3
G Signiertes Applet wird nicht ausgeführt Java Basics - Anfänger-Themen 1
Y Applet: Verschlüsselung Java Basics - Anfänger-Themen 3
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
F signiertes Applet fkt. nicht bei lokalem Aufruf Java Basics - Anfänger-Themen 2
K Frage zu Applet Java Basics - Anfänger-Themen 3
V While Schleife für ganzes Applet Java Basics - Anfänger-Themen 6
P Applet Histogramm Java Basics - Anfänger-Themen 6
H 27 Kreise Zeichnen Java Applet Java Basics - Anfänger-Themen 2
G Java Applet aus Eclipse heraus testen? Java Basics - Anfänger-Themen 6
S Applet findet Klasse nicht Java Basics - Anfänger-Themen 7
R Java Applet mit Mausklick ansprechen Java Basics - Anfänger-Themen 3
C Java Applet in html. Pong - old school Spiel Java Basics - Anfänger-Themen 10
S Applet-Objekt ist vor dem Hintergrund Java Basics - Anfänger-Themen 11
F Problem mit Applet Java Basics - Anfänger-Themen 5
A Applet mit Object-Tags einbinden. Java Basics - Anfänger-Themen 3
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
S Applet Deployment Java Basics - Anfänger-Themen 2
X Applet Fehler: java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 45
H Applet - main()-Methode Java Basics - Anfänger-Themen 4
K Applet wird nicht im Browser und Appletviewer angezeigt Java Basics - Anfänger-Themen 5
L Applet : keine Recht für Zugriff auf Clipboard (trotz Zertifikat) Java Basics - Anfänger-Themen 4
N Erste Schritte Applet zeichnet Bild nicht Java Basics - Anfänger-Themen 10
H Klassen in Eclipse stellt es im Ausgabe-Applet nicht dar Java Basics - Anfänger-Themen 5
L Applet soll Html-File öffnen Java Basics - Anfänger-Themen 2
L NetBeans Applet in html Java Basics - Anfänger-Themen 4
Dogge Start:Applet nicht Initialisiert Java Basics - Anfänger-Themen 11
D Applet beenden Java Basics - Anfänger-Themen 7
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
M RSA Applet ohne Cipher Java Basics - Anfänger-Themen 15
B String verschlüsseln - Applet - ohne BASE64 Java Basics - Anfänger-Themen 7
S Methode in Applet starten Java Basics - Anfänger-Themen 2
M AWT Applet - Button aus anderer Klasse abfragen Java Basics - Anfänger-Themen 4
W Probleme mit Java Applet Java Basics - Anfänger-Themen 5
M Applet kann in Browser nicht ausgeführt werden Java Basics - Anfänger-Themen 4
L Applet: Laden unterbricht den Browserfokus (scrollen) Java Basics - Anfänger-Themen 2
Z Applet startet nicht bei Domain mit Umlaut Java Basics - Anfänger-Themen 2
B Externe Libraries fuer Applet ... Pfad eingeben? Java Basics - Anfänger-Themen 23
Helgon ClassNotFound Applet Java Basics - Anfänger-Themen 6
U Applet Signiert und trotzdem Fehlermeldung Java Basics - Anfänger-Themen 18
E Schach in Java-Applet <No main classes found> Java Basics - Anfänger-Themen 5
S Applet Java Basics - Anfänger-Themen 2
S [Applet] Objekte von init bei paint benutzen Java Basics - Anfänger-Themen 9
E Applet wird nicht angezeigt Java Basics - Anfänger-Themen 11
P Problem- Java Applet wird nicht ausgeführt Java Basics - Anfänger-Themen 9
B Applet - Laden eines Java-Fensters bricht ab Java Basics - Anfänger-Themen 6
N Import Problem, Applet will nicht Java Basics - Anfänger-Themen 6
M Applet Eclipse Vollbild Java Basics - Anfänger-Themen 3
K Befehl per Shell an Java-Applet JAR übergeben Java Basics - Anfänger-Themen 16
I Java Applet Java Basics - Anfänger-Themen 8
D Java Applet Dateien auf Server auslesen? Java Basics - Anfänger-Themen 8
L Referenced Libraries korrekt in Java Applet einbinden.. Java Basics - Anfänger-Themen 2
KBJ Java Applet Gästebuch Java Basics - Anfänger-Themen 12
T Java Applet braucht mehrere Minuten zu Start Java Basics - Anfänger-Themen 5
U Applet wird nicht angezeigt Java Basics - Anfänger-Themen 2
J J-Applet, Frage Java Basics - Anfänger-Themen 19
J Applet farblich gestalten Java Basics - Anfänger-Themen 5
M Applet lokaler Festplattenzugriff Java Basics - Anfänger-Themen 25
X Applet - Client/Server Java Basics - Anfänger-Themen 2
M Applet ist nur graues Feld Java Basics - Anfänger-Themen 12
O webserver für Applet und php Java Basics - Anfänger-Themen 7
J Fehlermeldung: Applet nicht initialisiert Java Basics - Anfänger-Themen 24
C Java Applet Probleme Java Basics - Anfänger-Themen 4
S Probleme mit Java 3D Tutorial (Applet) Java Basics - Anfänger-Themen 7
S Input/Output Problem mit dateizugriff innerhalb der .jar (Applet) Java Basics - Anfänger-Themen 2
M Applet + BilderDownload Java Basics - Anfänger-Themen 36

Ähnliche Java Themen

Neue Themen


Oben