Plus: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
 
(18 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
===Beschreibung===
===Beschreibung===
Bei der ''Addition'' werden zwei Zahlen miteinander addiert.
Bei der ''Addition'' werden zwei [[Objekt]]e addiert.


===Syntax===
===Syntax===
a + b
  a + b
  plus(a,b)


===Parameter===
===Parameter===
* '''a''' - double
* '''a''' - [[Objekt]]
* '''b''' - double
* '''b''' - [[Objekt]]


===Return Value===
===Return Value===
* Gibt eine expression zurück.
* Gibt ein [[Objekt]] zurück.
Die Rückgabe ist abhängig von der Eingabe. Dabei wird soweit wie möglich die Eingabe ausgerechnet.


===Beispiele===
===Beispiele===
  <math>3+5</math>   --> returns 8
  3 + 5    --> returns 8
 
  <math>\frac{1}{2} + \frac{3}{2}</math>    --> returns 2
  1/2 + 3/2   --> returns 2  
 
====JUnit Tests====
2 + a    --> returns 2 + a
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
@Before
b + c   --> returns b + c
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("3"));
sin(x) + z    --> returns sin(x) + z
  placeFillInVariable(2, OMParser.parse("10"));
  placeFillInVariable(3, OMParser.parse("3.5"));
cos(0) + a    --> returns 1 + a
  placeExerciseVariable("a", OMParser.parse("3"));
'1' + 'Hallo'   --> returns 1Hallo
  placeExerciseVariable("b", OMParser.parse("10"));
  placeExerciseVariable("c", OMParser.parse("3.5"));
'Hallo' + 'World'   --> returns HalloWorld
}
 
vector(1,2) + vector(2,3--> returns vector(3,5)
@Test
public void testAddition(){
  assertTrue(10 == getEvaluator().getNumberResult("6+4"));
  assertTrue(10.2 == getEvaluator().getNumberResult("7.3+2.9"));
  assertTrue(1 == getEvaluator().getNumberResult("0.5 + 0.5"));
  assertTrue(11 == getEvaluator().getNumberResult("0.5 + 0.5 + 10"));
}
@Test
public void testAdditionWithNegativeNumber(){
  assertTrue(4.4 == getEvaluator().getNumberResult("7.3+(-2.9)"));
  assertTrue(-5.3 == getEvaluator().getNumberResult("-7.3+2"));
  assertTrue(-8 == getEvaluator().getNumberResult("-2+(-6)"));
}
@Test
public void testAdditionWithVariables(){
  assertTrue(9 == getEvaluator().getNumberResult("6+[var=a]"));
  assertTrue(12.9 == getEvaluator().getNumberResult("[var=b]+2.9"));
  assertTrue(10.5 == getEvaluator().getNumberResult("[var=c]+7"));
}
@Test
public void testAdditionWithInput(){
  assertTrue(9 == getEvaluator().getNumberResult("6+[pos=1]"));
  assertTrue(12.9 == getEvaluator().getNumberResult("[pos=2]+2.9"));
  assertTrue(10.5 == getEvaluator().getNumberResult("[pos=3]+7"));
}
@Test
public void testAdditionWithEncapsulation(){
  assertTrue(3 == getEvaluator().getNumberResult("1 + (1 + 1)"));
  assertTrue(4 == getEvaluator().getNumberResult("1 + (1 + (1 + 1))"));
  assertTrue(6 == getEvaluator().getNumberResult("1 + (1 + (1 + (1 + (1 + 1))))"));
   assertTrue(6 == getEvaluator().getNumberResult("((((1 + 1) + 1) + 1) + 1) + 1"));
}
 
@Test(expected=ParserMismatchException.class)
public void testAdditionWithWrongInputCharacter() {
  getEvaluator().getNumberResult("6 + a");
}
@Test(expected=UnsupportedBinaryOperatorException.class)//es fliegt eine EvaluatorException
public void testAdditionWithWrongInputString() {
  getEvaluator().getNumberResult("6 + 'a'");
}
@Test (expected=UndefinedExerciseVariableException.class)
public void testAdditionWithMissingExcerciseVariable() {
  getEvaluator().getNumberResult("[var=j] + 1");
}
@Test (expected=UndefinedFillInVariableException.class)
public void testAdditionWithMissingInput() {
   getEvaluator().getNumberResult("[pos=42] + 1");
}
</syntaxhighlight>


===Hinweise===
===Hinweise===
* Mit [[equal]] ("==") lässt sich das Ergebnis anschließend vergleichen.
* Mit [[equal]] ("==") lässt sich das Ergebnis anschließend ebenfalls mit einem anderem [[Objekt]] vergleichen.
* Diese Funktion ist ein binärer Operator.


[[Kategorie:Evaluatorfunktion]]
[[Kategorie:Math-Evaluatorfunktion]][[Category:Operator]][[Kategorie:JACK2]][[Kategorie:JACK3]]

Aktuelle Version vom 17. April 2024, 09:59 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Bei der Addition werden zwei Objekte addiert.

Syntax

 a + b
 plus(a,b)

Parameter

Return Value

Die Rückgabe ist abhängig von der Eingabe. Dabei wird soweit wie möglich die Eingabe ausgerechnet.

Beispiele

3 + 5    --> returns 8

1/2 + 3/2   --> returns 2 

2 + a    --> returns 2 + a

b + c    --> returns b + c

sin(x) + z    --> returns sin(x) + z

cos(0) + a    --> returns 1 + a

'1' + 'Hallo'   --> returns 1Hallo

'Hallo' + 'World'   --> returns HalloWorld

vector(1,2) + vector(2,3)   --> returns vector(3,5)

Hinweise

  • Mit equal ("==") lässt sich das Ergebnis anschließend ebenfalls mit einem anderem Objekt vergleichen.
  • Diese Funktion ist ein binärer Operator.