Cos: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
 
(11 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
===Beschreibung===
===Beschreibung===
Der ''Kosinus'' wird durch die ''cos''-Funktion beschrieben. Sie erwartet eine Eingabe und gibt eine Zahl zurück.
Der ''Kosinus'' wird durch die ''cos''-Funktion beschrieben. Sie erwartet eine Eingabe und gibt eine Zahl zurück.
Zeile 12: Zeile 15:


===Beispiele===
===Beispiele===
cos('0')    --> returns 1
==== Standardfälle ====
 
cos(0)   --> returns 1
cos('Pi')    --> returns -1
 
====JUnit Tests====
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@BeforeClass
public static void beforeTest() {
fillInVariableMap.put(3, OMCreator.createOMOBJ(OMSymbol.NUMS1_PI));
 
exerciseVariableMap.put("c", OMCreator.createOMOBJ(OMSymbol.NUMS1_PI));
}
 
@Test
public void testCos1() {
assertEquals(1, Evaluator.getNumberResult("cos('0')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testCos2() {
assertEquals(0, Evaluator.getNumberResult("cos('[var=PI]/2')", exerciseVariableMap, fillInVariableMap), 0.0001);
}
 
@Test
public void testCos3() {
assertEquals(-1, Evaluator.getNumberResult("cos('[var=PI]')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testCos4() {
assertEquals(1, Evaluator.getNumberResult("cos(0)", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testCos5() {
assertEquals(0, Evaluator.getNumberResult("cos([var=PI]/2)", exerciseVariableMap, fillInVariableMap), 0.0001);
}
 
@Test
public void testCos6() {
assertEquals(-1, Evaluator.getNumberResult("cos([var=PI])", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testCosWithInput1() {
assertEquals(1, Evaluator.getNumberResult("cos('[pos=1]')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testCosWithInput2() {
assertEquals(0.5403023058681398,
Evaluator.getNumberResult("cos('[pos=2]')", exerciseVariableMap, fillInVariableMap), 0.0001);
}
 
@Test
public void testCosWithInput3() {
assertEquals(-1, Evaluator.getNumberResult("cos('[pos=3]')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testCosWithVariables1() {
assertEquals(1, Evaluator.getNumberResult("cos('[var=a]')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testCosWithVariables2() {
assertEquals(0.5403023058681398,
Evaluator.getNumberResult("cos('[var=b]')", exerciseVariableMap, fillInVariableMap), 0.0001);
}
 
@Test
public void testCosWithVariables3() {
assertEquals(-1, Evaluator.getNumberResult("cos('[var=c]')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testCosWithVariables4() {
assertEquals(-1, Evaluator.getNumberResult("cos('[var=PI]')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testCosWithExpression1() {
assertEquals(0.5403023058681398,
Evaluator.getNumberResult("cos(cos(0))", exerciseVariableMap, fillInVariableMap), 0.0001);
}
 
@Test
public void testCosWithExpression2() {
assertEquals(0.8575532158463934,
Evaluator.getNumberResult("cos(cos(cos(0)))", exerciseVariableMap, fillInVariableMap), 0.0001);
}


@Test(expected = FunctionInvalidArgumentTypeException.class)
'''Jack2:'''
public void testCosWithONECharacter() {
cos([var=PI])   --> returns -1
Evaluator.getNumberResult("cos(a)", exerciseVariableMap, fillInVariableMap);
}


@Test(expected = FunctionInvalidArgumentTypeException.class)
'''Jack3:'''
public void testCosWithEmptyStringArgument() {
cos(constPi())   --> returns -1
Evaluator.getNumberResult("cos('')", exerciseVariableMap, fillInVariableMap);
}


@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
==== Benutzung mit Variablen ====
public void testCosWithEmptyArgument() {
cos([var=a])
Evaluator.getNumberResult("cos()", exerciseVariableMap, fillInVariableMap);
}


@Test(expected = UndefinedExerciseVariableException.class)
==== Benutzung mit studentischen Eingaben ====
public void testCosWithoutExerciseVariable() {
'''Jack2:'''
Evaluator.getNumberResult("cos([var=j])", exerciseVariableMap, fillInVariableMap);
cos([pos=1])
}


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


===Hinweise===
===Hinweise===
* Der Eingabewert muss im Bogenmaß sein. Wenn man einen Gradmaß hat muss dieser zunächst umgerechnet werden.
* Der Eingabewert muss im Bogenmaß sein. Wenn man einen Gradmaß hat muss dieser zunächst umgerechnet werden.
* Diese Funktion wird nicht ausgerechnet, außer es gibt eine genaue Repräsentation (z.B. Pi oder eine Ganzzahl). Soll das Ergebnis gerundet ausgegeben werden, muss eine Rundungsfunktion oder die [[Approx|Approx-Funktion]] genutzt werden.
* 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.
* Wenn die Konstante Pi genutzt werden soll muss [[constPi|constPi()]] verwendet werden.
* Die Funktion [[toDegree|toDegree(x)]] wandelt den Radiant-Werte x in Grad um.
* Die Funktion [[toRadian|toRadian(x)]] wandelt den Grad-Wert x in Radiant um.


[[Kategorie:Evaluatorfunktion]]
[[Kategorie:Math-Evaluatorfunktion]][[category:Trigonometrische Funktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]

Aktuelle Version vom 16. April 2024, 07:01 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Der Kosinus wird durch die cos-Funktion beschrieben. Sie erwartet eine Eingabe und gibt eine Zahl zurück.

Syntax

cos(Ganzzahl zahl)

Parameter

  • zahl - ein Wert im Bogenmaß

Return Value

  • Gibt den Wert der Kosinus Funktion an der Stelle zurück.

Beispiele

Standardfälle

cos(0)    --> returns 1
Jack2:
cos([var=PI])    --> returns -1
Jack3:
cos(constPi())    --> returns -1

Benutzung mit Variablen

cos([var=a])

Benutzung mit studentischen Eingaben

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

Hinweise

  • Der Eingabewert muss im Bogenmaß sein. Wenn man einen Gradmaß hat muss dieser zunächst umgerechnet werden.
  • Diese Funktion wird nicht ausgerechnet, außer es gibt eine genaue Repräsentation (z.B. Pi oder eine Ganzzahl). Soll das Ergebnis gerundet ausgegeben werden, muss eine Rundungsfunktion oder die Approx-Funktion genutzt werden.
  • 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.
  • Wenn die Konstante Pi genutzt werden soll muss constPi() verwendet werden.
  • Die Funktion toDegree(x) wandelt den Radiant-Werte x in Grad um.
  • Die Funktion toRadian(x) wandelt den Grad-Wert x in Radiant um.