summaryrefslogtreecommitdiff
path: root/python/problems/while_and_if/minimax/sl.py
blob: 0d934b8fa5566789bb24ce45549d354bf4b4a8af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# coding=utf-8
import server
mod = server.problems.load_language('python', 'sl')

name = 'Blagajna "minimax"'
slug = 'Blagajna "minimax"'


description = '''\
<p>Popravite prejšnji program tako, da poleg vsote in povprečne cene izpiše še najnižjo in najvišjo ceno.</p>
<pre>
Cena artikla: 2
Cena artikla: 4
Cena artikla: 1
Cena artikla: 0
Vsota: 7
Poprečna cena: 2.33333333333
Najnižja cena: 1
Najvišja cena: 4
</pre>
'''

main_plan = ['''\
<p>Plan:</p>
<pre>
1. Ponavljaj dokler je cena večja od 0:
    2. Preberi ceno.
    3. Prištej vsoti.
    4. Posodobi najmanjšo in največjo ceno.
4. Izpiši vsoto, povprečje, najmanjšo in največjo vrednost.
</pre>''']

while_condition = ['''\
<p>Koliko korakov naj naredi zanka?</p>''',
                   '''\
<p>Ne vemo, koliko korakov naj naredi zanka. Vemo pa,
kdaj se bo zanka ustavila: ko bo cena enaka 0!</p>'''
                   '''\
<pre>
while cena != 0:
    ...
</pre>'''
]

minimax = ['''\
<p>V vsaki iteraciji posodobi največjo in najmanjšo ceno</p>''',
           '''\
<p>Če je trenutna cena manjša od najmanjše, potem je to nova najmanjša ...</p>''',
           '''\
<pre>
if cena < min_cena:
    min_cena = cena
</pre>'''
]

plan = [main_plan,
        while_condition,
        minimax]

while_clause = ['''\
<p>Uporabi zanko <while</p>''',
         '''\
<pre>
while Pogoj:
    stavek 1
    stavek 2
    ...
stavek n # stavek izven while.
</pre>''',
         '''\
<p>Stavki znotraj while (zamaknjeni) se izvajajo toliko časa, dokler velja <code>Pogoj</code>.
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.</p>'''
        ]

hint = {
    'while_clause': while_clause,

    'while_condition': while_condition,

    'average': ['''\
<p>Formula za povprečje: povp = vsota / št.elementov</p>''',
                '''\
<p>Vsoto že znamo izračunati, za št. elementov pa potrebujemo števec.'''],

    'printing': ['''\
<p>Izpiši rezultat!</p>''',
                 '''\
<p> V Pythonu izpisujemo s funkcijo <code>print</code>. <p>''',
'''<p>Pazi, da stavek s <code>print</code> ne bo zamaknjen, saj bo v takem
primeru del while-a in se bo večkrat izpisal. </p>'''],

    'nonumber': ['''<p>Izpiši vsoto<p>'''],

    'minimax': minimax,

    'name_error' : [mod.general_msg['error_head'],
                    mod.general_msg['general_exception'],
                    mod.general_msg['name_error'],
                    '''\
<p>Verjetno v pogoju uporabljaš nedefinirano spremenljivko.''',
                    '''\
<pre>
cena = 1
while cena != 0:
    ...'''],

    'problematic_test_case': ['''\
<p>Zaporedje cen, kjer program ne dela prav: [%=testin%]<br>
Pravilna vsota [%=sum%], pravilno povprečje: [%=avg%], min: [%=min%], max: [%=max%]</p>''']

}