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

HW 01 - Načítání vstupu, výpočet a výstup

Termín odevzdání 20.10.2018 23:59 PDT
Povinné zadání 1b
Volitelné zadání není
Bonusové zadání není
Počet uploadů 10
Podpůrné soubory b0b36prp-hw01.zip
Tato úloha slouží k procvičení formátovaného vstupu a výstupu s použitím funkcí scanf() a printf(). Podobně jako ostatní domácí úkoly, vždy je dostačující znalost témat z předchozích přednášek a cvičení, tj. není nutné (a mnohdy ani vhodné) pro povinné a volitelné zádání používat pokročilé programové konstrukty.

Povinné zadání

  • Ze standardního vstupu načtěte dvě celá čísla v rozsahu [-10 000; 10 000] včetně krajních hodnot.
  • Pokud bude některá vstupní hodnota mimo interval, tak vypiště “Vstup je mimo interval!” na standardní výstup a ukončete program s návratovou hodnotou “0”.
  • Vypište čísla v dekadickém a hexadecimálním tvaru na standardní výstup.
  • Dále vypište celočíselný součet, rozdíl a součin obou čísel.
  • Vypište celočíselný podíl obou čísel. V případě dělení nulou vypište “Nedefinovany vysledek!”.
  • Vypočtěte průměrnou hodnotu obou čísel a vypište ji na standardní výstup s přesností na jedno desetinné místo.
  • Dodržte očekávané formátování, zvláště pak mezery a tzv. bílé znaky. Na konci výstupu je vždy konec řádku.
  • Pro jednoduchost a přehlednost kódu je očekávaná návratová hodnota programu vždy nula (i při nesprávném/neočekávaném vstupu).
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
11 24
Desitkova soustava: 11 24
Sestnactkova soustava: b 18
Soucet: 11 + 24 = 35
Rozdil: 11 - 24 = -13
Soucin: 11 * 24 = 264
Podil: 11 / 24 = 0
Prumer: 17.5
0

Příklad 2 - pub02

Standardní vstup (stdin) Očekávaný výstup (stdout) Návratová hodnota
152 0
Desitkova soustava: 152 0
Sestnactkova soustava: 98 0
Soucet: 152 + 0 = 152
Rozdil: 152 - 0 = 152
Soucin: 152 * 0 = 0
Nedefinovany vysledek!
Prumer: 76.0
0

Příklad 3 - pub03

Standardní vstup (stdin) Očekávaný výstup (stdout) Návratová hodnota
10001 125
Vstup je mimo interval!
0

Příklad 4 - pub04

Standardní vstup (stdin) Očekávaný výstup (stdout) Návratová hodnota
212 -78 5 16 32
Desitkova soustava: 212 -78
Sestnactkova soustava: d4 ffffffb2
Soucet: 212 + -78 = 134
Rozdil: 212 - -78 = 290
Soucin: 212 * -78 = -16536
Podil: 212 / -78 = -2
Prumer: 67.0
0

Odevzdání

Abchom vás motivovali, připravili jsme pro vás balíček b0b36prp-hw01.zip, který obsahuje všechny veřejné testovací vstupy a jejich očekávané výstupy. Dále archiv obsahuje jednoduchý Makefile, díky kterému můžete kompilovat program jednoduše pomocí příkazu make a vytvořit archiv pro odevzdávací systém pomocí příkazu make zip (vytvoří se archiv hw01-b0b36prp-brute.zip).

Na konci každého řádku je symbol nového řádku ('\n'). Pro kontrolu můžete uložit standardní výstup programu do souboru a zobrazit jej v hexadecimálním tvaru pomocí příkazu hexdump -C
Povinné zadání
Název v BRUTE HW01
Odevzdávané soubory main.c
Argumenty při spuštění žádné
Kompilace pomocí clang -pedantic -Wall -std=c99 -O2
Procvičované oblasti standardní vstup a výstup
Domácí úkoly nezkoušejte odevzdávat, prostě je odevzdejte. Otestujte si program sami a to na přiložených příkladech nebo nově vytvořených vstupech a porovnáním s refernečním řešením, více viz - Testování HW programů před odevzdáním.
courses/b0b36prp/hw/hw01.txt · Last modified: 2018/11/02 07:20 by faiglj