====== Lab02 - Výpočet statistiky číselné posloupnosti ======
Template domácího úkolu {{:courses:b0b36pjv:hw:pjv-lab02.zip|ke stažení zde}}. Ke kontrole vstupů použijte funkce z třídy TextIO.
21.3.2018: Zamyslete se nad tím, že délka posloupnosti není omezená a není tedy vhodné vstupní data ukládat do paměti.
Úkoly:
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 se inspirujte příkladem přesměrování standardního vstupu ze souboru. Testovací soubor obsahuje na každém řádku jedno číslo (nebo nečíselnou hodnotu, viz dále).
* Rozšiřte tento program pro výpočet statistiky (průměr a odchylka) 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.
* Rozlište mezi výstupem na standardní výstup a na standardní chybový výstup. Program implementujte jako část třídy Lab02 v metodě pojmenované ''homework''.
* Detekci konce vstupu indikujte výpisem 'End of input detected!' na standardní chybový výstup.
Odevzdávejte soubory ''Lab02.java'', ''Start.java'' a ''TextIO.java''.
V případě, že na řádku není detekováno číslo, program řádek přeskočí a pokračuje ve čtení vstupu do konce souboru. Tuto situace indikujte výpisem na standardní chybový výstup s uvedením čísla řádku, na kterém k této události došlo.
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 po zpracování souboru {{:courses:b0b36pjv:hw:test_input.txt|test_input.txt}}. 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** (viz. ukázka).
java -jar dist/lab02.jar
Tato ukázka využívá přesměrování textového suouboru do ''System.in'', t.j. Váš program bude číst vstupy způsobenm, jako kdyby je zadával uživatel z klávesnice. Zajistí to znak přesměrování: ''<''.
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**!
Rada - spusteni jar souboru bez manifestu z prikazove radky:
java -cp ./soubor.jar cz.cvut.fel.pjv.Main