Program som räknar ut växel man ska få tillbaka efter att ha handlat varor

Permalänk
Medlem

Program som räknar ut växel man ska få tillbaka efter att ha handlat varor

Hej alla glada!

Jag har väldigt svårt att komma igång med en hemuppgift jag fått av läraren.

""Skriv ett program som beräknar växeln man får tillbaka efter att man har betalat för sina varor. Vid utskriften anges vilka sedlar och mynt som köparen får. Inmatningen ska vara priset som ska betalas och beloppet köparen har betalat. Programmet ska skriva ut antal 1000-, 500-, 100-, 50- och 20- sedlar och antal 10-, 5-, 1- kronor man får som växel""

Det står still i mitt huvud och jag vet inte hur jag ska börja, vad behöver jag deklarera, ska jag använda loop eller arrays? Jag har helt enkelt hjärnsläpp..

Jag vill inte att ni gör uppgiften åt mig utan behöver bara en spark i ruumpan.

Trevlig helg.

MVH Tobias

Permalänk
Medlem

Du behöver ju räkna ut faktiskt växel och sen skulle jag nog kört mod(valör) på det.

Skickades från m.sweclockers.com

Permalänk
Medlem

Lite snabba tankar:

Enklast blir att bestämma ett fall:

Köparen har 3 varor där totaltpriset blev 450kr.
Köparen betalade med en femhundring.

500-450=50kr.

Jag antar att du då ska skriva ut:

1000:0
500:0
100:0
50:1
10:0
5:0
1:0

Du behöver alltså jämföra och se vad växeln är delbar med. Är t ex 50 jämt delbart? Kolla på modulus operatorn.

Visa signatur

Citera för svar

Permalänk
Medlem

Det finns flera sätt att lösa detta: Modulus-operatorn är den finare versionen. Det går även att lösa på annat vis. Jag vill inte lösa uppgiften åt dig i kod, men jag kan ge dig den fulare lösningen i (väldigt)pseudo-kod så får du själv lista ut den finare

Tänk så här:

Du har en betalning och ett pris. Börja med att ta reda på restbeloppet (det som ska betalas tillbaka, 'växeln'). Därefter ska du dela upp detta i så stora valörer som möjligt. Kanske det går att lösa med en sorterad lista över vilka valörer som finns? (500, 200, 100, 50, 20, 10, 5, 1)? Det går självklart även att hårdkoda dessa, i vissa fall är det bättre att bara få det gjort. Men tänk på fördelarna och nackdelarna med lösningarna oavsett vilken du implementerar. Därefter vill du ha så få sedlar/mynt så du måste börja med det högsta värdet. Om det går att dra av det från växeln så kan du göra det och notera det eller skriva ut vilka sedlar du dragit bort. Sedan repeterar du detta tills det inte finns kvar någon växel. Här rekommenderas självklart en loop.

Hoppas jag inte har spoilat för mycket. Som sagt, jag rekommenderar att du först implementerar ovan simpla version och sedan försöker lösa det med modulus i stället. Programmering kräver en hel del arbete för att bli duktig på så det är inget fel att göra övningen två gånger med målet att förbättra den andra gången.

Kör hårt,

//L