You are on page 1of 3

Programmering 1

Delmoment 2 Programmering 1
Inlämningsuppgift 2

Så här gör du för att lämna in din uppgift, klicka här

HEMLÄXA 2 - DELMOMENT 2

Betygsskala: F-A

I den här uppgiften kommer vi att jobba med selektion och iteration.

Uppgiften ska lämnas in i Exlearn. Lägg din/a källkodsfil/er (.cs) eller (.cpp) i en katalog. Komprimera katalogen i en ZIP-fil
och ladda upp ZIP-filen filen i Exlearn.

UPPGIFTEN BEHANDLAR FÖLJANDE CENTRALA INNEHÅLL

Programmeringsspråkets eller -språkens grundläggande datatyper samt fördefinierade strukturer, regler och syntax
Kontrollstrukturer till exempel sekvens, selektion och iteration, planerade med aktivitetsdiagram och skrivna i ett väl
implementerat programflöde
Variablers och konstanters synlighet och livslängd.

UPPGIFTEN BEHANDLAR FÖLJANDE CENTRALA INNEHÅLL

Din lösning kommer att bedömas utifrån följande punkter.

Lösningens överensstämmande med uppgiftsspecifikationen


Din säkerhet i val av variabeltyper, kontrollstrukturer och algoritmer och hur väl du motiverar valen
Hur användarvänligt ditt program är
Programmets stabilitet, säkerhet och prestanda
Kodens struktur och formatering samt hur väl du kommenterat och dokumenterat koden
Din egen utvärdering av din lösning utifrån ovanstående punkter

OBS! Skriv din dokumentation och utvärdering av din lösning som kommentarer i källkodsfilen eller om det behövs i ett separat
textdokument (som du i så fall skickar med i samma zip-mapp)

UPPGIFTER

Uppgifter: Välj en av de två följande uppgifterna

1. Uppgift Tåg

2. Uppgift Banksimulator

Du gör antingen uppgift 1 eller uppgift 2.


Välj den uppgiften du tycker är mest intressant att jobba med.

1. Uppgift 1 - Tåg. Betygsskala F - A

SJ följer de allmänna rekommendationerna från Folkhälsomyndigheten

Betygsskala: F-A

Skriv följande program:

SJ har anpassat sin trafik pga. coronaviruset. Man har ett begränsat antalet platser ombord på bokningsbara tåg för att skapa
mer utrymme för att kunna hålla avstånd och resa tryggare. Ett antal platser ombord kommer inte kunna bokas, detta för att
säkerställa att tåget inte blir för fullt.
SJ vill kontrollera om åtgärderna får önskat resultat. De ber sina förare att anteckna hur många passagerare som kliver på
respektive av vid varje station och hur många som får vänta på nästa tåg.

Du ska skriva ett program som kontrollerar att antal passagerare på tåget uppfyller kravet enlig specifikationen. Tåget ska vara
tomt vid start och avslut av resan. Inga passagerare ska vänta på perrongen vid sista stationen.

Inmatning

Den första inmatningen innehåller två heltal, tågets totala kapacitet och antal stationer tåget stannar vid.

1 ≤ kapacitet ≤ 40 // tågets kapacitet


2 ≤ antal_stationer ≤ 10 // antal stationer

Inmatningarna på övriga stationer består av tre heltal

stiger av= antal passagerare som lämnar tåget,


stiger på = antal passagerare som kommer in i tåget och
stannar = antal passagerare som blir tvungna att stanna kvar på en station.

Inmatningarna sker den ordning som tåget besöker stationerna. Alla heltal ligger mellan 0 och 40.

0 ≤ lämnar ≤ 40 // antalet passagerare som lämnar tåget


0 ≤ stiger_på ≤ 40 // antal passagerare som kommer in i tåget
0 ≤ stannar ≤ 40 // antal passagerare som stannar på stationen

Utmatning

En rad som innehåller ett ord: möjligt om inmatningar är konsekventa annars omöjligt.

Test

Testa gärna programmet med följande exempel på inmatningar.

Exempel 1:

Första inmatning Andra inmatning Tredje inmatning Utmatning

kapacitet = 1 stiger av= 0 stiger av= 1 Möjligt

antal stationer = 2 stiger på = 1 stiger på = 0

stannar = 1 stannar = 0

Exempel 2:

Första inmatning Andra inmatning Tredje inmatning Utmatning

kapacitet = 1 stiger av= 1 stiger av= 0 Omöjligt

antal stationer = 2 stiger på = 0 stiger på = 1

stannar = 0 stannar = 0

Exempel 3:

Första inmatning Andra inmatning Tredje inmatning Utmatning

kapacitet = 1 stiger av = 0 stiger av= 1 Möjligt

