Göm menyn

961G24 Programmering i text-baserad miljö

Lab 1: Momstabellen

Laboration 1 - Momstabellen

Instruktioner

Målet i detta program är att konstruera ett program som skriver ut en momstabell. Om du tittar längre ned på denna sida så kommer du se att vi rekommenderar att du arbetar med dellösningar på detta problem först, men här kommer problemet i sin helhet att presenteras.

Programmet ska fråga efter och ta som inmatning följande värden:

  • Nedre gräns för prisintervallet
  • Övre gräns för prisintervallet
  • Steglängd i tabellen
  • Momsprocenten (uttryckt som decimaltal i intervallet 0 till 100 %)

Om den sista raden i momstabellen skulle bli större än den övre gränsen så ska denna rad inte skrivas ut.

Det som är viktigt i denna laboration är att programmet ni skriver matchar körexemplen i utseende. Utöver att utskriften skall se ut som körexemplen ska programmet också fungera korrekt, så testa programmet noggrant. Tänk på att alla värden som matas in av användaren behöver rimlighetskontrolleras enligt nedanstående kriterier.

  • Den nedre gränsen för prisintervallet behöver vara positivt
  • Den övre gränsen för prisintervallet behöver vara positivt och större än nedre gränsen
  • Steglängen behöver vara positiv
  • Inget tal får vara större än 10 000

Körexempel 1:

Mata in första pris: 10
Mata in sista pris : 15
Mata in steglängd  : 0.5
Mata in momsprocent: 10

     Pris       Moms     Pris m. Moms
-------------------------------------
     10.00      1.00     11.00
     10.50      1.05     11.55
     11.00      1.10     12.10
     11.50      1.15     12.65
     12.00      1.20     13.20
     12.50      1.25     13.75
     13.00      1.30     14.30
     13.50      1.35     14.85
     14.00      1.40     15.40
     14.50      1.45     15.95
     15.00      1.50     16.50

Körexempel 2:

Mata in första pris: 10
Mata in sista pris : 11
Mata in steglängd  : 0.1
Mata in momsprocent: 25

     Pris       Moms     Pris m. Moms
-------------------------------------
     10.00      2.50     12.50
     10.10      2.52     12.62
     10.20      2.55     12.75
     10.30      2.57     12.87
     10.40      2.60     13.00
     10.50      2.62     13.12
     10.60      2.65     13.25
     10.70      2.67     13.37
     10.80      2.70     13.50
     10.90      2.72     13.62
     11.00      2.75     13.75

Körexempel 3:

Mata in första pris: 14
Mata in sista pris : 15
Mata in steglängd  : 0.3
Mata in momsprocent: 13

     Pris       Moms     Pris m. Moms
-------------------------------------
     14.00      1.82     15.82
     14.30      1.86     16.16
     14.60      1.90     16.50
     14.90      1.94     16.84

Delproblem

För att göra det lättare att börja arbeta med denna laboration så föreslår vi att du börjar arbeta med mindre delproblem och löser dessa. När du är klar med de mindre delarna bör du kunna koppla ihop dellösningarna för att lösa hela laborationen

Delproblem 1 - skriv ut en tabell

Skriv ett program som skriver ut en tabell enligt formatet nedan.

     Pris       Moms     Pris m. Moms
-------------------------------------
     11.00      1.10     12.10
     11.50      1.15     12.65
     12.00      1.20     13.20

Delproblem 2 - skriv ut en tabell med en loop

Skriv ett program som skriver ut en tabell enligt formatet nedan. Skriv först ut tabellhuvudet och sedan ska du skriva ut tabellen med en loop som baserar sig på 4 data som lagras i variabler.

  • starting_price = 11
  • ending_price = 12
  • step_length = 0.5
  • vat = 10
     Pris       Moms     Pris m. Moms
-------------------------------------
     11.00      1.10     12.10
     11.50      1.15     12.65
     12.00      1.20     13.20

Delproblem 3 - Hantera användarinmatning

Skriv ett program som låter användaren mata in 4 tal. Spara dessa tal i 4 variabler.

Mata in första pris: 10
Mata in sista pris : 15
Mata in steglängd  : 0.5
Mata in momsprocent: 10

Delproblem 4 - Hantera användarinmatning

Utöka programmet som du skrev för inmatning av tal. Utför nu en felkontroll som kontrollerar om det användaren skrivit är rimligt eller inte. Om det inte är rimligt ska användaren få nya chanser att mata in tills den gör rätt.

Följande kriterier bör kontrolleras:

  • Den nedre gränsen för prisintervallet behöver vara positivt
  • Den övre gränsen för prisintervallet behöver vara positivt och större än nedre gränsen
  • Steglängen behöver vara positiv
  • Inget tal får vara större än 10 000
Mata in första pris: 10
Mata in sista pris : 9
Sista priset måste vara större än första priset.
Mata in sista pris : 7
Sista priset måste vara större än första priset.
Mata in sista pris : 12
Mata in steglängd  : 0.5
Mata in momsprocent: 10

Delproblem 5 - Sätt ihop allting

Sammanfoga nu lösningen för inmatning och utskrift av tabellen. De inmatade och rimlighetskontrollerade värdena ska användas istället för det hårdkodade värdena i delproblem 2. När du gjort detta bör du ha löst hela laborationen. Testa körexemplena i början av sidan.



Frivillig extra del

Om den undre gränsen är större än den övre gränsen så ska dessa användas omvänt (börja på värdet för den övre gränsen och räkna upp till den undre gränsen). Alla tal i momstabellen skall skrivas ut med 2 decimaler.

Körexempel 4:

Mata in första pris: 15
Mata in sista pris : 14
Mata in steglängd  : 0.3
Mata in momsprocent: 13

     Pris       Moms     Pris m. Moms
-------------------------------------
     14.00      1.82     15.82
     14.30      1.86     16.16
     14.60      1.90     16.50
     14.90      1.94     16.84

Sidansvarig: Pontus Haglund
Senast uppdaterad: 2020-09-10