summaryrefslogtreecommitdiff
path: root/python/problems/introduction/fahrenheit_to_celsius/sl.py
blob: 5b12d26c55d7aea1b3aee2c576ce4f19a3597e59 (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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# coding=utf-8
import server
mod = server.problems.load_language('python', 'sl')

id = 180
name = 'Pretvarjanje iz Fahrenheitov v Celzije'
slug = 'Pretvarjanje iz Fahrenheitov v Celzije'

description = '''\
<p>Napiši program, ki mu uporabnik vpiše temperaturo v Fahrenheitovih
stopinjah, program pa jo izpiše v Celzijevih. Med temperaturama pretvarjamo po
formuli C = 5/9 (F – 32).</p>'''

no_input_call = ['''\
<p>Uporabnika lahko nekaj vprašamo s funkcijo <code>input</code>.</p>''',
                 '''\
<p>Funkcija
<code>input</code> sprejme kot argument niz (<em>angl.</em> string), ki se
prikaže uporabniku kot vprašanje in vrne niz, ki ga je uporabnik napisal. Nize
zapisujemo v narekovaje (lahko so enojni ali dvojni). Npr., naslednja
vrstica:</p>
<pre>
ime = input("Kako ti je ime?")
</pre>
<p>pokliče funkcijo <code>input</code>, ki povpraša uporabnika po imenu in si
shrani uporabnikov odgovor v spremenljivko <code>ime</code>.</p>''']

expressions_python = ['''\
<p>Če v Pythonu napišemo izraz, se bo ta izračunal.</p>''',
                      '''\
<p>Če napišemo</p>
<pre>
3 + 6 * 5
</pre>
<p>bo Python izračunal <code>3 + 6 * 5</code>.</p>''',
                      '''\
<p>Kadar želimo rezultat shraniti, za to uporabimo <em>prireditveni stavek</em>, kjer na levo
napišemo ime spremenljivke, na desno pa izraz:</p>
<pre>
c = 2 * a * (3 + b)
</pre>
''']

printing = ['''\
<p>V Pythonu izpisujemo s funkcijo <code>print</code>.</p>''',
            '''\
</p>Če želimo izpisati več elementov, jih ločimo z vejico.
Imejmo spremenljivko <code>ime</code>, ki vsebuje naše ime, potem:
<pre>
print("Ime mi je", ime, ".")
</pre>''']

plan = ['''\
<p>Program izvedemo v treh korakih:</p>
<ol>
  <li>Vprašanje za temperaturo v Fahrenheitih (F = ?).</li>
  <li>Izračun temperature v Celzijih: C = 5/9 (F – 32)</li>
  <li>Izpis temperature v Celzijih (izpiši C).</li>
</ol>''',
        no_input_call,


        ]

hint = {
    'plan': '''\
<p>Program izvedemo v treh korakih:</p>
<ol>
  <li>Vprašanje za temperaturo v Fahrenheitih (F = ?).</li>
  <li>Izračun temperature v Celzijih: C = 5/9 (F – 32)</li>
  <li>Izpis temperature v Celzijih (izpiši C).</li>
</ol>''',

    'no_input_call': no_input_call,

    'expressions_python': expressions_python,

    'printing': printing,

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

    'unsupported_operand' : [
        mod.general_msg['error_head'],
        mod.general_msg['general_exception'],
        mod.general_msg['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>''',
        '''\
<p>Na primeru pretvarjanja temperatur:</p>
<pre>
fniz = input("Temperatura [F]: ")
f = float(fniz)
</pre>''',
        '''\
<p>Krajše, združeno v eno vrstico:</p>
<pre>
f = float(input("Temperatura [F]: "))
</pre>
<p>Funkcijo <code>float</code> lahko kličemo le, če je v nizu zapisano število,
npr. "10". Če imamo v nizu tudi kakšno črko, bo Python javil napako.</p>'''
    ],

    'not_callable' : [
        mod.general_msg['error_head'],
        mod.general_msg['general_exception'],
        mod.general_msg['type_error'],
        '''\
<p>V programu poskušaš uporabiti število kot funkcijo, a to ne gre.</p>''',
        '''\
<p>Verjetni razlog: Ali si v izrazu pozabil na znak *? Pri pretvorbi temperatur bi namesto:</p>
<pre>
C = 5/9(F – 32)
</pre>
<p>moral napisati: </p>
<pre>
C = 5/9 * (F – 32).
</pre>
<p>Python ne zna izpuščati znaka za množenje, kot to delamo pri matematiki.</p>'''
    ],
}