Abs: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
 
(12 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
=== Beschreibung ===
=== Beschreibung ===
Die Funktion ''abs'' berechnet den Betrag einer Zahl. Die Funktion erwartet eine Zahl als Parameter und gibt eine Zahl zurück.
Die Funktion ''abs'' berechnet den Betrag einer Zahl. Die Funktion erwartet eine Zahl als Parameter und gibt eine Zahl zurück.
Zeile 14: Zeile 17:
==== Standardfälle ====
==== Standardfälle ====
  abs(1)        --> returns 1
  abs(1)        --> returns 1
  abs(-2.5)      --> returns 2.5
  abs(-2.5)      --> returns 2.5
  abs(-abs(5))  --> returns 5
  abs(-abs(5))  --> returns 5


==== Benutzung mit Variablen ====
==== Benutzung mit Variablen ====
  abs([pos=1])
   
  abs([var=a])
  abs([var=a])
abs([var=c])


====JUnit Tests====
==== Benutzung mit studentischen Eingaben ====
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@Test
public void testAbs1() {
assertEquals(1, Evaluator.getNumberResult("abs(1)", exerciseVariableMap, fillInVariableMap), 0);
}


@Test
'''Jack2:'''
public void testAbs2() {
abs([pos=1])
assertEquals(1, Evaluator.getNumberResult("abs('-1')", exerciseVariableMap, fillInVariableMap), 0);
}
 
@Test
public void testAbs3() {
assertEquals(0.5, Evaluator.getNumberResult("abs(-0.5)", exerciseVariableMap, fillInVariableMap), 0);
}
 
@Test
public void testAbs4() {
assertEquals(0, Evaluator.getNumberResult("abs(-0)", exerciseVariableMap, fillInVariableMap), 0);
}
 
@Test
public void testAbsWithInput1() {
assertEquals(1, Evaluator.getNumberResult("abs('[pos=2]')", exerciseVariableMap, fillInVariableMap), 0);
}
 
@Test
public void testAbsWithInput2() {
assertEquals(0, Evaluator.getNumberResult("abs('[pos=1]')", exerciseVariableMap, fillInVariableMap), 0);
}
 
@Test
public void testAbsWithVariables1() {
assertEquals(1, Evaluator.getNumberResult("abs('[var=b]')", exerciseVariableMap, fillInVariableMap), 0);
}
 
@Test
public void testAbsWithVariables2() {
assertEquals(0, Evaluator.getNumberResult("abs('[var=a]')", exerciseVariableMap, fillInVariableMap), 0);
}
 
@Test
public void testAbsWithExpressions1() {
assertEquals(5, Evaluator.getNumberResult("abs(-abs(5))", exerciseVariableMap, fillInVariableMap), 0);
}
 
@Test
public void testAbsWithExpressions2() {
assertEquals(5, Evaluator.getNumberResult("abs(-abs(abs(-5)))", exerciseVariableMap, fillInVariableMap), 0);
}
 
@Test(expected = FunctionInvalidArgumentTypeException.class)
public void testAbsWithWrongInputCharacter1() {
Evaluator.getNumberResult("abs(a)", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testAbsWithTwoArguments1() {
Evaluator.getNumberResult("abs(-2.2, 3.3)", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testAbsWithThreeArguments1() {
Evaluator.getNumberResult("abs(2.123, -3.55, -1)", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected = UndefinedExerciseVariableException.class)
public void testAbsWithMissingExcerciseVariable1() {
Evaluator.getNumberResult("abs('[var=j]')", exerciseVariableMap, fillInVariableMap);
fail();
}


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


=== Hinweise ===
=== Hinweise ===
* In JACK3 können auch komplexe Zahlen eingesetzt werden. Dabei sollte beachtet werden, das [[Imaginary]] genutzt wird.
* Wenn Variablen genutzt werden muss darauf geachtet werden, dass diese die Voraussetzung erfüllen.
* Wenn die Eingabe der Studierenden genutzt wird muss auch hier darauf geachtet werden, dass die Voraussetzungen erfüllt sind und ob diese an der Stelle genutzt werden können.


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

Aktuelle Version vom 15. April 2024, 13:22 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion abs berechnet den Betrag einer Zahl. Die Funktion erwartet eine Zahl als Parameter und gibt eine Zahl zurück.

Syntax

abs(Gleitkommazahl zahl)

Parameter

  • zahl - eine rationale Zahl, deren Betrag berechnet werden soll

Return Value

  • Gibt den Betrag zurück

Beispiele

Standardfälle

abs(1)         --> returns 1

abs(-2.5)      --> returns 2.5

abs(-abs(5))   --> returns 5

Benutzung mit Variablen

abs([var=a])

abs([var=c])

Benutzung mit studentischen Eingaben

Jack2:
abs([pos=1])
Jack3:
abs([input=field1])

Hinweise

  • In JACK3 können auch komplexe Zahlen eingesetzt werden. Dabei sollte beachtet werden, das Imaginary genutzt wird.
  • Wenn Variablen genutzt werden muss darauf geachtet werden, dass diese die Voraussetzung erfüllen.
  • Wenn die Eingabe der Studierenden genutzt wird muss auch hier darauf geachtet werden, dass die Voraussetzungen erfüllt sind und ob diese an der Stelle genutzt werden können.