Diskuze: špatné výstupy
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 8 zpráv z 8.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


O jakou daň se jedná a podle jaké legislativy ji počítáš?
Ahoj tady je zadání, nefungujou jen ty dva výstupy, jinak ostatní v pohodě
Vytvořte program, který z údajů za uplynulý rok spočte daň. Ve
virtualní zemi Bohemland je uzákoněno progresivní danění příjmů.
Jedinou odečitatelnou položkou je bezúplatné darování krve nebo krevních
derivátů (max. 12 za rok).
o daň nemůže být záporná
o výpočet se provádí tak, že se sečtou příjmy za uplynulý rok a od
této sumy se odečte daňová úleva (pdk * 4000)
o tím vznikne daňový základ - ten se pak progresivně daní
o z částky do (12 * 20 000) je sazba 15 %,
o z částky do (12 * 40 000) je sazba 25 %,
o z částky nad (12 * 40 000) je sazba 35 %
o daň se nemůže měnit skokově, tj. např. u hrubého platu 22 000 bez úlev
se 25 % platí jen z částky 12 * 2 000 a ze zbývajících 12 * 20 000 se
platí jen 15 %
o po rozpočítání daně na jednotlivé měsíce a odečtení od průměrné
hrubé mzdy obdržíte průměrný čistý příjem
Kdybys rozdělil ten kód do metod, tak bys tu chybu našel. Když všechno nacpeš do jedné nudle, tak se nemůžeš divit, že ti to nefunguje.
omlouvám se ale programování mi nejde a vůbec nevím kde tam hledat chybu.Upravil jsem to a teď mi jdou výsledky dobře, když se nezadá počet darování krve, ale například u hodnoty platu 29000 a 5 krát darování krve mi to vyhodí špatné hodnoty. Kdybyste byl někdo tak ochotný se na to podívat?
double prijemZaRok = 12 * prijem;
double danZaklad = 12 * prijem - krev * 4000;
double danZaklad1 = 12 * 20000 - krev * 4000;
double danZakladNad40 = (prijemZaRok - 12 * 40000) - krev * 4000;
double danZakladNad20 = (prijemZaRok - 12 * 20000) - danZakladNad40 - krev * 4000;
double danZakladNad20000 = (prijemZaRok - 12 * 20000) - krev * 4000;
if (danZaklad < 0) {
danZaklad = 0;
}
if (danZaklad1 < 0) {
danZaklad1 = 0;
}
if (danZakladNad20 < 0) {
danZakladNad20 = 0;
}
if (danZakladNad40 < 0) {
danZakladNad40 = 0;
}
if (danZakladNad20000 < 0) {
danZakladNad20000 = 0;
}
double mzda;
double mzdaDo20;
double mzdaNad20;
double mzda2040;
double mzdaNad40;
double mzdaCelkNad40;
double mzdaNad20000;
double mzdaDo20000;
if (prijemZaRok <= 12 * 20000) {
System.out.println("pod20");
mzda = prijem - (((danZaklad / 100) * 15) / 12);
double vypoctenaDan = (danZaklad / 100) * 15;
System.out.println("---Vysledky---");
System.out.println("Celkovy zaklad dane za uplynuly rok:");
System.out.printf(Locale.US, "%20.2f%n", (double) danZaklad);
System.out.println("Souhrna vypoctena dan za uplynuly rok:");
System.out.printf(Locale.US, "%20.2f%n", (double) vypoctenaDan);
System.out.println("Prumerny cisty mesicni prijem za uplynuly rok:");
System.out.printf(Locale.US, "%20.2f%n", (double) mzda);
} else {
if (prijemZaRok > 12 * 20000 && prijemZaRok <= 12 * 40000) {
System.out.println("nad20");
mzdaDo20 = 20000 - (((danZaklad1 / 100) * 15) / 12);
mzdaNad20 = (prijem - 20000) - (((danZakladNad20000 / 100) * 25) / 12);
mzda2040 = mzdaDo20 + mzdaNad20;
double danZaklad2040 = danZaklad1 + danZakladNad20000;
double vypoctenaDan2040 = ((danZaklad1 / 100) * 15) + ((danZakladNad20000 / 100) * 25);
System.out.println("---Vysledky---");
System.out.println("Celkovy zaklad dane za uplynuly rok:");
System.out.printf(Locale.US, "%20.2f%n", (double) danZaklad2040);
System.out.println("Souhrna vypoctena dan za uplynuly rok:");
System.out.printf(Locale.US, "%20.2f%n", (double) vypoctenaDan2040);
System.out.println("Prumerny cisty mesicni prijem za uplynuly rok:");
System.out.printf(Locale.US, "%20.2f%n", (double) mzda2040);
} else {
System.out.println("nad40");
mzdaDo20 = 20000 - (((danZaklad1 / 100) * 15) / 12);
mzdaNad20000 = 20000 - (((danZakladNad20 / 100) * 25) / 12);
mzdaNad40 = (prijem - 40000) - (((danZakladNad40 / 100) * 35) / 12);
mzdaCelkNad40 = mzdaDo20 + mzdaNad20000 + mzdaNad40;
double danZaklad40 = danZaklad1 + danZakladNad20 + danZakladNad40;
double vypoctenaDanNad40 = ((danZakladNad20 / 100) * 25) + ((danZaklad1 / 100) * 15) + ((danZakladNad40 / 100) * 35);
System.out.println((danZaklad1 / 100) * 15);
System.out.println((danZakladNad20 / 100) * 25);
System.out.println((danZakladNad40 / 100) * 35);
System.out.println("---Vysledky---");
System.out.println("Celkovy zaklad dane za uplynuly rok:");
System.out.printf(Locale.US, "%20.2f%n", (double) danZaklad40);
System.out.println("Souhrna vypoctena dan za uplynuly rok:");
System.out.printf(Locale.US, "%20.2f%n", (double) vypoctenaDanNad40);
System.out.println("Prumerny cisty mesicni prijem za uplynuly rok:");
System.out.printf(Locale.US, "%20.2f%n", (double) mzdaCelkNad40);
}
}
}
}


Chybu máš ve výpočtu daňové meze, kde odpočítáváš krev. Daňová mez je pevně daná, hýbe se pouze hrubým příjmem.
Výhodnější je progresivní daň počítat "zdola". Něco takového?
double CistyMesicniPrijem(double mesicniPrijem, int pocetDarovaniKrve)
{
double prijmyZaRok = 12 * mesicniPrijem;
double danovaUleva = (pocetDarovaniKrve > 12) ? 12 * 4000 : pocetDarovaniKrve * 4000;
double danovyZaklad = prijmyZaRok - danovaUleva;
if (danovyZaklad < 0)
danovyZaklad = 0;
double dan = 0;
dan += ProgresivniDan(ref danovyZaklad, 12 * 20000, 0.15); // 0 - 20.000, 15%
dan += ProgresivniDan(ref danovyZaklad, 12 * 20000, 0.25); // 20.000 - 40.000, 25%
dan += ProgresivniDan(ref danovyZaklad, 0, 0.35); // nad 40.000, 35%
dan = dan / 12;
double prumernyCistyPrijem = mesicniPrijem - dan;
return prumernyCistyPrijem;
}
double ProgresivniDan(ref double danovyZaklad, int danovaMez, double procenta)
{
double zaklad = danovyZaklad;
if (danovaMez > 0 && danovyZaklad > danovaMez)
{
zaklad = danovaMez;
danovyZaklad -= danovyZaklad - danovaMez;
}
else
{
zaklad = danovyZaklad;
danovyZaklad = 0;
}
return zaklad * procenta;
}
Zobrazeno 8 zpráv z 8.