Java programmering 1. Ja det är en läxa men jag behöver enbart förstå en fråga.

Trädvy Permalänk
Medlem
Plats
stockholm
Registrerad
Aug 2005

Java programmering 1. Ja det är en läxa men jag behöver enbart förstå en fråga.

Ja jag lär mig då java på distans och ska göra en stor programmeringsuppgift som jag inte alls förstår mig på. uppgiften är denna:

För fysiska personer betalas inkomstskatt till både stat och kommun.
Den kommunala inkomstskatten är i huvudsak proportionerlig, medan den statliga inkomstskatten har progressiva inslag, det vill säga procentsatsen ökar med ökande inkomst. Vid den första, nedre, skiktgränsen* börjar statlig inkomstskatt tas ut med 20%. Vid den andra, övre skiktgränsen tillkommer ytterligare 5% statlig skatt, ofta kallad värnskatt, vilket ger en total statlig inkomstskatt på 25% på alla inkomst över den övre skiktgränsen.
Skiktgränserna är baserade på den taxerade inkomsten minskad med grundavdrag, det vill säga den beskattningsbara förvärvsinkomsten.
(källa: http://sv.wikipedia.org/wiki/Inkomstskatt_i_Sverige)

För inkomståret 2015 finns det två skiktgränser*. Den nedre skiktgränsen är 430 200 kronor. På inkomster över denna gräns tas statlig inkomstskatt ut med 20 procent. Den övre skiktgränsen är 616 100 kronor. På inkomster över denna gräns tas statlig inkomstskatt ut med ytterligare 5 procentenheter (den så kallade värnskatten), det vill säga sammanlagt 25 procent.

Hur stort är grundavdraget?
För inkomståret 2015 är grundavdraget vid beräkning av kommunal och statlig skatt lägst 13 100 kronor och högst 34 300 kronor. Vid låga inkomster är grundavdraget lägst 18 900 kronor.

*Skiktgränsen = den taxerade inkomsten minskad med grundavdrag, det vill säga beskattningsbar förvärvsinkomst.

(källa: www.skatteverket.se)

Uppgiften
Skapa ett program som beräknar en persons statliga inkomstskatt.
Läs in årsinkomsten i programmet och beräkna skatten.
För att underlätta beräkningen använd det lägsta grundavdraget (13100kr).
OBS! Om årsinkomsten är mindre än den nedre skiktgränsen så behöver man inte betala statlig inkomstskatt.
Programmet ska fråga, och kunna beräkna, om fler skatter ska beräknas innan det avslutas.

Jag tappar bort mig i all text med siffror och vet inte helt enkelt vad eller hur jag ska tänka. speciellt denna mening "För inkomståret 2015 är grundavdraget vid beräkning av kommunal och statlig skatt lägst 13 100 kronor och högst 34 300 kronor. Vid låga inkomster är grundavdraget lägst 18 900 kronor."

grundavdraget är en summa men samtidigt en annan? Någon som har möjlighet att förenkla och beskriva? koden kan jag lösa det är minsta bekymmret men jag förstår inte texten.

Tack på förhand / Sebastian

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Apr 2006

Du bör kunna lösa detta rätt lätt och ärligt talat så, är det här svårt så kommer det inte bli lättare, liten heads up. Med det sagt, nya koncept och nya problem, efter ett tag blir det lättare och lättare att sätta sig in i.

Det du måst göra är att vada igenom texten ett par gånger och sen dela upp problemet i olika delar.

Du betalar skatt i olika nivåer.
1) allt mellan 0 - 430 200 kr * skatt = resultat.
2) Allt mellan 430 200 kr - 616 100 kr bet * skatt (komunalskatt+20 procentenheter) = resltuat 2.
3) Allt över 616 100 kr betalar du en skattesatts på komunalskatt + 20%enheter +5 procentenheter = resultat 3.
4) Summera reslutatet och dra bort grundavdraget.

Något sådant typ, du får läsa noggrannare och bedöma.

