forked from IF-LK-2020/rechenmaschine
minus (noch fehlerhaft)
This commit is contained in:
parent
bdfd32c24a
commit
7f5f904a72
|
@ -19,7 +19,7 @@ public class Rechenmaschine {
|
|||
tokenlist = new List<>();
|
||||
|
||||
Scanner input = new Scanner(System.in);
|
||||
System.out.println("Gib einen Plusterm ein und bestätige mit ENTER: ");
|
||||
System.out.println("Gib einen Plus-/Minusterm ein und bestätige mit ENTER: ");
|
||||
String eingabe = input.nextLine();
|
||||
input.close();
|
||||
|
||||
|
@ -45,7 +45,7 @@ public class Rechenmaschine {
|
|||
int state = 0;
|
||||
String currentToken = "";
|
||||
|
||||
for( char buchstabe: eingabe ) {
|
||||
for( char buchstabe : eingabe ) {
|
||||
switch( state ) {
|
||||
case 0:
|
||||
switch( buchstabe ) {
|
||||
|
@ -68,7 +68,8 @@ public class Rechenmaschine {
|
|||
break;
|
||||
|
||||
case '+':
|
||||
fehler = "Fehler im Wort " +pEingabe+ ":\nDas Wort darf nicht mit + beginnen!";
|
||||
case '-':
|
||||
fehler = "Fehler im Wort " +pEingabe+ ":\nDas Wort darf nicht mit " + buchstabe + " beginnen!";
|
||||
return false;
|
||||
|
||||
default:
|
||||
|
@ -81,9 +82,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", "" + buchstabe));
|
||||
state = 0;
|
||||
break;
|
||||
|
||||
|
@ -111,12 +113,13 @@ public class Rechenmaschine {
|
|||
case 2:
|
||||
switch( buchstabe ) {
|
||||
case '+':
|
||||
tokenlist.append(new Token("OPERATOR"));
|
||||
case '-':
|
||||
tokenlist.append(new Token("OPERATOR", "" + 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 Operator folgen!";
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
@ -124,7 +127,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 einen Operator enden!";
|
||||
return false;
|
||||
} else {
|
||||
tokenlist.append(new Token("OPERAND", currentToken));
|
||||
|
@ -184,9 +187,18 @@ public class Rechenmaschine {
|
|||
tokenlist.toFirst();
|
||||
while( tokenlist.hasAccess() ) {
|
||||
Token currentToken = tokenlist.getContent();
|
||||
|
||||
if( currentToken.getType().equals("OPERAND") ) {
|
||||
result += Integer.parseInt(currentToken.getToken());
|
||||
|
||||
if (currentToken.getType().equals("OPERATOR")) {
|
||||
switch (currentToken.getToken()) {
|
||||
case "+":
|
||||
tokenlist.next();
|
||||
result += Integer.parseInt(currentToken.getToken());
|
||||
break;
|
||||
case "-":
|
||||
tokenlist.next();
|
||||
result -= Integer.parseInt(currentToken.getToken());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
tokenlist.next();
|
||||
|
|
48
Token.java
48
Token.java
|
@ -1,35 +1,33 @@
|
|||
|
||||
|
||||
public class Token {
|
||||
|
||||
private String type;
|
||||
|
||||
private String token;
|
||||
|
||||
public Token(String pType) {
|
||||
type = pType;
|
||||
|
||||
private String type;
|
||||
private String token;
|
||||
|
||||
public Token(String pType) {
|
||||
type = pType;
|
||||
token = null;
|
||||
}
|
||||
}
|
||||
|
||||
public Token(String pType, String pToken) {
|
||||
type = pType;
|
||||
token = pToken;
|
||||
}
|
||||
public Token(String pType, String pToken) {
|
||||
type = pType;
|
||||
token = pToken;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String pType) {
|
||||
type = pType;
|
||||
}
|
||||
public void setType(String pType) {
|
||||
type = pType;
|
||||
}
|
||||
|
||||
public String getToken() {
|
||||
return token;
|
||||
}
|
||||
public String getToken() {
|
||||
return token;
|
||||
}
|
||||
|
||||
public void setToken(String pToken) {
|
||||
token = pToken;
|
||||
}
|
||||
public void setToken(String pToken) {
|
||||
token = pToken;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,22 +5,22 @@ 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=1000
|
||||
editor.fx.0.width=1296
|
||||
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.editor.x=100
|
||||
package.editor.y=25
|
||||
package.frame.height=875
|
||||
package.divider.vertical=0.8690344062153164
|
||||
package.editor.height=776
|
||||
package.editor.width=1145
|
||||
package.editor.x=0
|
||||
package.editor.y=0
|
||||
package.frame.height=1000
|
||||
package.frame.width=1296
|
||||
package.numDependencies=2
|
||||
package.numTargets=3
|
||||
package.numTargets=4
|
||||
package.showExtends=true
|
||||
package.showUses=true
|
||||
project.charset=UTF-8
|
||||
|
@ -30,12 +30,12 @@ readme.width=47
|
|||
readme.x=10
|
||||
readme.y=10
|
||||
target1.height=50
|
||||
target1.name=List
|
||||
target1.name=List$ListNode
|
||||
target1.showInterface=false
|
||||
target1.type=ClassTarget
|
||||
target1.width=130
|
||||
target1.x=300
|
||||
target1.y=70
|
||||
target1.type=SubTargetClassRole
|
||||
target1.width=200
|
||||
target1.x=700
|
||||
target1.y=140
|
||||
target2.height=50
|
||||
target2.name=Token
|
||||
target2.showInterface=false
|
||||
|
@ -44,9 +44,16 @@ target2.width=80
|
|||
target2.x=70
|
||||
target2.y=70
|
||||
target3.height=50
|
||||
target3.name=Rechenmaschine
|
||||
target3.name=List
|
||||
target3.showInterface=false
|
||||
target3.type=ClassTarget
|
||||
target3.width=120
|
||||
target3.x=170
|
||||
target3.y=210
|
||||
target3.width=150
|
||||
target3.x=440
|
||||
target3.y=220
|
||||
target4.height=50
|
||||
target4.name=Rechenmaschine
|
||||
target4.showInterface=false
|
||||
target4.type=ClassTarget
|
||||
target4.width=130
|
||||
target4.x=210
|
||||
target4.y=350
|
||||
|
|
Loading…
Reference in New Issue