====== 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