# coding=utf-8 import server server.problems.load_language('python', 'sl') id = 185 name = 'Blagajna "vse po pet"' slug = 'Blagajna "vse po pet"' description = '''\

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
''' bad_solution = ['''\

Slaba rešitev:

cena1 = float(input('Cena artikla: '))
cena2 = float(input('Cena artikla: '))
cena3 = float(input('Cena artikla: '))
cena4 = float(input('Cena artikla: '))
cena5 = float(input('Cena artikla: '))
vsota = cena1+cena2+cena3+cena4+cena5
print ("Vsota: " + vsota)
''', '''\

Rešitev je slaba, saj imamo pet enakih vrstic! Ponavljanje programske kode pa velja za slabo prakso. Bolje bo, če uporabimo zanke.

'''] plan = ['''\

Plan

Ponavljaj 5x:

  1. Preberi ceno
  2. Prištej vstoti

Izpiši vsoto

'''] while_clause = ['''\

Kako bi prebrali 5 cen z uporabo zanke while?

''', '''\

Zanka while ima naslednjo sintakso:

while Pogoj:
    stavek 1
    stavek 2
    ...
stavek n # stavek izven while.
''', '''\

Stavki znotraj while (ki so zamaknjeni) se izvajajo toliko časa, dokler velja Pogoj v glavi stavka while. 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.

''' ] reading_while = ['''\

Za večkratno branje želimo uporabiti zanko:

''', '''\
while ____:
cena = float(input('Cena artikla: '))

Kakšen je pogoj?

''', '''\ Izmisliti si moramo pogoj, ki bo resničen 5 korakov, potem pa ne več. Običajni trik v takih primerih je uporaba števca. ''', '''\ Števec je spremenljivka, ki se v zanki vsakič poveča za ena - torej šteje''', '''\
stevec = 0
while _________:
    cena = float(input('Cena artikla: '))
    stevec += 1

Imaš zdaj morda idejo, kakšen naj bo pogoj?

''', '''\
while stevec < 5:
'''] summation = ['''\

Računanje vsote bo najlažje sproti v zanki.

''', '''\

Izmisli si spremenljivko, ki bo predstavljala vsoto, jo na začetku (pred zanko) nastavi na 0 in ji v vsakem koraku prištej trenutno ceno. Podobno kot števec.

''' ] hint = { 'plan':[bad_solution, plan, while_clause, reading_while, summation], 'printing': ['''

V Pythonu izpisujemo s funkcijo print

.''', '''

Pazi, da stavek s print ne bo zamaknjen, saj bo v takem primeru del while-a in se bo večkrat izpisal.

'''], 'name_error' : [general_msg['error_head'], general_msg['general'], general_msg['name_error'], '''\

Verjetno uporabljate spremenljivko, ki nima nastavljene vrednosti.''', '''\

Morda v pogoju uporabljate spremeljivko, ki ni definirana

'''], 'type_error' : [general_exception['error_head'], general_exception['general'], general_exception['type_error']], 'error' : [general_exception['error_head'], general_exception['general'],] }