Asin: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
 
(12 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
===Beschreibung===
===Beschreibung===
Der Arkussinus wird durch ''asin'' beschrieben. Er erwartet einen Parameter und gibt einen Wert an der Stelle zurück.
Der Arkussinus wird durch ''asin'' beschrieben. Er erwartet einen Parameter und gibt einen Wert an der Stelle zurück.


===Syntax===
===Syntax===
  asin(String zahl)
  asin([[Gleitkommazahl]] zahl)


===Parameter===
===Parameter===
Zeile 12: Zeile 15:


===Beispiele===
===Beispiele===
asin('0')    --> returns 0
==== Standardfälle ====
 
asin(0)   --> returns 0
====JUnit Tests====
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
private double PI = Math.PI;
 
@Test
public void testAsin1() {
assertEquals(0, Evaluator.getNumberResult("asin(0)", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testAsin2() {
assertEquals(-PI / 2, Evaluator.getNumberResult("asin(-1)", exerciseVariableMap, fillInVariableMap), 0.0001);
}
 
@Test
public void testAsin3() {
assertEquals(PI / 2, Evaluator.getNumberResult("asin(1)", exerciseVariableMap, fillInVariableMap), 0.0001);
}
 
@Test
public void testAsin4() {
assertEquals(0, Evaluator.getNumberResult("asin('0')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testAsin5() {
assertEquals(0.775397496610753, Evaluator.getNumberResult("asin(0.7)", exerciseVariableMap, fillInVariableMap),
0.0);
}
 
@Test
public void testAsinWithInput1() {
assertEquals(0, Evaluator.getNumberResult("asin([pos=1])", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testAsinWithInput2() {
assertEquals(PI / 2, Evaluator.getNumberResult("asin([pos=2])", exerciseVariableMap, fillInVariableMap),
0.0001);
}
 
@Test
public void testAsinWithInput3() {
assertNotEquals(PI / 2, Evaluator.getNumberResult("asin([pos=3])", exerciseVariableMap, fillInVariableMap),
0.0);
}
 
@Test
public void testAsinWithVariables1() {
assertEquals(0, Evaluator.getNumberResult("asin([var=a])", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testAsinWithVariables2() {
assertEquals(PI / 2, Evaluator.getNumberResult("asin([var=b])", exerciseVariableMap, fillInVariableMap),
0.0001);
}
 
@Test
public void testAsinWithVariables3() {
assertNotEquals(PI / 2, Evaluator.getNumberResult("asin([var=c])", exerciseVariableMap, fillInVariableMap),
0.0);
}
 
@Test
public void testAsinWithExpressions1() {
assertEquals(0, Evaluator.getNumberResult("asin(asin(asin(0)))", exerciseVariableMap, fillInVariableMap),
0.0);
 
}
 
@Test
public void testAsinWithExpressions2() {
assertEquals(0.202744039431659,
Evaluator.getNumberResult("asin(asin(0.2))", exerciseVariableMap, fillInVariableMap), 0.0);
}


@Test(expected = FunctionInvalidArgumentTypeException.class)
==== Benutzung mit Variablen ====
public void testAsinWithONECharacter() {
Evaluator.getNumberResult("asin(a)", exerciseVariableMap, fillInVariableMap);
fail();
}


@Test(expected = FunctionInvalidArgumentTypeException.class)
asin([var=a])
public void testAsinWithEmptyStringArgument() {
asin([var=b])
Evaluator.getNumberResult("asin('')", exerciseVariableMap, fillInVariableMap);
fail();
}


@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
==== Benutzung mit studentischen Eingaben ====
public void testAsinWithEmptyArgument() {
Evaluator.getNumberResult("asin()", exerciseVariableMap, fillInVariableMap);
fail();
}


@Test(expected = UndefinedExerciseVariableException.class)
'''Jack2:'''
public void testAsinWithoutExerciseVariable() {
asin([pos=1])
Evaluator.getNumberResult("asin('[var=j]')", exerciseVariableMap, fillInVariableMap);
fail();
}


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


===Hinweise===
===Hinweise===
* 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 15. April 2024, 12:25 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Der Arkussinus wird durch asin beschrieben. Er erwartet einen Parameter und gibt einen Wert an der Stelle zurück.

Syntax

asin(Gleitkommazahl zahl)

Parameter

  • zahl - ein Wert zwischen '-1' und '1'

Return Value

  • Gibt den Wert des Arkussinus an der Stelle zurück.

Beispiele

Standardfälle

asin(0)    --> returns 0

Benutzung mit Variablen

asin([var=a])
asin([var=b])

Benutzung mit studentischen Eingaben

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

Hinweise

  • 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.