{{indexmenu_n>2}} ======== HW 03 a,b - První cyklus ======== ^ Termín odevzdání | 29.10.2022 22:00 PT | ^ Bodový zisk | 3+3b | ^ Počet uploadů | 10 | ^ Typ zadání | povinné | Tyto úlohy slouží k procvičení cyklů a větvení. Pole **nepoužívejte**. ====== Povinné zadání HW03a ====== Vstupní čísla je možné ihned vypisovat. * Ze standarního vstupu načítejte celá čísla pomocí funkce ''scanf()'' v rozsahu [-10 000; 10 000] včetně krajních hodnot, dokud na něm jsou data, nebo dokud čtení neskončí chybou. * Vypište všechna načtená čísla za sebe, oddělená čárkou (za posledním číslem není čárka ani mezera). * V případě že načtené číslo leží mimo zadaný interval vypište na standardní výstup na nový řádek: "Error: Vstup je mimo interval!" a program ukončete s návratovou hodnotou 100. Nevypisujte již žádná další čísla. Před výpis chyby vložte vždy symbol nového řádku. * Vypište statistiku čísel: * Počet načtených čísel; * Počet kladných čísel; * Počet záporných čísel; * Procentuální podíl kladných a záporných čísel z načtených vstupních hodnot, vypsané (zaokrouhlené funkcí ''printf()'') s přesností na dvě desetinná místa; * Četnosti výskytu sudých a lichých čísel; * Procentuální podíl sudých a lichých čísel z načtených vstupních hodnot, vypsané s přesností na dvě desetinná místa; * Průměr načtených čísel; * Maximální a minimální hodnotu. ==== Příklad 1 - pub01 ==== ^ Standardní vstup (stdin) ^ Očekávaný výstup (stdout) ^ Návratová hodnota ^ | 212 -78 5 16 32 | 212, -78, 5, 16, 32 Pocet cisel: 5 Pocet kladnych: 4 Pocet zapornych: 1 Procento kladnych: 80.00 Procento zapornych: 20.00 Pocet sudych: 4 Pocet lichych: 1 Procento sudych: 80.00 Procento lichych: 20.00 Prumer: 37.40 Maximum: 212 Minimum: -78 | 0 | ==== Příklad 2 - pub02 ==== ^ Standardní vstup (stdin) ^ Očekávaný výstup (stdout) ^ Návratová hodnota ^ | 140 128 8 1603 4905 -3 -2 0 0 9166 255 -1322 8900 10000 -1 6543 | 140, 128, 8, 1603, 4905, -3, -2, 0, 0, 9166, 255, -1322, 8900, 10000, -1, 6543 Pocet cisel: 16 Pocet kladnych: 10 Pocet zapornych: 4 Procento kladnych: 62.50 Procento zapornych: 25.00 Pocet sudych: 10 Pocet lichych: 6 Procento sudych: 62.50 Procento lichych: 37.50 Prumer: 2520.00 Maximum: 10000 Minimum: -1322 | 0 | ==== Příklad 3 - pub03 ==== ^ Standardní vstup (stdin) ^ Očekávaný výstup (stdout) ^ Návratová hodnota ^ | -12 15 523 26 -15000 1 | -12, 15, 523, 26 Error: Vstup je mimo interval! | 100 | Pokud budete chtít v terminálu ukončit načítání ze standardního vstupu, můžete do terminálu vyslat signál [[https://en.wikipedia.org/wiki/End-of-file|EOF]]. * Linux: **Ctrl+D** * Windows: **Ctrl+Z** ====== Povinné zadání HW03b ====== * Ze standarního vstupu načítejte celá čísla pomocí funkce ''scanf()'' v rozsahu [0; 100] včetně krajních hodnot, dokud na něm jsou data, nebo dokud čtení neskončí chybou. * Cílem programu je detekovat ve vstupních datech posloupnosti stejných čísel a určit délku této posloupnosti * V případě že načtené číslo leží mimo zadaný interval vypište na standardní výstup délku právě nalezené posloupnosti (pokud taková existuje), na nový řádek vypište "Error: Vstup je mimo interval!" a program ukončete s návratovou hodnotou 100. Nevypisujte již žádná další čísla. Výpis chyby je na samostatném řádku, tj. pokud nebyla dosud nalezena žádná posloupnost opakujících se čísel, vytiskne se jediný řádek s chybou. * Každý řádek vypsaný na standardní výstup je ukončen znakem ''\n''. ==== Příklad 1 - pub01 ==== ^ Standardní vstup (stdin) ^ Očekávaný výstup (stdout) ^ Návratová hodnota ^ | 10 10 10 4 4 3 | 3x 10 2x 4 | 0 | ==== Příklad 2 - pub02 ==== ^ Standardní vstup (stdin) ^ Očekávaný výstup (stdout) ^ Návratová hodnota ^ | 12 10 10 10 6 5 4 4 | 3x 10 2x 4 | 0 | ==== Příklad 3 - pub03 ==== ^ Standardní vstup (stdin) ^ Očekávaný výstup (stdout) ^ Návratová hodnota ^ | 1 2 3 4 5 | | 0 | ==== Příklad 4 - pub04 ==== ^ Standardní vstup (stdin) ^ Očekávaný výstup (stdout) ^ Návratová hodnota ^ | 1 2 1 1 111 1 2 | 2x 1 Error: Vstup je mimo interval! | 100 | ====== Odevzdání ====== Veřejné příklady + Makefile: {{ :courses:b0b99prpa:hw:hw03_-_cyklus.zip |}}, {{ :courses:b0b99prpa:hw:hw03b_posloupnost.zip |}} ^ ^ Povinné zadání ^ ^ Název v BRUTE | HW03a, HW03b | ^ Odevzdávané soubory | main.c | ^ Argumenty při spuštění | žádné | ^ Kompilace pomocí | clang -pedantic -Wall -Werror -std=c99 -O2 | ^ Procvičované oblasti | základní použití cyklů |