HW 02 - První cyklus

Termín odevzdání 26.10.2024 23:59 PDT
Povinné zadání 2b kontrola Coding Stylu
Volitelné zadání není
Bonusové zadání není
Počet uploadů 5
Podpůrné soubory b0b36prp-hw02.zip
U této úlohy bude cvičící ručně hodnotit dodržení kódovacího stylu a budou postupovat podle hodnocení.
Tato úloha slouží k procvičení cyklů. Není potřeba používat pole. Vstupní čísla je možné ihned vypisovat.

Povinné zadání

  • 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 (včetně případu, kdy vstup není číslo).
  • 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é (nikoli 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.
Pro testování funkčnosti program před jeho odevzdáním lze využít přiložené vstupní a referenční výstupní soubory. Dále je možné testovat také generátorem a referečním řešení viz Testování HW programů před odevzdáním.

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 k tomu využít stisknutí CTRL+D. Do terminálu vyšle EOT (End of Transmission). V případě, že máme aktuálně rozepsaný řádek vstupu programu, je tento vstup programu předán na stdin. Pokud je aktuální vstup prázdný, terminál pošle programu EOF (End Of File). Prakticky tedy Ctrl+D funguje jako EOF na stdin pro prázdný vstup. Podrobnější informace lze nalézt např. v manuálové stránce termios v části Special Characters znak EOF.

Odevzdání

Veřejné příklady + Makefile: b0b36prp-hw02.zip

Povinné zadání
Název v BRUTE HW02
Odevzdávané soubory main.c
Argumenty při spuštění žádné
Návratová hodnota 0
100; “Error: Vstup je mimo interval!”stdout
Kompilace pomocí clang -pedantic -Wall -Werror -std=c99 -O2
Očekávaná časová složitost 1) $\mathcal{O}(n)$
Procvičované oblasti základní použití cyklů
1)
Kde $n$ je počet čísel.
courses/b0b36prp/hw/hw02.txt · Last modified: 2024/09/15 13:15 by faiglj