Chyba v programu – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Chyba v programu – Java – Fórum – Programujte.comChyba v programu – Java – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
vasek.t0
Newbie
11. 11. 2013   #1
-
0
-

zdravím, prosím o radu mám daňovou kalkulačku, zadání je takovéto 

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).

daň nemůže být záporná
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) 
tím vznikne daňový základ - ten se pak progresivně daní
z částky do (12 * 20 000) je sazba 15 %,
z částky do (12 * 40 000) je sazba 25 %,
z částky nad (12 * 40 000) je sazba 35 %
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 %
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

Když zadám jen příjem bez počtu darování krve tak to funguje, funguje i když se zadá krev u částky do 20000 za měsíc platu, ale dále to háže špatné výsledky. Nevíte prosím co tam mám špatně?

package javaapplication3;

import java.util.Scanner;
import java.util.Locale;

/**
 *
 * @author tomasek
 */
public class JavaApplication3 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Zadejte prumerny hruby prijem (celkovy vydeleny 12) za uplynuly rok (double):  ");
        double prijem = sc.nextDouble();
        System.out.println("Dekuji za zadani.");
        if (prijem < 0)
            prijem = 0;
        System.out.println("Pokud jste zadali zaporne cislo, bylo upraveno na 0.0! ");
        System.out.println("");
        System.out.println("Zadejte pocet darovani krve za uplynuly rok - max. 12 za rok (int): ");  
        int krev = sc.nextInt();
        System.out.println("Dekuji za zadani.");
        if (krev < 0)
            krev = 0;
        if (krev > 12)
            krev = 12;
        System.out.println("Pokud jste zadali vice nez 12, bude upraveno na 12! ");
        System.out.println("Pokud jste zadali zaporne cislo, bude upraveno na 0! ");
        System.out.println("");
        System.out.println("Vsechny ciselne vysledky vypisuji pomoci prikazu:\n" +
"\"System.out.printf(Locale.US, \"%20.2f%n\", (double) prom);\"");
        System.out.println("");
        System.out.println("Od nasledujiciho radku se bude vystup znak\n" +
"po znaku porovnavat se vzorovym resenim!");
        
        double prijemZaRok = 12*prijem;
double danZaklad = prijemZaRok-krev*4000;
double danZaklad1;
double danZakladNad20;
double danZakladNad40;
if (danZaklad < 0)
  danZaklad = 0;
if (danZaklad<=240000)
   {danZaklad1 = danZaklad;
    danZakladNad20 = 0;
    danZakladNad40 = 0;
   }
else 
  if (danZaklad<=480000)
     {danZaklad1 = 240000;
      danZakladNad20 = danZaklad-240000;
      danZakladNad40 = 0;  
     } 
   else
     {danZaklad1 = 240000;
      danZakladNad20 = 240000;
      danZakladNad40 = danZaklad-480000;  
     } 
double vypoctenaDan = (danZaklad1*15+danZakladNad20*25+danZakladNad40*35)/100;
double mzdaCelk = prijem - vypoctenaDan/12;
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) mzdaCelk );
        // TODO code application logic here
    }
    
}
Nahlásit jako SPAM
IP: 194.228.13.–
Flowy0
Věrný člen
14. 11. 2013   #2
-
0
-

1. kto ti to pisal

2. preco tam mas 240 000 a 480 000?

Nahlásit jako SPAM
IP: 178.41.199.–
https://github.com/Flowy
vasek.t0
Newbie
14. 11. 2013   #3
-
0
-

#2 Flowy
psal jsem si to sám, nakonec jsem zjistil, že jsem počítal jiní proměnné než jsem měl.

Nahlásit jako SPAM
IP: 2a00:1028:838a:2ea6:d858:...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Podobná vlákna

Chyba v programu — založil

Chyba v programu — založil choice_

Chyba programu — založil bbeni

Chyba v primitivním programu — založil ViliX64

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý