====== Lab02 - Výpočet statistiky číselné posloupnosti ======
Template domácího úkolu {{ :courses:b0b36pjv:hw:hw2_template.zip |ke stažení zde}}. Ke kontrole vstupů použijte funkce z třídy TextIO.
Odevzdávejte původní, implementované třídy v balíčku ''cz.cvut.fel.pjv.impl''; jiné nahrané soubory nebudou kontrolovány, a proto je neupravujte!
Napište program, který vypočte průměrnou hodnotu a směrodatnou odchylku z posloupnosti čísel zadaných na standardní vstup. Při implementaci použijte předpřipravený interface ''StatsInterface'', a jeho implementaci ''Stats''; tu následně budete používat ve třídě ''Lab02''.
Držte se poskytnuté dokumentace a následujících požadavků:
* Výpočet statistiky (průměr a odchylka) se provádí z každých 10 vstupních čísel. Tyto dvě hodnoty vypište na jeden řádek standardního výstupu na tři desetinná místa a čísla oddělte mezerou, tj. formátování "''%.3f %.3f''".
* Na začátek řádku vypište počet hodnot, ze kterých jsou průměr a odchylka vypočteny, na dvě místa, tj. formátování "''%2d''".
* Při detekci konce vstupního souboru vypište dílčí výsledek z příslušného počtu hodnot, ale pouze pokud je počet hodnot použitých k výpočtu vyšší než 1.
* Detekci řádku, který není validním vstupem (číslem) indikujte výpisem ''A number has not been parsed from line X'', kde **X** je číslo řádku, na standardní chybový výstup.
* Detekci konce vstupu indikujte výpisem ''End of input detected!'' na standardní chybový výstup.
* **Důkladně rozlišujte mezi výstupem na standardní výstup a na standardní chybový výstup!**
Pro výpočet směrodatné odchylky lze použít průměrnou hodnotu a průměr z mocniny sledované veličiny viz [[http://en.wikipedia.org/wiki/Standard_deviation]].
Ukázka výstupu standardního a chybového výstupu pro soubory z veřejných datasetů (které se nachází v templatu ve složce ''test/resources''). Dbejte prosím na formátování výstupu: každý (i ten poslední) řádek by měl být zarovnaný správně, a **ukončen znakem nového řádku**:
| Vstup | Standardní výstup | Standardní chybový výstup |
| 23\\ 3\\ 1\\ 3\\ 4 | 5 6.800 8.158\\ | End of input detected!\\ |
| 8\\ 1\\ 3\\ not a number\\ 6\\ 7\\ 8 | 6 5.500 2.630\\ | A number has not been parsed from line 4\\ End of input detected!\\ |
| 2\\ 185\\ 145\\ 2\\ 65\\ -7\\ 14\\ 84\\ 15\\ not a number\\ 152 | 10 65.700 68.519 | A number has not been parsed from line 10\\ End of input detected!\\ |
V termínálu můžete přesměrovat soubor do standardního vstupu pomocí znaku ''<'', tedy např. ''java -cp target/hw2-1.0-SNAPSHOT.jar cz.cvut.fel.pjv.Main < src/test/resources/cz/cvut/fel/pjv/_public_1.txt''.
Alternativní způsoby přesměrování obsahu souboru na standardní vstup:
**IntelliJ Idea**
{{:courses:b0b36pjv:hw:idea_stdin01.png?nolink|}} {{:courses:b0b36pjv:hw:idea_stdin02.png?nolink|}}
{{:courses:b0b36pjv:hw:idea_stdin03.png?nolink|}}
**Netbeans**
Pro účely testování přidejte do metody ''main'' kód:
public static void main(String[] args) throws FileNotFoundException {
FileInputStream is = new FileInputStream(new File("C:\\TEMP\\long_input.txt"));
System.setIn(is);
//...
Před odevzdáním řešení do BRUTE **tento kód pochopitelně odstraňte**!
Spuštění jar souboru bez manifestu z příkazové řádky:
java -cp ./soubor.jar cz.cvut.fel.pjv.Main