Max: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
 
(10 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
=== Beschreibung ===
=== Beschreibung ===
 
Die Funktion ''max'' ermittelt den größten Wert zweier Zahlen. Die Funktion erwartet zwei zu vergleichende Zahlen und gibt die größte Zahl zurück. Alternativ kann eine Liste von Zahlen angegeben werden.  
Die Funktion ''max'' ermittelt den größten Wert zweier Zahlen. Die Funktion erwartet zwei zu vergleichende Zahlen und gibt die größte Zahl zurück.


=== Syntax ===
=== Syntax ===
  max(float zahl1, float zahl2)
  max([[Gleitkommazahl]] zahl1, [[Gleitkommazahl]] zahl2)
oder
max([[List]] liste)


=== Parameter ===
=== Parameter ===
* '''zahl1''' - der erste zu vergleichende Wert
* '''zahl1''' - der erste zu vergleichende Wert
* '''zahl2''' - der zweite zu vergleichende Wert
* '''zahl2''' - der zweite zu vergleichende Wert
oder
* '''liste''' - eine Liste von Zahlen


=== Return Value ===
=== Return Value ===
Zeile 16: Zeile 22:
==== Standardfälle ====
==== Standardfälle ====
  max(12,3)  --> returns 12
  max(12,3)  --> returns 12
  max(9.568,100)  --> returns 100
  max(9.568,100)  --> returns 100
max(list(1,2,3,123))  --> returns 123


==== Benutzung mit Variablen ====
==== Benutzung mit Variablen ====
  max([pos=1],[pos=3])
  max([pos=1],[pos=3])
  max([var=a],[var=b])
  max([var=a],[var=b])
 
====JUnit Tests====
max([var=c])
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
@Before
public void beforeTest(){
  placeExerciseVariable("a", OMParser.parse("1"));
  placeExerciseVariable("b", OMParser.parse("2"));
  placeExerciseVariable("c", OMParser.parse("-1"));
 
  placeFillInVariable(1, OMParser.parse("1"));
  placeFillInVariable(2, OMParser.parse("2"));
  placeFillInVariable(3, OMParser.parse("-1"));
}
 
@Test
public void testMax(){
  assertTrue(2 == getEvaluator().getNumberResult("max(1, 2)"));
  assertTrue(3 == getEvaluator().getNumberResult("max(3, 2)"));
  assertTrue(1 == getEvaluator().getNumberResult("max(1, 1)"));
  assertTrue(0 == getEvaluator().getNumberResult("max(0, 0)"));
 
  assertTrue(0 == getEvaluator().getNumberResult("max(-2, 0)"));
  assertTrue(2 == getEvaluator().getNumberResult("max(-2, 2)"));
}
 
@Test
public void testMaxWithVariables(){
  assertTrue(2 == getEvaluator().getNumberResult("max([var=a], [var=b])"));
  assertTrue(1 == getEvaluator().getNumberResult("max([var=a], [var=c])"));
}
 
@Test
public void testMaxWithInput(){
  assertTrue(2 == getEvaluator().getNumberResult("max([pos=1], [pos=2])"));
  assertTrue(1 == getEvaluator().getNumberResult("max([pos=1], [pos=3])"));
}
 
@Test
public void testMaxWithExpressions(){
  assertTrue(12 == getEvaluator().getNumberResult("max(max(12,2), 4)"));
  assertTrue(12 == getEvaluator().getNumberResult("max(max(12,2), max(5, 8))"));
  assertTrue(13 == getEvaluator().getNumberResult("max(max(12,max(13,-13)), max(5, 8))"));
}
 
@Test
public void testMaxWithPointNumbers(){
  assertTrue(1.3 == getEvaluator().getNumberResult("max(1.0, 1.3)"));
  assertTrue(.4 == getEvaluator().getNumberResult("max(.1, .4)"));
  assertTrue(.1234 == getEvaluator().getNumberResult("max(.1234, 0.1111)"));
}
 
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testMaxWithWrongInputCharacter(){
  getEvaluator().getNumberResult("max(a, a)");
}
 
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testMaxWithOneArgument(){
  getEvaluator().getNumberResult("max(2)");
}
 
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testMaxWithThreeArguments(){
  getEvaluator().getNumberResult("max(1, 23, 4)");
}
 
@Test(expected=UndefinedExerciseVariableException.class)
public void testMaxWithMissingExerciseVariable(){
  getEvaluator().getNumberResult("max('[var=j]', '[var=j]')");
}
 
@Test(expected=UndefinedFillInVariableException.class)
public void testMaxWithMissingInput(){
  getEvaluator().getNumberResult("max('[pos=42]', '[pos=42]')");
}
</syntaxhighlight>


=== Hinweise ===
=== Hinweise ===
* Eine Gleitkommazahl wird mit einem Punkt anstatt eines Komma gebildet
* Eine Gleitkommazahl wird mit einem Punkt anstatt eines Komma gebildet.
* Die Funktion [[Min]] gibt alternativ die kleinste Zahl zurück.


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

Aktuelle Version vom 18. April 2024, 12:51 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion max ermittelt den größten Wert zweier Zahlen. Die Funktion erwartet zwei zu vergleichende Zahlen und gibt die größte Zahl zurück. Alternativ kann eine Liste von Zahlen angegeben werden.

Syntax

max(Gleitkommazahl zahl1, Gleitkommazahl zahl2)

oder

max(List liste)

Parameter

  • zahl1 - der erste zu vergleichende Wert
  • zahl2 - der zweite zu vergleichende Wert

oder

  • liste - eine Liste von Zahlen

Return Value

  • Gibt die größte Zahl zurück

Beispiele

Standardfälle

max(12,3)   --> returns 12

max(9.568,100)   --> returns 100

max(list(1,2,3,123))   --> returns 123

Benutzung mit Variablen

max([pos=1],[pos=3])

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

max([var=c])

Hinweise

  • Eine Gleitkommazahl wird mit einem Punkt anstatt eines Komma gebildet.
  • Die Funktion Min gibt alternativ die kleinste Zahl zurück.