Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Ume universitet, 901 87 Ume

Institutionen fr datavetenskap
Programmeringsteknik med C och Matlab, 7,5 hp
Obligatorisk uppgift 1

Specifikation
2016-08-17

Sid 1 (4)

Obligatorisk uppgift 1
Shopping assistant
Introduktion
Nr man ker utomlands och handlar i en affr vill man ofta veta vad det man handlar dels kommer att kosta
i den lokala valutan och dels vad det kostar i svenska kronor. I denna uppgift ska en enkel shoppingassistent
implementeras. Uppgiften ska lsas enskilt.

Syfte
Syftet med uppgiften r att examinera delar av fljande frvntade studieresultat:

Omvandla givna enkla algoritmer till de aktuella programsprken (FSR 3)


Frst och anvnda sig av variabler, uttryck och kontrollstrukturer i ett hgnivsprk (FSR 4)
Anvnda sig av grundlggande datatyper, arrayer och strngar samt knna till deras begrnsningar
(FSR 7)

Vid det tillhrande kodgranskningstillfllet ges ven mjlighet att trna p delar av fljande frvntade
studieresultat:

Kunna tolka och beskriva programfldet hos program, inklusive sdana som innehller rekursiva
funktioner (FSR 1)
Visa att man frstr principerna fr felskning genom att kunna utfra felskningar (FSR 8)

Specifika delar som ingr i uppgiften:

Inlsning frn tangentbord och utskrift till skrm


Val av alternativ
Repetitioner
Aritmetik

Ume universitet, 901 87 Ume


Institutionen fr datavetenskap
Programmeringsteknik med C och Matlab, 7,5 hp
Obligatorisk uppgift 1

Specifikation
2016-08-17

Sid 2 (4)

Uppgift
Din uppgift r att skriva ett program som lser in priser i aktuell utlndsk valuta och sedan presenterar
summan av priserna i aktuell valuta och i svenska kronor. Anvndaren ska kunna ange vxlingskurs.
Nedan visas hur interaktionen med anvndaren ska se ut. Inga vxlingsavgifter anvnds.

Your shopping assistant


1. Set exchange rate in SEK (current rate: 1.00)
2. Read prices in the foreign currency
3. End
Give your choice (1 - 3): 1
Give exchange rate:

9.71

1. Set exchange rate in SEK (current rate: 9.71)


2. Read prices in the foreign currency
3. End
Give your choice (1 - 3): 4


Not a valid choice!
1. Set exchange rate in SEK (current rate: 9.71)
2. Read prices in the foreign currency
3. End
Give your choice (1 - 3): 2
Give price (finish with < 0): 2.75
Give price (finish with < 0): 3.50
Give price (finish with < 0): -23
Sum in foreign currency: 6.25
Sum in SEK: 60.69
1. Set exchange rate in SEK (current rate: 9.71)
2. Read prices in the foreign currency
3. End
Give your choice (1 - 3): 3
End of program!

Ume universitet, 901 87 Ume


Institutionen fr datavetenskap
Programmeringsteknik med C och Matlab, 7,5 hp
Obligatorisk uppgift 1

Specifikation
2016-08-17

Sid 3 (4)

Algoritm
Fljande algoritm ska anvndas i programmet:
1. S lnge anvndaren inte valt att avsluta programmet, upprepa fljande:
1.1. Skriv ut menyn och ls in val
1.2. Om valet r att stta valutakurs
1.2.1. Stt valutakurs
1.3. Om valet r att lsa in priser
1.3.1. S lnge anvndaren inte vill avsluta inmatningen
1.3.1.1.
Efterfrga pris eller klar med inmatning, samt om det r ett giltigt pris
1.3.1.2.
Uppdatera summan
1.3.2. Skriv ut summan i lokal valuta och i svenska kronor
1.4. Om ogiltigt val
1.4.1. Skriv ut att det var ett ogiltigt val
2 Avsluta programmet

Krav p lsningen
Hr nedan finns det ett antal krav som programmet ska uppfylla av praktiska skl:

All utskrift p skrm ska se exakt ut som enligt ovanstende exempel.