Allt handlar om att strukturera uppgiften till mindre uppgifter och lös dem en i taget.

Intel Core i7 8700K, MSI GeForce GTX 1080 Ti 11GB Gaming X, Samsung 960 EVO 1TB, MSI Z370 GAMING M5, Corsair 32GB (4x8GB) DDR4 3200MHz CL16 Vengeance, EVGA Supernova G3 850W

INTEL CORE I7 3930K 3.20GHZ 12MB S-2011, FRACTAL DESIGN MIDITOWER DEFINE R3, CORSAIR HX 1050W, ASUS RAMPAGE IV FORMULA, Asus STRIX GTX970, CORSAIR 16GB DDR3 DOMINATOR QUAD 1866MHZ CL9 (4X4GB) Ljud: ASUS Xonar D2X/XDT 7.1 | Elac 5.1 +förstärkare | Cambridge dacmagic plus | Astro gaming A40 | Sennheiser HD 650
You ask me if I have a god complex? Let me tell you something, I am god!

Trädvy Permalänk
Medlem
Registrerad
Maj 2002

Meningen du hade problem med behöver du inte förstå eftersom det står i uppgiften att du för enkelhets skull ska använda det lägsta grundavdraget, 13 100 kr. När du beräknar den beskattningsbara inkomsten ska du alltså ta personens årsinkomst och dra av 13 100 kr, och sedan använda resultatet för beräkningen av skatten.

Reservation för att jag kan ha läst fel någonstans, sitter på mobilen och det blänker som f-n av solen

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
stockholm
Registrerad
Aug 2005
Skrivet av IceDread:

Du bör kunna lösa detta rätt lätt och ärligt talat så, är det här svårt så kommer det inte bli lättare, liten heads up. Med det sagt, nya koncept och nya problem, efter ett tag blir det lättare och lättare att sätta sig in i.

Det du måst göra är att vada igenom texten ett par gånger och sen dela upp problemet i olika delar.

Du betalar skatt i olika nivåer.
1) allt mellan 0 - 430 200 kr * skatt = resultat.
2) Allt mellan 430 200 kr - 616 100 kr bet * skatt (komunalskatt+20 procentenheter) = resltuat 2.
3) Allt över 616 100 kr betalar du en skattesatts på komunalskatt + 20%enheter +5 procentenheter = resultat 3.
4) Summera reslutatet och dra bort grundavdraget.

Något sådant typ, du får läsa noggrannare och bedöma.

Allt handlar om att strukturera uppgiften till mindre uppgifter och lös dem en i taget.

Detta är för att få a i kursen. Jag har inga problem med koder det är mer att jag inte förstår texten.

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
stockholm
Registrerad
Aug 2005
Skrivet av PHJ:

Meningen du hade problem med behöver du inte förstå eftersom det står i uppgiften att du för enkelhets skull ska använda det lägsta grundavdraget, 13 100 kr. När du beräknar den beskattningsbara inkomsten ska du alltså ta personens årsinkomst och dra av 13 100 kr, och sedan använda resultatet för beräkningen av skatten.

Reservation för att jag kan ha läst fel någonstans, sitter på mobilen och det blänker som f-n av solen

Skickades från m.sweclockers.com

Låter logiskt. Ska läsa igenom texten en gång till men ja din text förklarar en del det är bra. Detta är sista uppgiften på hela kursen och det är en a uppgift

Trädvy Permalänk
Medlem
Registrerad
Maj 2002

Uppgiften handlar också bara om att beräkna den STATLIGA skatten, det finns inte tillräcklig information i uppgiften för att kunna beräkna den kommunala och totala skatten.

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Registrerad
Maj 2002

Jäkla krångligt formulerad uppgift får jag säga, med en massa irrelevant information som tar fokus från själva uppgiften, som ju i sig är väldigt enkel när allt strunt är avskalat. Missar man t ex att det bara är den statliga skatten som ska beräknas är ju uppgiften omöjlig att lösa eftersom man inte får några kommunala skattesatser att gå efter.

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Apr 2006
Skrivet av ZalamanderRelic:

