NumberOfVariables: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(12 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
===Beschreibung===
===Beschreibung===
Die Funktion ''numberOfVariables'' zählt die Variablen in einem Ausdruck. Sie erwartet einen String und gibt einen numerischen Ausdruck zurück.
Die Funktion ''numberOfVariables'' zählt die Variablen in einem Ausdruck. Sie erwartet einen mathematischen Term und gibt einen numerischen Ausdruck zurück.


===Syntax===
===Syntax===
  numberOfVariables(Expression term)
  numberOfVariables([[Ausdruck]] term)


===Parameter===
===Parameter===
* '''term''' - der Ausdruck dessen Variablen gezählt werden sollen
* '''term''' - der [[Ausdruck]] dessen Variablen gezählt werden sollen


===Return Value===
===Return Value===
* Gibt einen numerischen Ausdruck zurück.
* Gibt einen numerischen [[Ausdruck]] zurück.


===Beispiele===
===Beispiele===
  numberOfVariables('2x+3a-2b')    --> returns 3
'''Jack2:'''
  numberOfVariables('2*x+3*a-2*b')    --> returns 3
 
'''Jack3:'''
numberOfVariables(2*x+3*a-2*b)    --> returns 3


====JUnit Tests====
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
@Before
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("0"));
  placeFillInVariable(2, OMParser.parse("3"));
  placeFillInVariable(5, OMParser.parse("x"));
  placeExerciseVariable("a", OMParser.parse("x"));
  placeExerciseVariable("b", OMParser.parse("3"));
}
@Test
public void testNumberOfVariables() {
  assertTrue(3 == getEvaluator().getNumberResult("numberOfVariables('2x+3a-x+2b')"));
  assertTrue(1 == getEvaluator().getNumberResult("numberOfVariables('2x+3x-x+2x')"));
  assertTrue(4 == getEvaluator().getNumberResult("numberOfVariables('sin(i)*E^(e)+ q/sqrt(s)')"));
  assertTrue(0 == getEvaluator().getNumberResult("numberOfVariables('5')"));
}
@Test
public void testNumberOfVariablesWithInput() {
  assertTrue(3 == getEvaluator().getNumberResult("numberOfVariables('2x+3a-x+2b')"));
  assertTrue(3 == getEvaluator().getNumberResult("numberOfVariables('2[pos=5]+3a-[pos=5]+2b')"));
  assertTrue(3 == getEvaluator().getNumberResult("numberOfVariables('2[pos=5]+3a-[pos=5]+2b')"));
  assertTrue(2 == getEvaluator().getNumberResult("numberOfVariables('2[pos=5]+3[pos=5]-[pos=5]+2b')"));
}
@Test
public void testNumberOfVariablesWithVariables() {
  assertTrue(3 == getEvaluator().getNumberResult("numberOfVariables('2x+3a-x+2b')"));
  assertTrue(3 == getEvaluator().getNumberResult("numberOfVariables('2[var=a]+3a-[var=a]+2b')"));
  assertTrue(3 == getEvaluator().getNumberResult("numberOfVariables('2[var=a]+3a-[var=a]+2b')"));
  assertTrue(2 == getEvaluator().getNumberResult("numberOfVariables('2[var=a]+3[var=a]-[var=a]+2b')"));
}
@Test
public void testNumberOfVariablesWithONECharacter(){
  assertTrue(1 == getEvaluator().getNumberResult("numberOfVariables(a)"));
}
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testNumberOfVariablesWithEmptyStringArguments(){
  getEvaluator().getNumberResult("numberOfVariables('')");
}
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testNumberOfVariablesWithEmptyArgument(){
  getEvaluator().getNumberResult("numberOfVariables()");
}
@Test(expected=UndefinedExerciseVariableException.class)
public void testNumberOfVariablesWithMissingExerciseVariable(){
  getEvaluator().getNumberResult("numberOfVariables('[var=j]')");
}
@Test(expected=UndefinedFillInVariableException.class)
public void testNumberOfVariablesWithMissingInput(){
  getEvaluator().getNumberResult("numberOfVariables('[pos=42]')");
}
</syntaxhighlight>
===Hinweise===
===Hinweise===
* In Jack3 werden mathematische Terme '''nicht''' in Hochkommata angegeben.
* Zwischen den Koeffizienten und der Variable wird ein \(*\)-Zeichen benötigt.


[[Kategorie:Evaluatorfunktion]]
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Ausdruckfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]

Aktuelle Version vom 18. April 2024, 09:26 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion numberOfVariables zählt die Variablen in einem Ausdruck. Sie erwartet einen mathematischen Term und gibt einen numerischen Ausdruck zurück.

Syntax

numberOfVariables(Ausdruck term)

Parameter

  • term - der Ausdruck dessen Variablen gezählt werden sollen

Return Value

  • Gibt einen numerischen Ausdruck zurück.

Beispiele

Jack2:
numberOfVariables('2*x+3*a-2*b')    --> returns 3
Jack3:
numberOfVariables(2*x+3*a-2*b)    --> returns 3

Hinweise

  • In Jack3 werden mathematische Terme nicht in Hochkommata angegeben.
  • Zwischen den Koeffizienten und der Variable wird ein \(*\)-Zeichen benötigt.