Kllkodsfilen ska heta ou1.c.
I den beskrivande texten i filen ska du skriva ditt namn och din cs-anvndare.
Programmet ska kompileras med kompilatorn gcc med flaggorna Wall och std=c99.

Programmet behver bara hantera korrekt indata. Ingen validering av indata krvs, frutom att det ska g att
anvnda programmet p det stt som illustreras i ovanstende exempel frn krning av programmet. Om du
vljer att validera data ska valideringen vara korrekt.

Resurser
Till ert frfogande fr att lsa uppgiften finns det ett antal datorer och ett antal handledningstillfllen i
laborationssal (tider framgr i schema). Det r tilltet att lsa laborationen p annan plats, till exempel
hemma, men tnk p att programmet ska kompileras och vara krbart p institutionens linuxdatorer.

Redovisning
Uppgiften redovisas genom att lmna in kllkodsfilen via webbgrnssnittet, se adress p kursens hemsida,
senast onsdag den 5 oktober 17.00. Mjlighet till uppdaterad inlmning efter kodgranskningstillfllet ges till
senast fredag den 7 oktober 17.00. Kompletterings och uppsamlingsdatum framgr i Cambro.


Tips
Hr fljer ngra tips som kan hjlpa till:

Brja med att frst uppgiften, vad ska gras, vilka krav finns det, vad ska lmnas in, etc.
Skapa kllkodsfilen och skriv in algoritmer och beskrivande text.
Utveckla programmet stegvis, ett frslag r att skriva interaktionsdelen frst.
Frsk att testa varje steg utfrligt innan nsta steg tas och kom ihg att testa att tidigare steg
fortfarande fungerar nr nsta steg testas.
Nr du vill ha hjlp av handledare, var beredd p att frst frklara vad du vill uppn/gra och hur du
tnkt gra det i koden.

Ume universitet, 901 87 Ume


Institutionen fr datavetenskap
Programmeringsteknik med C och Matlab, 7,5 hp
Obligatorisk uppgift 1

Specifikation
2016-08-17

Sid 4 (4)

Bedmningskriterier
Den inlmnade lsningen kommer att bedmas enligt fljande kriterier:
Kriterium
Kompilering
Testkrning/
Korrekthet
Kommentarer

Godknd
Utan varning
Utan fel

Godknd med anmrkning


Mindre allvarlig
Mindre fel

Informativa
Lagom omfattning
Konsekvent sprk
Algoritmen plus eventuella
ndvndiga utkningar
Korrekt

Fr lite eller fr mycket


Saknar viss information
Otydliga
Upprepar koden
Ej konsekvent sprk
Ngot fel

Variabeldeklaration

Konsekvent
Olika datatyper p olika
rader

Variabelnamn

Bra namn
Konsekvent namngivning
Bra struktur
Bra val av villkor

Olika datatyper p samma


rad
Blandning av deklaration i
brjan och vid behov
Mindre bra namn
Ej konsekvent namngivning
Villkorsoperatorn anvnds
Allt p en rad
Mindre bra val av villkor
Mindre bra val av loopkonstruktion
Mindre bra val av villkor
Fall av inkonsekvent
placering av msvingar
Msvingar saknas
Fler n en return-sats
exit() anvnds
Annat n 0 returneras
Mindre avvikelse frn
algoritm

Indentering

Valstrukturer
Loopstrukturer

Bra val av loop-konstruktion


Bra val av villkor

Programstruktur

Msvingar placeras
konsekvent
Msvingar anvnds till alla
val- och loop-konstruktioner

Algoritm

Fljer given algoritm

Ofullstndig
Allvarlig
Felaktig output
Rknar fel
Missvisande
Saknar ndvndig
information
Saknas
Mnga fel
Visar tecken p att ej frst
varfr och hur man
indenterar
Felaktig

Missvisande namn
Olmpliga namn
Felaktiga villkor
Felaktiga villkor
break och continue
anvnds i ondan
Msvingar placeras hur som
helst
Globala variabler
Kommandona goto
och/eller longjmp anvnds
Fljer ej algoritm

You might also like