Detta är för att få a i kursen. Jag har inga problem med koder det är mer att jag inte förstår texten.

Skickades från m.sweclockers.com

Jo du skrev det. Mitt syfte var att hjälpa till med problemlösningen, gav det dig något? Orkade inte läsa hela din uppgift, håller på med lite för mycket här

Din uppgift är, Skapa ett program som beräknar en persons statliga inkomstskatt.
Så särskilj ut vad som ligger till grund för det. Hoppas mina tips ovan hjälpte...

Dvs, jag skrev hur du räknar ihop skatten totalt ovan, det är du inte intresserad av, du är intresserad av en viss bit av beräkningen.

Intel Core i7 8700K, MSI GeForce GTX 1080 Ti 11GB Gaming X, Samsung 960 EVO 1TB, MSI Z370 GAMING M5, Corsair 32GB (4x8GB) DDR4 3200MHz CL16 Vengeance, EVGA Supernova G3 850W

INTEL CORE I7 3930K 3.20GHZ 12MB S-2011, FRACTAL DESIGN MIDITOWER DEFINE R3, CORSAIR HX 1050W, ASUS RAMPAGE IV FORMULA, Asus STRIX GTX970, CORSAIR 16GB DDR3 DOMINATOR QUAD 1866MHZ CL9 (4X4GB) Ljud: ASUS Xonar D2X/XDT 7.1 | Elac 5.1 +förstärkare | Cambridge dacmagic plus | Astro gaming A40 | Sennheiser HD 650
You ask me if I have a god complex? Let me tell you something, I am god!

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Apr 2006
Skrivet av PHJ:

Uppgiften handlar också bara om att beräkna den STATLIGA skatten, det finns inte tillräcklig information i uppgiften för att kunna beräkna den kommunala och totala skatten.

Skickades från m.sweclockers.com

Jo det gör det, det som ställer till det något är avdraget. Men går att läsa på hos skatteverket hur det fungerar om uppgiften är otydlig.

Intel Core i7 8700K, MSI GeForce GTX 1080 Ti 11GB Gaming X, Samsung 960 EVO 1TB, MSI Z370 GAMING M5, Corsair 32GB (4x8GB) DDR4 3200MHz CL16 Vengeance, EVGA Supernova G3 850W

INTEL CORE I7 3930K 3.20GHZ 12MB S-2011, FRACTAL DESIGN MIDITOWER DEFINE R3, CORSAIR HX 1050W, ASUS RAMPAGE IV FORMULA, Asus STRIX GTX970, CORSAIR 16GB DDR3 DOMINATOR QUAD 1866MHZ CL9 (4X4GB) Ljud: ASUS Xonar D2X/XDT 7.1 | Elac 5.1 +förstärkare | Cambridge dacmagic plus | Astro gaming A40 | Sennheiser HD 650
You ask me if I have a god complex? Let me tell you something, I am god!

Trädvy Permalänk
Medlem
Registrerad
Maj 2002
Skrivet av IceDread:

Jo det gör det, det som ställer till det något är avdraget. Men går att läsa på hos skatteverket hur det fungerar om uppgiften är otydlig.

Jag ser inga kommunala skattesatser i uppgiften, gör du? Däremot finns all nödvändig information för att beräkna den statliga skatten.

All möjlig info finns förstås att hitta utanför uppgiften, t ex på Skatteverkets websida, men det behövs ju inte här.

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Umeå -> Nordmaling
Registrerad
Jul 2007

Lite offtopic kanske, men av ren nyfikenhet, frågat av någon som är självlärd i programmering, är denna uppgift representativ för svårighetsgraden för att få högsta betyg i introduktionskursen (vilket jag utgår Java 1 är)?

Trädvy Permalänk
Medlem
Plats
stockholm
Registrerad
Aug 2005

