import server mod = server.problems.load_language('python', 'sl') name = 'Klub anonimnih potrošnikov' slug = 'Klub anonimnih potrošnikov' description = '''\
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.''' main_plan = ['''\
Plan je enak kot pri prejšnjih nalogah: while zanka + izpis števca in vsote.
'''] while_condition = ['''\Pogoj v zanki while
bo sestavljen iz več pogojev.
V Pythonu združujemo pogoje z logičnimi operatoriji and
,
or
in not
Zanka se ustavi, če presežemo 100 EUR, če smo vpisali 0 ali kupili 10 stvari. Vendar pazite: napisati moramo pogoj, kdaj se zanka nadaljuje!
''', '''\cena != 0 and vsota < 100 and artiklov < 10'''] plan = [main_plan, while_condition] while_clause = ['''\
Uporabi zanko Stavki znotraj while (zamaknjeni) se izvajajo toliko časa, dokler velja Izpiši rezultat! Izpiši vsoto in število produktov. '''],
'summation': [''' Seštevanje cen ne deluje pravilno. '''],
'counting': [''' Napaka pri štetju stvari. '''],
'counting_with_0': [''' Napaka pri štetju, kadar je zadnja cena 0. ''',
''' Števec povečaj, le če je cena > 0 Verjetno v pogoju uporabljaš nedefinirano spremenljivko.'''],
'problematic_test_case': ['''\
Zaporedje cen, kjer program ne dela prav: [%=testin%] Odlično! Naloga rešena. Verjetno se zanka izvede prevečkrat. Preveri pogoj!
while Pogoj:
stavek 1
stavek 2
...
stavek n # stavek izven while.
''',
'''\
Pogoj
.
Ko pogoj ne velja več, Python preskoči vrstice, ki so del while-a in nadaljuje s stavki, ki sledijo – v
našem primeru s stavkom n.
Pravilna vsota [%=sum%], pravilno število stvari: [%=count%]'''],
'final_hint': ['''\
Še zanimivost: v while zanki smo dobili ustavitveni pogoj tako, da smo negirali pogoj iz teksta (ali vnesemo 0 ali je
vnešenih deset števil ali ko vsota cen doseže ali preseže 100 evrov). Pri tem smo ali (or) spremenili v in (and):
cena > 0 and stevec < 10 and vsota < 100
. Temu pravimo De Morganov zakon.