Den här uppgiften går ut på att skriva en del av mjukvaran i en större godisautomat.
Förmågor | E | C | A |
---|---|---|---|
Aktivitetsdiagram och pseudokod | Du använder pseudokod och/eller aktivitetsdiagram för att planera dina uppgifter utifrån exempel, eller i samråd med utbildaren. | Som för E, men utan exempel eller handledning |
Förmågor | E | C | A |
---|---|---|---|
Grundläggande syntax | Du kan redogöra för och använda programmeringsspråkets grundläggande syntax | ||
Villkor och IF-satser | Du kan redogöra för och använda villkor och IF-satser |
Förmågor | E | C | A |
---|---|---|---|
Komplexitet | Du kan skriva enkla program | Du kan skriva lite mer avancerade program | Du kan skriva komplexa program |
Sekventiell- & funktionsbaserad programmering | Du använder dig av sekventiell programmering och fördefinerade funktioner | Du skapar och använder enkla funktioner | Du skapar mer komplexa funktioner |
Struktur | Du skriver kod som är delvis strukturerad, har en konsekvent kodningsstil och tydlig namngivning | Som för E, men du skriver kod som är helt strukturerad | |
Felsökning | Du felsöker på egen hand enkla syntaxfel | Som för E, men systematiskt, och dessutom även körtidsfel och programmeringslogiska fel | Som för C, men med effektivitet |
Du har fått i uppdrag att skriva ett program som returnerar rätt vara i en godisautomat, beroende på val.
Som du vet väljer man ett nummer och stoppar i mynt till rätt värde, om nummret finns och pengar räcker leveras varan i form av en sträng. ex "Choklad"
Räcker inte pengarna till vald vara returnas strängen "Tyvörr för lite pengar" Om du har matat in för mycket pengar, lägger automaten till "Tack,Tack"
Aktuella varor lagras i en fil vending_storage.csv, med just nu följande varor.
Nr | Vara | Pris |
---|---|---|
1 | Choklad | 10 kr |
2 | Festis | 8 kr |
3 | Käck | 5 kr |
4 | Bilar | 15 kr |
Skriv en funktion handla
som tar en vara och antal kronor som argument,
och returnerar rätt vara.
Gör en fork
av repot. Klona sen ner till din dator
Innan du börjar koda ska du skapa ett flödesschema för programmet. När du känner att du har ett fungerande flödesschema, be läraren att kolla på det.
Programmet skall utvecklas med hjälp av testerna.
Skapa funktionen handla
i lib/vending_machine.rb.rb
Testerna finns i spec/article_spec.rb
.
Kör rspec
för att köra testerna.
Skapa funktionen handla
i lib/godisautomat.py
Testerna finns i test/test_godisautomat.py.py
Kör nosetests --rednose test/test_godisautomat.py
för att köra testerna.
- Om du inte kan beskriva lösningen i ord kommer det vara så gott som omöjligt att skapa ett flödesschema
- Fundera på vilka variabler som behövs
- Testa flödesschemat med hjälp av penna och papper
Läs mer om villkor och if-satser i övning 27-30 i Learn Ruby the Hard Way
- Learn Ruby the Hard Way - Exercise 27: Memorizing Logic
- Learn Ruby the Hard Way - Exercise 28: Boolean Practice
- Learn Ruby the Hard Way - Exercise 29: What If
- Learn Ruby the Hard Way - Exercise 30: Else and If
Läs mer om villkor och if-satser i övning 27-30 i Learn Python the Hard Way