Pow: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
=== Beschreibung ===
=== Beschreibung ===
Die Funktion ''pow'' repräsentiert eine Exponentialfunktion und errechnet die Potens der Basis mit dem Exponenten (<math>Basis^{Exponent}</math>). Die Funktion erwartet zwei Zahlen, einmal die Basis und einmal den Exponenten, und gibt die entsprechende Potens zurück.
Die Funktion ''pow'' repräsentiert eine Exponentialfunktion und errechnet die Potens der Basis mit dem Exponenten (\(Basis^{Exponent}\)). Die Funktion erwartet zwei Zahlen, einmal die Basis und einmal den Exponenten, und gibt die entsprechende Potens zurück.


=== Syntax ===
=== Syntax ===
basis ^ exponent
  pow([[Gleitkommazahl]] basis, [[Gleitkommazahl]] exponent)
  pow([[Gleitkommazahl]] basis, [[Gleitkommazahl]] exponent)


Zeile 10: Zeile 14:


=== Return Value ===
=== Return Value ===
*Gibt das Ergebnis von <math>Basis^{Exponent}</math> zurück
*Gibt das Ergebnis von \(Basis^{Exponent}\) zurück


=== Beispiele ===
=== Beispiele ===
==== Standardfälle ====
==== Standardfälle ====
  pow(2,2)  --> returns 4
  pow(2,2)  --> returns 4
  pow(10,3)  --> returns 1000
  pow(10,3)  --> returns 1000


Zeile 21: Zeile 26:


==== Benutzung mit Variablen ====
==== Benutzung mit Variablen ====
pow([pos=1],[pos=3])
  pow([var=a],[var=b])
  pow([var=a],[var=b])


====JUnit Tests====
==== Benutzung mit studentischen Eingaben ====
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
'''JACK2:'''
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
pow([pos=1],[pos=3])
@BeforeClass
public static void beforeTest() {
fillInVariableMap.put(1, OMConverter.toObject("<OMOBJ><OMI>2</OMI></OMOBJ>"));
fillInVariableMap.put(2, OMConverter.toObject("<OMOBJ><OMI>10</OMI></OMOBJ>"));
 
exerciseVariableMap.put("a", OMConverter.toObject("<OMOBJ><OMI>2</OMI></OMOBJ>"));
exerciseVariableMap.put("b", OMConverter.toObject("<OMOBJ><OMI>10</OMI></OMOBJ>"));
}
 
@Test
public void testPow1() {
assertEquals(4, Evaluator.getNumberResult("pow(2,2)", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testPow2() {
assertEquals(1000, Evaluator.getNumberResult("pow(10,3)", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testPow3() {
assertEquals(-8, Evaluator.getNumberResult("pow(-2,3)", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testPow4() {
assertEquals(1, Evaluator.getNumberResult("pow(10,0)", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testPow5() {
assertEquals(.1, Evaluator.getNumberResult("pow(10,-1)", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testPow6() {
assertEquals(1, Evaluator.getNumberResult("pow(1,-55)", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testPow7() {
assertEquals(0, Evaluator.getNumberResult("pow(0, 44)", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testPowWithInput1() {
assertEquals(1024, Evaluator.getNumberResult("pow(2,[pos=2])", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testPowWithInput2() {
assertEquals(8, Evaluator.getNumberResult("pow([pos=1],3)", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testPowWithVariables1() {
assertEquals(4, Evaluator.getNumberResult("pow(2,[var=a])", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testPowWithVariables2() {
assertEquals(1000, Evaluator.getNumberResult("pow([var=b],3)", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testPowWithExpressions1() {
assertEquals(16, Evaluator.getNumberResult("pow(pow(-2,2), 2)", exerciseVariableMap, fillInVariableMap),
0.0);
}
 
@Test
public void testPowWithExpressions2() {
assertEquals(4096,
Evaluator.getNumberResult("pow(pow(-2,3), pow(2, 2))", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testPowWithExpressions3() {
assertEquals(16,
Evaluator.getNumberResult("pow(pow(-2,pow(2,1)), pow(2, 1))", exerciseVariableMap, fillInVariableMap),
0.0);
}
 
@Test
public void testPowWithPointNumbers() {
assertEquals(1, Evaluator.getNumberResult("pow(1.0, 1.3)", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
 
@Test
public void testPowWithInputCharacters() {
OMA oma = Evaluator.evaluate("pow(a, a)", exerciseVariableMap, fillInVariableMap).getOMA();
assertEquals("<OMA><OMS name=\"power\" cd=\"arith1\"/><OMV name=\"a\"/><OMV name=\"a\"/></OMA>", oma.toString());
}
 
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testPowWithOneArgument() {
Evaluator.getNumberResult("pow(4)", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testPowWithThreeArguments() {
Evaluator.getNumberResult("pow(2, 2, 2)", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected = UndefinedExerciseVariableException.class)
public void testPowWithMissingExerciseVariable() {
Evaluator.getNumberResult("pow('[var=j]', '[var=j]')", exerciseVariableMap, fillInVariableMap);
fail();
}


@Test(expected = UndefinedFillInVariableException.class)
'''JACK3:'''
public void testPowWithMissingInput() {
pow([input=field1],[input=field3])
Evaluator.getNumberResult("pow('[pos=42]', '[pos=42]')", exerciseVariableMap, fillInVariableMap);
fail();
}
</syntaxhighlight>


=== Hinweise ===
=== Hinweise ===
* Wichtig: Dezimalzahlen müssen mit Punkt angegeben werden (z.B 3.4)
* Wichtig: Dezimalzahlen müssen mit Punkt angegeben werden (z.B 3.4)
* 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:00 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion pow repräsentiert eine Exponentialfunktion und errechnet die Potens der Basis mit dem Exponenten (\(Basis^{Exponent}\)). Die Funktion erwartet zwei Zahlen, einmal die Basis und einmal den Exponenten, und gibt die entsprechende Potens zurück.

Syntax

basis ^ exponent
pow(Gleitkommazahl basis, Gleitkommazahl exponent)

Parameter

  • basis - die Basis
  • exponent - der Exponent

Return Value

  • Gibt das Ergebnis von \(Basis^{Exponent}\) zurück

Beispiele

Standardfälle

pow(2,2)   --> returns 4

pow(10,3)   --> returns 1000

n-te Wurzel ziehen

pow(16,0.25)   --> returns 2

Benutzung mit Variablen

pow([var=a],[var=b])

Benutzung mit studentischen Eingaben

JACK2:
pow([pos=1],[pos=3])
JACK3:
pow([input=field1],[input=field3])

Hinweise

  • Wichtig: Dezimalzahlen müssen mit Punkt angegeben werden (z.B 3.4)
  • Diese Funktion ist ein binärer Operator.