Vinnaren i pepparkakshustävlingen!
2014-04-25, 00:19
  #1
Medlem
Jag har börjat koda lite c++ på sista tiden för att lära mig lite hur det fungerar.
Jag köpte c++ primer plus 6th edition av Stephen Prata och satt och gjorde en uppgift där. Efter lite snabbt googlande hittade jag två andra lösningar, som löser problemet på olika sätt.

Uppgiften och två av lösningarna finns här:
http://www.ignatkov.net/cppprimerplu...cise-5-answer/
(en lösning finns i en länk i kommentarerna på ovanstående sida)

Min lösning finns här: http://pastebin.com/jjFysNFE

Hur ska man veta vilken av de tre som är mest lämplig att använda sig av?
Eller så är det någon helt annan lösning som är bättre.
Skulle vara roligt att få höra lite vad ni tycker.
Citera
2014-04-25, 22:07
  #2
Medlem
Lite jobbigt att läsa igenom tre versioner och hitta skillnaderna. Det jobbet kanske du kunde göra, och ställa mer specifika frågor?
Citera
2014-04-25, 22:29
  #3
Medlem
Den första lösningen är att föredra, klar och tydlig. Din lösning är onödigt kryptisk.

Enda kruxet med första koden är att skattesatserna repeteras på flera ställen, men det är inget att hänga upp sig på med ett sådant här enkelt problem.
Citera
2014-04-26, 00:11
  #4
Medlem
tj.s avatar
Du kan lösa ett problem på femtioelva tusen olika sätt. Hur du löser det är upp till dig och utifrån vilka vilka premisser du ska förhålla dig till som t. ex. prestandakrav m.m. Välj den lösningen med bäst självtalande kod, och som är enklast att bygga ut. I ditt fall skulle jag således välja lösningen från den första länken eftersom den är mer lättläst.
Citera
2014-04-26, 10:59
  #5
Medlem
Citat:
Ursprungligen postat av SchackNorris
Lite jobbigt att läsa igenom tre versioner och hitta skillnaderna. Det jobbet kanske du kunde göra, och ställa mer specifika frågor?

Jovisst, fast det är ju ett ganska enkelt problem så det räcker ju att överblicka koden för att se skillnaderna ganska snabbt. Skulle jag, som nyss börjat koda, försöka förklara skillnaderna så blir nog förklaringen krångligare än om någon som kan koda gör en snabbkoll själv

Citat:
Ursprungligen postat av Katalysator
Den första lösningen är att föredra, klar och tydlig. Din lösning är onödigt kryptisk.

Enda kruxet med första koden är att skattesatserna repeteras på flera ställen, men det är inget att hänga upp sig på med ett sådant här enkelt problem.

Jag kan hålla med om att min lösning är en smula kryptisk, borde väl ha kommenterat för att få den tydligare, men det bästa är väl kanske att man skriver kod som man slipper kommentera.

I ett sånt här litet problem spelar det såklart ingen roll vilken metod man använder, men i ett större projekt borde väl alla beståndsdelar vara skrivna på ett så bra sätt som möjligt antar jag, så jag ville ha lite feedback i ett tidigt skede så jag vet vad jag ska tänka på fortsättningsvis.

Tack för svaren!
Citera
2014-04-26, 15:03
  #6
Medlem
tj.s avatar
Citat:
Ursprungligen postat av sittorg
Jag kan hålla med om att min lösning är en smula kryptisk, borde väl ha kommenterat för att få den tydligare, men det bästa är väl kanske att man skriver kod som man slipper kommentera.
Gärna inte. Försök programmera så att koden blir självdokumenterad. Kommentarer är ofta av ondo om de inte är absolut nödvändiga för att förtydliga något, ex. att man skriver varifrån man fått formeln för att beräkna det atmosfäriska trycket vid en viss höjd. Därför är det också viktigt att du tänker igenom en extra gång innan du namnger en klass, funktion eller variabel.

Se den här länken.
Citera
2014-04-26, 22:25
  #7
Medlem
Diamondgrits avatar
Ingen av de där metoderna är speciellt bra tycker jag. Jag skulle gärna se att det fanns en tabell motsvarande tabellen i uppgiften längst upp i koden, därefter applicerar man tabellen på ett systematiskt sätt.
Fördelarna är att koden blir klockren och att det är enkelt att ändra när regeringen vill genomföra en skattereform (eftersom man bara behöver skriva om tabellen).

Att däremot koda in skattesatserna och gränserna direkt i koden betyder lite mer jobb när det är dags att ändra. Och att skriva en algoritm som genererar samma effekt som tabellen (vilket du TS gjorde i din egen lösning) kan bli en riktig huvudvärk om man ska ändra.

När det är en skoluppgift är det ju en sak, men tänk på att den som ska ändra i program som du skriver är antagligen inte du själv. Var snäll mot förvaltningsprogrammerarna. Eller ännu värre, det är du själv, fast fyra år senare när du inte minns vad fan du skrev längre. Tro mig, när man ser sin egen "smarta" kod så lång tid efteråt känns den inte särskilt smart alls.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback