Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

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 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: hw03_-_cyklus.zip, 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ů
courses/b0b99prpa/hw/hw03.txt · Last modified: 2022/10/11 10:43 by viteks