antal stationer = 2 stiger på = 1 stiger på = 0

stannar = 0 stannar = 0

Exempel 4:

Första inmatning Andra inmatning Tredje inmatning Utmatning

kapacitet = 1 stiger av= 0 stiger av= 0 Omöjligt

antal stationer = 2 stiger på = 1 stiger på = 0

stannar = 1 stannar = 0

En översiktlig beskrivning av algoritmen som kan användas för att lösa problemet.

Skriv pseudokoden till del del av programmet där antal passagerare inne på tåget räknas ut. Rita också flödesdiagram för den
delen av programmet.

Du kan rita flödessdiagram med följande programvara som du hittar online.

Visual Paradigm
https://online.visual-paradigm.com/

lucidchart
https://www.lucidchart.com/pages/

Här hittar du hjälp och video tutorial om hur man ritar flowcharts

https://www.gliffy.com/blog/guide-to-flowchart-symbols

Kompilera och kör programmet.

OBS! Skriv din dokumentation och utvärdering av din lösning som kommentarer i källkodsfilen eller om det behövs i ett separat
textdokument (som du i så fall skickar med i samma zip-fil).

Den allmänna beskrivningen av programmet skulle vara följande:

Deklaration av variabler och deras datatyp. Glöm inte variabel som anger om
inmatning av värden är möjligt eller inte..
Få indata från användaren, tågets kapacitet och antal stationer
Kontrollera att de inmatade variablers värden befinner sig inom intervallet.
Starta en loop som itererar från första till sista station.
Få indata från användaren, antal passagerare som steg av tåget, antal
passagerare som klev på tåget och antal passagerare som stannade vid stationen.
Kontrollera att de inmatade variablernas värden befinner sig inom intervallet,
annars är inmatning omöjlig.
Kontrollera att antal passagerare inne i tåget och vid perrongen uppfyller kravet
enlig specifikationen, annars inmatning är omöjlig.
Avsluta loopen.
Generera en utskrift om inmatning är möjligt eller omöjligt.
Programmet avslutas med en hälsning.

2. Uppgift 2 - Banksimulator. Betygsskala F - A

Skriv ett program som simulerar en bank. Man ska kunna sätta in pengar och ta ut pengar, kontrollera saldo,
samt räkna sparande efter ett visst antal år. Detta görs via en meny som du gör med en switch - sats.
[I]nsättning

[U]ttag

[S]aldo

[R]äntebetalning

[A]vsluta
Vid beräkning av räntebetalning ska programmet fråga efter ett årligt insättningsbelopp, en räntesats
och antal år man vill spara.
Programmet ska sedan med hjälp av en iteration (loop) räkna ut hur mycket pengar (saldo) man kan förvänta sig att ha på kontot efter
de år man vill spara.
I beräkningsformeln ska det ingå årsparande (insättning) och årsavkastning (ränta).

Ett exempel på hur pengarna växer vid sparande:


Om du får 10 % avkastning på 100 kr, då ökar dina 100 kr med 10 kr, till 110 kr.
Nästa år, om du får 10 % avkastning igen, då ökar dina pengar från 110 kr till 121 kr. En ökning med 11 kr, en krona mer än första
året. Andra årets ökning på 11 kr kommer dels på grundinvesteringen på 100 kr och dels på första årets avkastning på 10 kr.
Skriv pseudokod till switchsatsen i menyn. Rita också flödesdiagram.
Skriv pseudokod till beräkning av räntebetalning, dvs den delen av programmet som räknar saldot efter ett
visst antal år med en specifik räntesats. Rita också flödesdiagram.
Den allmänna beskrivningen av programmet skulle vara följande:

Deklaration av variabler och deras datatyp


Få indata från användaren, saldo, insattning, uttag, insättning/år, räntesats, antal_år.
Kontrollera att de inmatade värden är större än noll med hjälp av if-satser.
Utskriften av meny med hjälp av switch - satsen
Beroende på användarens val beräkning av saldo vid insättning, uttag eller ränteutbetalning vid
sparande eller utskrift av aktuellt saldot.
Programmet avslutas med en hälsning

Kompilera och kör programmet.

Du kan rita flödesdiagram med följande programvara som du hittar online.

Visual Paradigm
https://online.visual-https://online.visual-paradigm.com/

Lucidchart
https://app.lucidchart.com/documents#/dashboard?folder_id=home&browser=icon

OBS! Skriv din dokumentation, flödesdiagram, pseudokoden och utvärdering av din lösning som
kommentarer i källkodsfilen eller, om det behövs, i ett separat textdokument (som du i så fall skickar
med i samma zip-fil).

©-Exlearn - 2024

You might also like