@IceDread: nja jag uppskattar allt det är inga konstigheter och jag uppskattar det du skrivit. det jag tänkte på var det du skrev att om jag tycker detta är svårt så kommer det bli värre framåt. inte exakt dem orden men i princip.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Apr 2006
Skrivet av ZalamanderRelic:

@IceDread: nja jag uppskattar allt det är inga konstigheter och jag uppskattar det du skrivit. det jag tänkte på var det du skrev att om jag tycker detta är svårt så kommer det bli värre framåt. inte exakt dem orden men i princip.

Jag tänkte på det sen att det kanske blir feltolkat. Ofta i yrkeslivet kommer man stött på mycket svagt formulerade uppgifter och behöva reda ut resten själv, men det går oftast att föra en dialog med beställarna. Ibland går det som här att läsa på mer på andra sidor, i detta fall skatteverket.
Min andra mening hoppades jag mer på att du skulle ta till dig, det blir lättare. Man bekantar sig snabbare och snabbare med olika typer av scenarion från olika områden. Det här är egentligen ingen konstig uppgift, om man bara tar sig tiden för den.
Exempelvis så byter ett företag ut ett banksystem och en av en radda av uppgifter är att rapportera viss information till skatteverket, dokumentation är bristfällig och man får leta bäst man kan och kontrollera nytt system med vilken data som finns var och jämföra mot föregående lösning för att ta sig fram. Inte svårt men, drygt att leta i gammalt system och nytt och gissa testa och vada genom dålig tokmycket dokumentation.

Intel Core i7 8700K, MSI GeForce GTX 1080 Ti 11GB Gaming X, Samsung 960 EVO 1TB, MSI Z370 GAMING M5, Corsair 32GB (4x8GB) DDR4 3200MHz CL16 Vengeance, EVGA Supernova G3 850W

INTEL CORE I7 3930K 3.20GHZ 12MB S-2011, FRACTAL DESIGN MIDITOWER DEFINE R3, CORSAIR HX 1050W, ASUS RAMPAGE IV FORMULA, Asus STRIX GTX970, CORSAIR 16GB DDR3 DOMINATOR QUAD 1866MHZ CL9 (4X4GB) Ljud: ASUS Xonar D2X/XDT 7.1 | Elac 5.1 +förstärkare | Cambridge dacmagic plus | Astro gaming A40 | Sennheiser HD 650
You ask me if I have a god complex? Let me tell you something, I am god!

Trädvy Permalänk
Medlem
Plats
stockholm
Registrerad
Aug 2005

@IceDread: ja vi får se vad som händer. jag lär mig just nu i huvudsak bara för att jag tycker det är roligt att lära mig saker.
Har precis läst 3st nätverkskurser också. Om jag ska jobba med programmering får jag se jag kanske bara gör hobby projekt och hobby beställningar i framtiden när jag lärt mig mer. har rätt ok jobb just nu där jag kan programmera på jobbet och samtidigt arbeta så har tid att lära mig programmering.

och jag tycker det är riktigt roligt med programmering och lära sig att se ett program eller spel utvecklas och se det komma framåt. mitt största problem är att faktiskt göra något med programmering också jag fastnar ibland med andra saker. men när jag gått klart denna kurs så ska det bli mer programmering och göra några enkla program och lära mig oop bättre

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Apr 2006
Skrivet av ZalamanderRelic:

@IceDread: ja vi får se vad som händer. jag lär mig just nu i huvudsak bara för att jag tycker det är roligt att lära mig saker.
Har precis läst 3st nätverkskurser också. Om jag ska jobba med programmering får jag se jag kanske bara gör hobby projekt och hobby beställningar i framtiden när jag lärt mig mer. har rätt ok jobb just nu där jag kan programmera på jobbet och samtidigt arbeta så har tid att lära mig programmering.

