Aufgabe 2 Minus Terme

This commit is contained in:
Artem Didytschuk 2021-04-13 19:03:42 +02:00
parent bdfd32c24a
commit 6a7344379a
2 changed files with 33 additions and 22 deletions

View File

@ -70,6 +70,9 @@ public class Rechenmaschine {
case '+':
fehler = "Fehler im Wort " +pEingabe+ ":\nDas Wort darf nicht mit + beginnen!";
return false;
case '-':
fehler = "Fehler im Wort " +pEingabe+ ":\nDas Wort darf nicht mit - beginnen!";
return false;
default:
fehler = "Fehler im Wort " +pEingabe+ ":\nDer Buchstabe " + buchstabe + " gehört nicht zur Sprache!";
@ -81,9 +84,10 @@ public class Rechenmaschine {
case 1:
switch( buchstabe ) {
case '+':
case '-':
tokenlist.append(new Token("OPERAND", currentToken));
currentToken = "";
tokenlist.append(new Token("OPERATOR"));
tokenlist.append(new Token("OPERATOR",Character.toString(buchstabe)));
state = 0;
break;
@ -111,12 +115,13 @@ public class Rechenmaschine {
case 2:
switch( buchstabe ) {
case '+':
tokenlist.append(new Token("OPERATOR"));
case '-':
tokenlist.append(new Token("OPERATOR",Character.toString(buchstabe)));
state = 0;
break;
default:
fehler = "Fehler im Wort " +pEingabe+ ":\nNach 0 am Anfang muss ein + folgen!";
fehler = "Fehler im Wort " +pEingabe+ ":\nNach 0 am Anfang muss ein + oder - folgen!";
return false;
}
break;
@ -124,7 +129,7 @@ public class Rechenmaschine {
}
if( state == 0 ) {
fehler = "Fehler im Wort " +pEingabe+ ":\nDas Wort darf nicht auf + enden!";
fehler = "Fehler im Wort " +pEingabe+ ":\nDas Wort darf nicht auf + oder - enden!";
return false;
} else {
tokenlist.append(new Token("OPERAND", currentToken));
@ -182,13 +187,19 @@ public class Rechenmaschine {
result = 0;
tokenlist.toFirst();
String previous="";
while( tokenlist.hasAccess() ) {
Token currentToken = tokenlist.getContent();
if( currentToken.getType().equals("OPERAND") ) {
result += Integer.parseInt(currentToken.getToken());
if(currentToken.getType().equals("OPERATOR")){
previous=currentToken.getToken();
}
if( currentToken.getType().equals("OPERAND") ) {
if(previous.equals("+")||previous.equals("")){
result += Integer.parseInt(currentToken.getToken());
} else {
result -= Integer.parseInt(currentToken.getToken());
}
}
tokenlist.next();
}
}

View File

@ -5,16 +5,16 @@ dependency1.type=UsesDependency
dependency2.from=Rechenmaschine
dependency2.to=Token
dependency2.type=UsesDependency
editor.fx.0.height=738
editor.fx.0.width=816
editor.fx.0.x=466
editor.fx.0.y=146
objectbench.height=66
editor.fx.0.height=1056
editor.fx.0.width=1936
editor.fx.0.x=-8
editor.fx.0.y=-8
objectbench.height=111
objectbench.width=1256
package.divider.horizontal=0.6
package.divider.vertical=0.9099876695437731
package.editor.height=731
package.editor.width=1157
package.divider.vertical=0.847741935483871
package.editor.height=650
package.editor.width=1145
package.editor.x=100
package.editor.y=25
package.frame.height=875
@ -24,18 +24,18 @@ package.numTargets=3
package.showExtends=true
package.showUses=true
project.charset=UTF-8
readme.height=58
readme.height=60
readme.name=@README
readme.width=47
readme.width=49
readme.x=10
readme.y=10
target1.height=50
target1.name=List
target1.showInterface=false
target1.type=ClassTarget
target1.width=130
target1.x=300
target1.y=70
target1.width=150
target1.x=430
target1.y=160
target2.height=50
target2.name=Token
target2.showInterface=false
@ -47,6 +47,6 @@ target3.height=50
target3.name=Rechenmaschine
target3.showInterface=false
target3.type=ClassTarget
target3.width=120
target3.width=130
target3.x=170
target3.y=210