Times: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(15 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
*'''ChemEvaluator'''
===Beschreibung===
===Beschreibung===
Bei der ''Multiplikation'' werden zwei Zahlen miteinander multipliziert.  
Bei der ''Multiplikation'' werden zwei Zahlen miteinander multipliziert.  


===Syntax===
===Syntax===
a * b
  a * b
  times(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. Das zurückgegebene Element wird soweit wie möglich ausgerechnet zurückgegeben.


===Beispiele===
===Beispiele===
  <math>3*5</math>   --> returns 15
  3 * 5    --> returns 15
 
  <math>1.4*2.3</math>   --> returns 3.22
  1.4 * 2.3    --> returns 3.22
 
====JUnit Tests====
3 * a    --> returns 3 * a
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
@Before
c * 7   --> returns 7 * c
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("3"));
a * b   --> returns a * b
  placeFillInVariable(2, OMParser.parse("10"));
  placeFillInVariable(3, OMParser.parse("2.5"));
sin(y) * sin(x)   --> returns sin(y) * sin(x)
  placeFillInVariable(4, OMParser.parse("4.3"));
a * cos(0)   --> returns a
  placeExerciseVariable("a", OMParser.parse("3"));
  placeExerciseVariable("b", OMParser.parse("10"));
  placeExerciseVariable("c", OMParser.parse("2.5"));
  placeExerciseVariable("d", OMParser.parse("4.3"));
}
@Test
public void testMultiplication(){
  assertTrue(24== getEvaluator().getNumberResult("6*4"));
  assertTrue(1 != getEvaluator().getNumberResult("7.3*2"));
  assertTrue(21.17 == getEvaluator().getNumberResult("7.3*2.9"));
  assertTrue(0 == getEvaluator().getNumberResult("7.3*0"));
  assertTrue(0 == getEvaluator().getNumberResult("0*0"));
}
 
@Test
public void testMultiplicationWithNegativeNumber(){
  assertTrue(-29 == getEvaluator().getNumberResult("10*(-2.9)"));
  assertTrue(1 != getEvaluator().getNumberResult("-7.3*2"));
}
 
@Test
public void testMultiplicationWithVariables(){
  assertTrue(18 == getEvaluator().getNumberResult("6*[var=a]"));
  assertTrue(29 == getEvaluator().getNumberResult("[var=b]*2.9"));
  assertTrue(1 != getEvaluator().getNumberResult("7.3*[var=a]"));
  assertTrue(10.75 == getEvaluator().getNumberResult("[var=c]*[var=d]"));
}
 
@Test
public void testMultiplicationWithInput(){
  assertTrue(18 == getEvaluator().getNumberResult("6*[pos=1]"));
  assertTrue(29 == getEvaluator().getNumberResult("[pos=2]*2.9"));
  assertTrue(1 != getEvaluator().getNumberResult("7.3*[pos=1]"));
  assertTrue(10.75 == getEvaluator().getNumberResult("[pos=3]*[pos=4]"));
}
@Test
public void testMultiplicationWithEncapsulation(){
  assertTrue(8 == getEvaluator().getNumberResult("2 * (2 * 2)"));
  assertTrue(16 == getEvaluator().getNumberResult("2 * (2 * (2 * 2))"));
  assertTrue(64 == getEvaluator().getNumberResult("2 * (2 * (2 * (2 * (2 * 2))))"));
  assertTrue(64 == getEvaluator().getNumberResult("((((2 * 2) * 2) * 2) * 2) * 2"));
}


@Test(expected=ParserMismatchException.class)
public void testMultiplicationWithWrongInputCharacter() {
  getEvaluator().getNumberResult("6 * a");
}
@Test(expected=UnsupportedBinaryOperatorException.class)
public void testMultiplicationWithWrongInputString() {
  getEvaluator().getNumberResult("6 * 'a'");
}
@Test (expected=UndefinedExerciseVariableException.class)
public void testMultiplicationWithMissingExcerciseVariable() {
  getEvaluator().getNumberResult("[var=j] * 1");
}
@Test (expected=UndefinedFillInVariableException.class)
public void testMultiplicationWithMissingInput() {
  getEvaluator().getNumberResult("[pos=42] * 1");
}
</syntaxhighlight>
===Hinweise===
===Hinweise===
* Auch hier lässt sich das Ergebnis mit [[equal]] ("==") vergleichen.
* Mit equal (\(==\)) lässt sich das Ergebnis anschließend ebenfalls mit einem anderem Objekt vergleichen
* ACHTUNG: Besonders bei der Multiplikation von Dezimal-Zahlen tritt der folgende Rechner-Fehler auf: <math>7.3*2.9 = 21.16999999999998</math> anstatt <math>21.17</math>. Dies lässt sich auch hier verhindern wenn das Ergebnis auf zwei Nachkommastellen gerundet wird.


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

Aktuelle Version vom 22. Mai 2024, 09:54 Uhr

Zugehörige Evaluatoren

  • MathEvaluator
  • ChemEvaluator

Beschreibung

Bei der Multiplikation werden zwei Zahlen miteinander multipliziert.

Syntax

 a * b
 times(a,b)

Parameter

Return Value

  • Gibt ein Objekt zurück. Das zurückgegebene Element wird soweit wie möglich ausgerechnet zurückgegeben.

Beispiele

3 * 5    --> returns 15

1.4 * 2.3    --> returns 3.22

3 * a    --> returns 3 * a

c * 7    --> returns 7 * c

a * b    --> returns a * b

sin(y) * sin(x)    --> returns sin(y) * sin(x)

a * cos(0)    --> returns a

Hinweise

  • Mit equal (\(==\)) lässt sich das Ergebnis anschließend ebenfalls mit einem anderem Objekt vergleichen