och jag tycker det är riktigt roligt med programmering och lära sig att se ett program eller spel utvecklas och se det komma framåt. mitt största problem är att faktiskt göra något med programmering också jag fastnar ibland med andra saker. men när jag gått klart denna kurs så ska det bli mer programmering och göra några enkla program och lära mig oop bättre

Du tycker det är roligt med programmering, då har du alla förutsättningar för att lyckas på din sida. Att fastna ibland är inget konstigt.

Intel Core i7 8700K, MSI GeForce GTX 1080 Ti 11GB Gaming X, Samsung 960 EVO 1TB, MSI Z370 GAMING M5, Corsair 32GB (4x8GB) DDR4 3200MHz CL16 Vengeance, EVGA Supernova G3 850W

INTEL CORE I7 3930K 3.20GHZ 12MB S-2011, FRACTAL DESIGN MIDITOWER DEFINE R3, CORSAIR HX 1050W, ASUS RAMPAGE IV FORMULA, Asus STRIX GTX970, CORSAIR 16GB DDR3 DOMINATOR QUAD 1866MHZ CL9 (4X4GB) Ljud: ASUS Xonar D2X/XDT 7.1 | Elac 5.1 +förstärkare | Cambridge dacmagic plus | Astro gaming A40 | Sennheiser HD 650
You ask me if I have a god complex? Let me tell you something, I am god!

Trädvy Permalänk
Medlem
Plats
skåne
Registrerad
Jun 2004

Ser ut som en typisk kravställning; lite luddigt och rörigt vid första anblicken, varvat med information som inte behövs för att lösa uppgiften. Ditt uppdrag, om du väljer att acceptera det, är att bena ut vad som verkligen efterfrågas och presentera det!

En sak som hjälpt mig mycket är att så tidigt som möjligt definiera done, dvs exakt VAD som efterfrågas, inte hur, och sedan baklänges ta mig fram till vilka variabler och funktioner som behövs.
Nästan som lite TDD (testdrivendesign) att du börjar med att veta svaret och snickarar sedan ihop frågan så den producerar just det svaret.

Eller som IceDread visar; bryt ner varje steg till funktioner.

Tänk på att beskattningsbar förvärvsinkomst = förvärvsinkomst - grundavdrag, och att det är den beskattningsbara förvärvsinkomsten som ska beskattas, inte förvärvsinkomsten

Oldschool [å:ldsku:l] adj. Användandet av datorprodukter som är äldre än 3 månader.

Trädvy Permalänk
Medlem
Plats
stockholm
Registrerad
Aug 2005

jag har stött på ett litet problem. ja koden är långt ifrån klar på långa vägar. men när jag skriver in årsinkomsten den kör igenom allt ett varv och sen får jag frågan vill du mata in fler? vid ja och vid matning av årsinkomst så stänger programmet av sig? kan inte förstå vad jag missat just nu iallafall.
Tips?

package test; import javax.swing.JOptionPane; public class A_Uppgift { static boolean running = true; static String inmatningFrånAnvändare; static int inkomst; static double skattAttBeräkna; static final double STATLIG_INKOMSTSKATT = 0.20; static final double VÄRNSKATT = 0.05; static double skatt; static final int GRUNDAVDRAG = 13100; static public int flerBeräkningar; public static void inkomstSkatt(double skattAttBeräkna) { skatt = skattAttBeräkna - GRUNDAVDRAG; } public static void inkomstSkatt(double skattAttBeräkna, double STATLIG_INKOMSTSKATT) { skatt = (skattAttBeräkna - GRUNDAVDRAG) * STATLIG_INKOMSTSKATT; } public static void inkomstSkatt(double skattAttBeräkna, double STATLIG_INKOMSTSKATT, double VÄRNSKATT) { skatt = (skattAttBeräkna - GRUNDAVDRAG) * STATLIG_INKOMSTSKATT * VÄRNSKATT; } public static void inmatning() { while(running) { inmatningFrånAnvändare = JOptionPane.showInputDialog(null, "Årsinkomst"); if(inmatningFrånAnvändare != null && inmatningFrånAnvändare.length() > 0) { inkomst = Integer.parseInt(inmatningFrånAnvändare); if(inkomst < 430200) { inkomstSkatt(inkomst); running = false; } else if(inkomst >= 430200 && inkomst < 616100) { inkomstSkatt(inkomst, STATLIG_INKOMSTSKATT); running = false; } else { inkomstSkatt(inkomst, STATLIG_INKOMSTSKATT, VÄRNSKATT); running = false; } } else if(inmatningFrånAnvändare.isEmpty()){ inmatning(); } else { } } } public static void main(String[]args) { inmatning(); JOptionPane.showMessageDialog(null, "Din skatt är " + skatt); flerBeräkningar = JOptionPane.showConfirmDialog(null, "Vill du matat in fler årsinkomster?"," " , JOptionPane.YES_NO_OPTION); if(flerBeräkningar == JOptionPane.YES_OPTION) { running = true; inmatning(); } else { JOptionPane.showMessageDialog(null, "Hej då"); System.exit(0); } } }

