summaryrefslogtreecommitdiff
path: root/python/problems/lists_and_for/calculator_polish/sl.py
blob: b7ff8a137803d64d95628f6d1e22a45df03c77cc (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
# coding=utf-8
import server
mod = server.problems.load_language('python', 'sl')


id = 224
name = 'Kalkulator v inverzni poljski notaciji'
slug = 'Kalkulator v inverzni poljski notaciji'


description = '''\
<p>
V <a href="http://en.wikipedia.org/wiki/Reverse_Polish_notation">inverzni poljski ali postfiksni notaciji</a> ne potrebujemo oklepajev:
računska operacija sledi številoma in se vedno izvede takoj ter zamenja predhodni števili in operacijo z rezultatom operacije.

Poglejmo si računanje <code>(3 + 5) * 2 - 10 * (2 - 1)</code> ali postfiksno <code>3 5 + 2 * 10 2 1 - * -</code>:

<ul>
<li> Beremo vhod do prve operacije. </li>
<li> <code>3 5 + </code>; izvede se seštevanje, tri elemente zamenja rezultat 8, beremo dalje. </li>
<li> <code>8 2 * </code>; rezultat je 16, beremo dalje.</li>
<li> <code>16 10 2 1 -</code>; rezultat 1, beremo dalje.</li>
<li> <code>16 10 1 *</code>; rezultat 10, beremo dalje.</li>
<li> <code>16 10 -</code>; rezultat 6, beremo dalje.</li>
<li> <code>6</code>; vhoda je konec zato se se računanje ustavi.</li>
</ul>
Napišite kalkulator s celoštevilskimi operacijami seštevanja, odštevanja, množenja, deljenja in izračunom ostanka,
ki prejme vhod v inverzni poljski notaciji. Ko uporabnik ne poda ničesar (pritisne le enter), naj se program zaključi.
Števila ter operande ločujte s presledkom.
<pre>
Izraz: 3 5 +
Rezultat: 8

Izraz: 16 5 %
Rezultat: 1

Izraz: 16 5 /
Rezultat: 3

Izraz: 3 3 3 + +
Rezultat: 9

Izraz: 3 5 + 2 * 10 2 1 - * -
Rezultat: 6

Izraz:
</pre>
</p>'''

plan = ['''\
<p></p>
''',
        '''\
<p></p>''']

hint = {
    'final_hint': ['''\
<p>Program je pravilen! <br>
</p>
'''],
}