Lab01 - Kalkulačka

Template pro domácí úkol ke stažení zde.

Vytvořte jednoduchou kalkulačku. Program se postupně uživatele dotáže na operaci tak, že 1 odpovídá součtu, 2 rozdílu, 3 součinu a 4 podílu. Po volbě operace se program dotáže na dva operandy, které korektně označí podle zvolené operace - tj. pro součet se dotáže na sčítance, pro rozdíl na menšence a menšitele, pro součin na činitele a pro podíl na dělence a dělitele. Posledním vstupem programu je počet desetinných míst, která se použijí na tisk výsledku.

Volba operace očekává celé číslo (1, 2, 3, 4). Operandy jsou reálná čísla. Počet desetinných míst je celé kladnénezáporné číslo.

Program musí ošetřit případné dělení nulou, či volbu nepodporované operace.

Formát výstupu je: “operand1 operátor operand2 = výsledek” Tak, že operandy i výsledek jsou formátovány na zadaný počet desetinných míst, a výstup je ukončen znakem nového řádku.

Odevzdávejte zazipovaný soubor Lab01Impl.java, který musí být v balíčku cz.cvut.fel.pjv.impl.
Na OS Windows s 4eskou lokalizací je pro třídu Scanner u desetinných čísel defaultně nastavená desetinná čárka, nicméně v testovacích sadách najdete čísla s desetinnou tečkou. Máte dvě možnosti, buď si datové sady upravíte na desetinnou tečku anebo si nastavíte Scanner locale na US, viz. ukázka níže.

scanner.useLocale(Locale.US);

Pozn.: V brute se úkol evaluje v kontejneru na OS Linux a locale řešit nemusíte. Ten bude jednotný jak pro Vaše, tak referenční řešení. Jen nemusí sedět výpis Brute a výpis na Vašem počítači.

Program implementujte jako metodu pojmenovanou homework() a zajistěte, že bude tato metoda volána po spuštení programu. Dodržte prosím doporučené textové výpisy dle ukázek níže. Program bude automaticky zkontrolován v odevzdávacím systému.

Za textem výběru operace není mezera, naopak za textem zadávání operandů mezera je. Např.:

Vyber operaci (1-soucet, 2-rozdil, 3-soucin, 4-podil):
Zadej scitanec:_
Zadej scitanec:_
Zadej pocet desetinnych mist:_
Zde znak podtržítka “_” reprezentuje mezeru.

Příklad komunikace programu

Vyber operaci (1-soucet, 2-rozdil, 3-soucin, 4-podil):
10
Chybna volba!

Vyber operaci (1-soucet, 2-rozdil, 3-soucin, 4-podil):
1
Zadej scitanec:
10.1234
Zadej scitanec:
42
Zadej pocet desetinnych mist:
2
10.12 + 42.00 = 52.12

Vyber operaci (1-soucet, 2-rozdil, 3-soucin, 4-podil):
2
Zadej mensenec:
1.23456
Zadej mensitel:
12.345678
Zadej pocet desetinnych mist:
3
1.235 - 12.346 = -11.111

Vyber operaci (1-soucet, 2-rozdil, 3-soucin, 4-podil):
3
Zadej cinitel:
12.345678
Zadej cinitel:
1.23456
Zadej pocet desetinnych mist:
3
12.346 * 1.235 = 15.241

Vyber operaci (1-soucet, 2-rozdil, 3-soucin, 4-podil):
4
Zadej delenec:
10
Zadej delitel:
0
Pokus o deleni nulou!

Vyber operaci (1-soucet, 2-rozdil, 3-soucin, 4-podil):
4
Zadej delenec:
10
Zadej delitel:
2
Zadej pocet desetinnych mist:
5
10.00000 / 2.00000 = 5.00000

Vyber operaci (1-soucet, 2-rozdil, 3-soucin, 4-podil):
1
Zadej scitanec:
10.234
Zadej scitanec:
1
Zadej pocet desetinnych mist:
0
10 + 1 = 11

Vyber operaci (1-soucet, 2-rozdil, 3-soucin, 4-podil):
1
Zadej scitanec:
10
Zadej scitanec:
20
Zadej pocet desetinnych mist:
-1
Chyba - musi byt zadane kladne cislo!

courses/b0b36pjv/hw/01.txt · Last modified: 2025/02/14 16:37 by zidekja2