EqualsBinary: 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 ''equalsBinary'' prüft, ob eine Dezimalzahl und eine Binärzahl den gleichen Wert haben. Die Funktion erwartet zwei Zahlen, die erste in Dezimaldarstellung, die zweite in Binärdarstellung, und gibt einen Boolean zurück.  
Die Funktion ''equalsBinary'' prüft, ob eine Dezimalzahl und eine Binärzahl den gleichen Wert haben. Die Funktion erwartet zwei Zahlen, die erste in Dezimaldarstellung, die zweite in Binärdarstellung, und gibt einen Boolean zurück.  


=== Syntax ===
=== Syntax ===
  equalsBinary(String dezimal, String binär)
  equalsBinary([[Ganzzahl]] dezimal, Binärzahl binär)


=== Parameter ===
=== Parameter ===
Zeile 14: Zeile 16:
=== Beispiele ===
=== Beispiele ===
==== Standardfälle ====
==== Standardfälle ====
  equalsBinary('15','1111')  --> returns true
  equalsBinary(15,1111)  --> returns true
  equalsBinary('6','101')  --> returns false
  equalsBinary(6,101)  --> returns false


==== Benutzung von Variablen ====
==== Benutzung mit Variablen ====
  equalsBinary('[pos=1]','10')
   
  equalsBinary('4','[var=a]')
  equalsBinary(4,[var=a])
equalsBinary('[var=b]','[pos=2]')


==== Benutzung mit studentischen Eingaben ====
equalsBinary([pos=1],10)
equalsBinary([var=b],[pos=2])


====JUnit Tests====
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
@Before
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("0"));
  placeFillInVariable(2, OMParser.parse("1"));
  placeFillInVariable(3, OMParser.parse("7"));
  placeExerciseVariable("a", OMParser.parse("0"));
  placeExerciseVariable("b", OMParser.parse("1"));
  placeExerciseVariable("c", OMParser.parse("7"));
}
@Test
public void testEqualsBinary() {
  assertTrue(getEvaluator().getBooleanResult("equalsBinary('15','1111')"));
  assertTrue(getEvaluator().getBooleanResult("equalsBinary('3','00011')"));
  assertFalse(getEvaluator().getBooleanResult("equalsBinary('16','101')"));
}
@Test
public void testEqualsBinaryWithInput() {
  assertTrue(getEvaluator().getBooleanResult("equalsBinary('2','[pos=2][pos=1]')"));
  assertTrue(getEvaluator().getBooleanResult("equalsBinary('[pos=3]','0111')"));
}
@Test
public void testEqualsBinaryWithVariables() {
  assertTrue(getEvaluator().getBooleanResult("equalsBinary('2','[var=b][var=a]')"));
  assertTrue(getEvaluator().getBooleanResult("equalsBinary('[var=c]','0111')"));
}
@Test
public void testEqualsBinaryWithExpressions() {
  assertTrue((getEvaluator().getBooleanResult("equalsBinary('equalsBinary('3','11')', 'equalsBinary('2','10')')")));
}
@Test (expected=InvalidEvaluatorFunctionArgumentException.class)
public void testEqualsBinaryWithWrongInputDecimalAsSecondArgument() {
  getEvaluator().getBooleanResult("equalsBinary('2','15')");
}
@Test (expected=InvalidEvaluatorFunctionArgumentException.class)
public void testEqualsBinaryWithWrongInputPointNumberAsFirstArgument() {
  getEvaluator().getBooleanResult("equalsBinary('2.6','11')");
}
@Test (expected=InvalidEvaluatorFunctionArgumentException.class)
public void testEqualsBinaryWithWrongInputEmptyArguments() {
getEvaluator().getBooleanResult("equalsBinary('','')");
}
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testEqualsBinaryWithTwoRationalArguments() {
  getEvaluator().getBooleanResult("equalsBinary(7, 111)");
}
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testEqualsBinaryWithOneArgument() {
  getEvaluator().getBooleanResult("equalsBinary('11')");
}
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testEqualsBinaryWithThreeArguments() {
  getEvaluator().getBooleanResult("equalsBinary('7','111', '0111')");
}
@Test (expected=UndefinedFillInVariableException.class)
public void testEqualsBinaryWithMissingInput() {
  getEvaluator().getBooleanResult("equalsBinary('[pos=10]','11')");
}
@Test (expected=UndefinedExerciseVariableException.class)
public void testEqualsBinaryWithMissingVariable() {
  getEvaluator().getBooleanResult("equalsBinary('[var=u]','11')");
}
</syntaxhighlight>
=== Hinweise ===
=== Hinweise ===
* 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.
* Diese Funktion steht nur in Jack2 zur Verfügung. In Jack3 kann als alternative die Funktion [[BinaryEqualsDecimal]] genutzt werden.


[[Kategorie:Evaluatorfunktion]]
[[Kategorie:Binärzahlen]][[Kategorie:JACK2]]

Aktuelle Version vom 27. März 2024, 14:27 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion equalsBinary prüft, ob eine Dezimalzahl und eine Binärzahl den gleichen Wert haben. Die Funktion erwartet zwei Zahlen, die erste in Dezimaldarstellung, die zweite in Binärdarstellung, und gibt einen Boolean zurück.

Syntax

equalsBinary(Ganzzahl dezimal, Binärzahl binär)

Parameter

  • dezimal - Ganzzahl in Dezimaldarstellung
  • binär - zu vergleichende Zahl in Binärdarstellung

Return Value

  • Gibt einen Boolean zurück

Beispiele

Standardfälle

equalsBinary(15,1111)   --> returns true

equalsBinary(6,101)   --> returns false

Benutzung mit Variablen

equalsBinary(4,[var=a])

Benutzung mit studentischen Eingaben

equalsBinary([pos=1],10)

equalsBinary([var=b],[pos=2])

Hinweise

  • 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.
  • Diese Funktion steht nur in Jack2 zur Verfügung. In Jack3 kann als alternative die Funktion BinaryEqualsDecimal genutzt werden.