summaryrefslogtreecommitdiff
path: root/python/problems/introduction/average/sl.py
blob: 2824320dc804d50ce82cb277036232cc4045840d (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
# coding=utf-8

id = 189
name = 'Povprečna ocena'
slug = 'Povprečna ocena'

description = '''\
<p>Napiši program, ki mu uporabnik vpiše oceno, ki so jo pri matematiki dobili Ana, Benjamin in Cilka.
Program naj izračuna in izpiše povprečno oceno ter srednjo vrednost. Sprogramiraj slednjo brez
uporabe pogojnih stavkov ali česa podobno "naprednega". Konkretno, uporabljaj le funkcije input,
print, min in max. Namig: min in max lahko prejmeta poljubno število argumentov. Pomisli tudi na
to, da imaš samo tri osebe; pri štirih ta trik ne bi vžgal. Primer izvajanja programa:</p>
<pre>
Ocena [Ana]? 2
Ocena [Benjamin]? 4
Ocena [Cilka]? 5
Povpreče: 3.6666666666666665
Srednja vrednost: 4.0
</pre>
'''

general_exception = {
    'error_head' : '''\
<p>Napaka:</p>
<pre>
[%=message%]
</pre>
''',

    'general': '''
    <p>Pri razumevanju napake sta pomembni dve vrstici. V predzadnji vrstici je napisana lokacija
    napake (line ...), v zadnji vrstici pa izvemo za kakšno napako gre.</p>
    ''',

    'name_error' : '''
    <p>Napaka <code>NameError</code> pomeni, da uporabljate nedefinirano vrednost:
    ali vrednost spremenljivke ni določena ali uporabljate funkcijo, ki ni uvožena.</p>
    ''',

    'type_error': '''
    <p>TypeError napaka pomeni, da želite izvesti operacijo na nedovoljenih tipih.
    Npr., če želite sešteti niz in število ali klicati funkcijo, čeprav tisto ni funkcija, itd. .</p>
    ''',
}

hint = {
    'plan': '''\
<p>Ista strategija kot pri predhodnih nalogah: 1) preberi ocene Ane, Benjamina in Cilke, 2) izračunaj
povprečno vrednost in srednjo vrednost ter 3) izpiši.</p>
''',

    'average': '''
<p>Povprečje izračunamo kot vsoto vseh elementov, ki jo delimo s številom elementov. Konkretno v
našem primeru:</p>
<pre>
p = (a + b + c) / 3
</pre>
''',

    'median': '''
<p>Če imamo samo 3 vrednosti in odstranimo najmanjšo in največjo vrednost, nam ostane srednja
vrednost. V programu to najlažje izvedemo tako, da vrednosti seštejemo in potem vsoti odštejemo
najmanjšo in največjo vrednost.</p>
''',
    
    'printing': '''
<p> V Pythonu izpisujemo s funkcijo <code>print. Če želimo izpisati več elementov, 
jih ločimo z vejico.  Recimo, da imamo spremenljivko <code>ime</code>, 
ki vsebuje naše ime, potem lahko napišemo:
<pre>
print("Ime mi je", ime, ".")
</pre>''',

    'name_error' : [general_exception['error_head'], general_exception['general'],
    general_exception['name_error'], '''
    <p>Verjetno uporabljate spremenljivko, ki nima vrednosti. Ali v izrazu za izračun
     uporabljate napačno spremenljivko? Ali pri izpisu morda poskušate
     izpisati napačno spremenljivko?</p>'''],

    'type_error' : [general_exception['error_head'], general_exception['general'],
    general_exception['type_error'], '''
<p>Verjetni razlog: funkcija <code>input</code> vrača vrednost tipa niz,
ki jo moramo najprej pretvoriti v tip <code>float</code>, če želimo z njo računati:</p>
<pre>
v = float(input(" ...
</pre>
'''],

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