import server mod = server.problems.load_language('python', 'sl') name = 'Pretvarjanje iz Fahrenheitov v Celzije' slug = 'Pretvarjanje iz Fahrenheitov v Celzije' description = '''\

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).

''' no_input_call = ['''\

Uporabi funkcijo input in shrani rezultat.

''', '''\

Funkcija input sprejme niz (angl. string), ki se prikaže uporabniku kot vprašanje in vrača, kar je uporabnik napisal.

''', '''\

Primer:

ime = input("Kako ti je ime?")

pokliče funkcijo input, ki povpraša uporabnika po imenu in shrani uporabnikov odgovor v spremenljivko ime.

'''] expressions_python = ['''\

Kot kaže, imaš temperaturo v Fahrenheitih že prebrano. Zdaj pa izračunaj temperaturo v Celzijevih stopinjah.

''', '''\

Python izraze izračuna. Če napišemo

3 + 6 * 5

bo izračunal 3 + 6 * 5.

''', '''\

Kadar želimo rezultat shraniti, za to uporabimo prireditveni stavek, kjer na levo napišemo ime spremenljivke, na desno pa izraz:

c = 2 * a * (3 + b)
'''] printing = ['''\

V Pythonu izpisujemo s funkcijo print.

''', '''\

Če želimo izpisati več elementov, jih ločimo z vejico. Imejmo spremenljivko ime, ki vsebuje naše ime, potem:
print("Ime mi je", ime, ".")
'''] plan = ['''\

Program izvedemo v treh korakih:

  1. Vprašaj uporabnika po temperaturi v Fahrenheitih (F = ?).
  2. Izračun temperature v Celzijih: C = 5/9 (F – 32)
  3. Izpis temperature v Celzijih (izpiši C).
''', no_input_call, expressions_python, printing ] hint = { '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'], '''\

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?

''' ], 'unsupported_operand' : [ mod.general_msg['error_head'], mod.general_msg['general_exception'], mod.general_msg['type_error'], '''\

Verjetni razlog: funkcija input vrača vrednost tipa niz, ki jo moramo najprej pretvoriti v tip float, če želimo z njo računati:

v = float(input(" ...
''', '''\

Na primeru pretvarjanja temperatur:

fniz = input("Temperatura [F]: ")
f = float(fniz)
''', '''\

Krajše, združeno v eno vrstico:

f = float(input("Temperatura [F]: "))

Funkcijo float lahko kličemo le, če je v nizu zapisano število, npr. "10". Če imamo v nizu tudi kakšno črko, bo Python javil napako.

''' ], 'not_callable' : [ mod.general_msg['error_head'], mod.general_msg['general_exception'], mod.general_msg['type_error'], '''\

V programu poskušaš uporabiti število kot funkcijo, a to ne gre.

''', '''\

Verjetni razlog: Ali si v izrazu pozabil na znak *? Pri pretvorbi temperatur bi namesto:

C = 5/9(F – 32)

moral napisati:

C = 5/9 * (F – 32).

Python ne zna izpuščati znaka za množenje, kot to delamo pri matematiki.

''' ], 'final_hint' : [ '''\

Odlično, program deluje!
Pri tej nalogi si se naučil:

'''] }