Naloge

Blagajna "vse po pet"

V trgovini "vse po pet" morajo stranke vedno kupiti natanko pet artiklov. Za blagajne zato potrebujejo programsko opremo, ki uporabnika (blagajnika) vpraša po petih cenah; ko jih le-ta vnese, program izpiše vsoto.

Cena artikla: 2
Cena artikla: 4
Cena artikla: 1
Cena artikla: 6
Cena artikla: 3
Vsota: 16

Rešitev Nalogo bi sicer lahko rešili tako

a = int(input('Cena artikla: '))
b = int(input('Cena artikla: '))
c = int(input('Cena artikla: '))
d = int(input('Cena artikla: '))
e = int(input('Cena artikla: '))

print('Vsota:', a + b + c + d + e)

ampak nas potem nihče ne bi jemal resno. Elegantnejša rešitev uporabi zanko while

vsota = 0
i = 0
while i < 5:
    vsota += int(input('Cena artikla: '))
    i += 1
print('Vsota:', vsota)

ali zanko for.

vsota = 0
for i in range(5):
    vsota += int(input('Cena artikla: '))
print('Vsota:', vsota)

Jaz bi v tem primeru gotovo izbral zanko for, saj je z njo rešitev krajša in bolj pregledna.

Blagajna "konkurenca"

Konkurenčna trgovina za vogalom se je odločila za posebno ponudbo: kupec lahko kupi toliko izdelkov, kolikor želi. Popravi gornji program tako, da blagajnika najprej vpraša, koliko izdelkov je v košarici, nato vpraša po cenah teh izdelkov in na koncu spet izpiše vsoto.

Število izdelkov: 3
Cena artikla: 2
Cena artikla: 4
Cena artikla: 1
Vsota: 7

Rešitev Tokrat smo primorani uporabiti zanko, saj vnaprej ne vemo kolikokrat bomo uporabnika povprašali po ceni. Odločimo se lahko za zanko while

vsota = 0
i = int(input('Število izdelkov: '))
while i > 0:
    vsota += int(input('Cena artikla: '))
    i -= 1
print('Vsota:', vsota)

ali for zanko

vsota = 0
for i in range(int(input('Število izdelkov: '))):
    vsota += int(input('Cena artikla: '))
print('Vsota:', vsota)

Blagajna "top shop"

Tretja trgovina se je odločila, da bo konkurirala drugi tako, da bo imela na blagajnah krajše vrste kot druga, pri kateri se plačevanje odvija počasi zato, ker morajo blagajniki prešteti izdelke preden lahko začnejo vnašati njihove cene. Popravi program tako, da ne vpraša po številu izdelkov, temveč sprašuje po cenah toliko časa, dokler mu blagajnik ne vnese ničle.

Cena artikla: 2
Cena artikla: 4
Cena artikla: 1
Cena artikla: 0
Vsota: 7

Rešitev Za to nalogo je najbolj primerna zanka while.

vsota = 0
# Spremenljivko cena najprej nastavimo na 1, da se zanka sploh
# začne izvajati.
cena = 1
while cena != 0:
    cena = int(input('Cena artikla: '))
    vsota += cena
print('Vsota:', vsota)

Državna agencija za varstvo potrošnikov

Zaradi poplave sumljivih trgovin za vogali se je Državna agencija za varstvo potrošnikov odločila nadzorovati povprečne cene izdelkov v košaricah strank. Popravi zadnji program tako, da bo izpisal tudi povprečno ceno.

Cena artikla: 2
Cena artikla: 4
Cena artikla: 1
Cena artikla: 0
Vsota: 7
Povprečna cena: 2.33333333333

(Ne vznemirjaj se zaradi grdega izpisa cene; državni uradniki so natančni in želijo vedeti vse do zadnje decimalke!)

Rešitev Dodati moramo spremenljivko, ki šteje artikle.

artiklov = -1
vsota = 0
cena = 1
while cena != 0:
    cena = int(input('Cena artikla: '))
    vsota += cena
    artiklov += 1
print('Vsota:', vsota)
print('Povprečna cena:', vsota / artiklov)

Tekoči račun

Državna agencija za varstvo potrošnikov je razpisala projekt za izdelavo programa, s katerimi bodo lahko potrošniki nadzorovali svoje tekoče račune. V program uporabniki vtipkavajo prejemke in izdatke (kot pozitivne in negativne zneske) na svojem tekočem računu. Program jim sproti izpisuje stanje in se ustavi, ko je uporabnik v minusu za 100 evrov ali več.

Sprememba 23
Stanje 23
Sprememba 15
Stanje 38
Sprememba -30
Stanje 8
Sprememba 10
Stanje 18
Sprememba 100
Stanje 118
Sprememba -200
Stanje -82
Sprememba -50
Stanje -132
Bankrot

Rešitev

stanje = 0
while stanje > -100:
    stanje += int(input('Sprememba '))
    print('Stanje', stanje)
print('Bankrot')

Klub anonimnih potrošnikov

Razpas trgovin je pripeljal do zasvojenosti z nakupovanjem. Ena od metod zdravljenja temelji na inteligentnih košaricah, ki sprejmejo največ deset artiklov; po tem se zaklenejo in jih lahko kupec le še odnese na blagajno. Prav tako se zaklenejo, če cena artiklov doseže (ali preseže) 100 evrov.

Napiši program, ki mu uporabnik vnaša cene in ki se neha izvajati, ko uporabnik vnese 0 (ne bo več kupoval), ko je vnešenih deset števil ali ko vsota cen doseže ali preseže 100 evrov.

Cena: 10
Cena: 5
Cena: 0
Porabili boste 15 evrov za 2 stvari.

Pazite, uporabnik je kupil dve stvari, čeprav je vnesel tri cene!

Cena: 10
Cena: 5
Cena: 90
Porabili boste 105 evrov za 3 stvari.

Cena: 1
Cena: 1
Cena: 1
Cena: 1
Cena: 1
Cena: 1
Cena: 1
Cena: 1
Cena: 1
Cena: 1
Porabili boste 10 evrov za 10 stvari.

Rešitev

artiklov = 0
vsota = 0
cena = 1
while cena != 0 and vsota < 100 and artiklov < 10:
    cena = int(input('Cena: '))
    vsota += cena
    artiklov += 1

if cena == 0:
    artiklov -= 1

print('Porabili boste', vsota, 'evrov za', artiklov, 'stvari.')

Last modified: Friday, 16 October 2020, 12:57 PM