Trädvy Permalänk
Medlem
Plats
stockholm
Registrerad
Aug 2005

Vad tycker ni om denna kod? den har iallafall inga buggar vad jag kan se men frågan är om det är någon del som kan förbättras? göras enklare?
Sen är frågan den om uträkningen stämmer med vad uppgiften stämmer. sen får jag iofs minus om jag skriver in lägre input än vad grundavdraget ligger på.

package a_och_b; import javax.swing.JOptionPane; public class A_Uppgift { static boolean running = true; static String inmatningFrånAnvändare; static int inkomst = 0; static double skattAttBeräkna; static final double STATLIG_INKOMSTSKATT = 0.20; static final double VÄRNSKATT = 0.05; static double skatt; static final int GRUNDAVDRAG = 13100; static public int flerBeräkningar; static boolean mataInFler = true; public static void inkomstSkatt(double skattAttBeräkna) { skatt = skattAttBeräkna - GRUNDAVDRAG; } public static void inkomstSkatt(double skattAttBeräkna, double STATLIG_INKOMSTSKATT) { skatt = (skattAttBeräkna - GRUNDAVDRAG) * STATLIG_INKOMSTSKATT; } public static void inkomstSkatt(double skattAttBeräkna, double STATLIG_INKOMSTSKATT, double VÄRNSKATT) { skatt = (skattAttBeräkna - GRUNDAVDRAG) * STATLIG_INKOMSTSKATT * VÄRNSKATT; } public static void start(){ while(mataInFler){ inmatningFrånAnvändare = JOptionPane.showInputDialog(null, "Årsinkomst"); while(running) { if(inmatningFrånAnvändare == null){ System.exit(0); } else if(inmatningFrånAnvändare.contains(" ") || !inmatningFrånAnvändare.matches("[0-9]+")) { JOptionPane.showMessageDialog(null, "Du skrev inte in siffror"); start(); } else if(inmatningFrånAnvändare != null && inmatningFrånAnvändare.length() > 0) { inkomst = Integer.parseInt(inmatningFrånAnvändare); if(inkomst < 430200) { inkomstSkatt(inkomst); break; } else if(inkomst >= 430200 && inkomst < 616100) { inkomstSkatt(inkomst, STATLIG_INKOMSTSKATT); break; } else { inkomstSkatt(inkomst, STATLIG_INKOMSTSKATT, VÄRNSKATT); break; } } } JOptionPane.showMessageDialog(null, "Din skatt är " + skatt); flerBeräkningar = JOptionPane.showConfirmDialog(null, "Vill du mata in fler årsinkomster?"," " , JOptionPane.YES_NO_OPTION); if(flerBeräkningar == JOptionPane.YES_OPTION) { mataInFler = true; } else if(flerBeräkningar == JOptionPane.CLOSED_OPTION || flerBeräkningar == JOptionPane.NO_OPTION) { break; } } } public static void main(String[]args) { start(); System.exit(0); } }