# coding=utf-8 import server mod = server.problems.load_language('python', 'sl') id = 187 name = 'Topologija' slug = 'Topologija' description = '''\

Napiši program za izračun dolžine strela s topom (ki brez trenja izstreljuje točkaste krogle v brezzračnem prostoru, a pustimo trivio). Program od uporabnika ali uporabnice zahteva, da vnese kot, pod katerim je izstreljen, in hitrost izstrelka. Program naj izračuna in izpiše, kako daleč bo letela krogla.

Pomoč za fizično nebogljene: s=v2sin(2f)/g , kjer je s razdalja, v hitrost izstrelka, f je kot, g pa gravitacijska konstanta (9,8).

Preveri tole: krogla leti najdalj, če jo izstrelimo pod kotom 45 stopinj. Poskusi, kako daleč gre pod kotom 45 in kako daleč pod 46 stopinj -- po 45 mora leteti dlje. Preveri tudi kot 50 stopinj: če pod tem kotom leti nazaj (razdalja je negativna), si ga gotovo nekje polomil.

Opomba: za pravilno delovanje moraš v programu najprej prebrati kot in potem hitrost.

''' eval_expression = ['''\

Dolžino strela dobiš po formuli: s=v2sin(2f)/g.

''', '''\

Funkcijo sin dobiš v modulu math, tako kot smo tam dobili funkcij sqrt. Na začetku programa torej napišite:

from math import *
''', '''\

Če vam funkcija sin ne deluje pravilno, vam svetujemo, da si pogledate v dokumentacijo, kako funkcija deluje (še posebno bodite pozorni na razlago v oklepajih). Do dokumentacije dostopate z ukazom help:

help(sin)
''' ] printing = ['''\

V Pythonu izpisujemo s funkcijo print.

'''] plan = ['''\

Plan sledi že znani strategiji: preberi vrednosti – izračunaj – izpiši.

''', eval_expression, printing ] hint = { 'eval_expression': eval_expression, 'printing': printing, 'radians': ['''\

Poskusi sin(30). Zakaj je rezultat negativen?

''', '''\

Vse triginometrične funkcije sprejemajo kot v radianih in ne v stopinjah.

''', '''

V stopinjah ima cel krog 360°, v radianih pa 2*pi. Zato je 360° ekvivalentno 2*pi.

''', '''

Formula za pretvorbo med stopinjami in radiani je:

kot_rad = kot * 2 * pi / 360'''], 'betterg': '''Konstanta g naj ima vrednost 9.8''', 'name_error' : [mod.general_msg['error_head'], mod.general_msg['general_exception'], mod.general_msg['name_error'], '''

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?

'''], 'sin_error' : [mod.general_msg['error_head'], mod.general_msg['general_exception'], mod.general_msg['name_error'], '''

Za uporabo funkcije sin je potrebno prej uvoziti modul math: from math import * ali import math. Če uporabljate slednji način, morate vedno uporabiti ime modula pri klicu funkcije: math.sin(...).'''], '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(" ...
'''], 'type_error' : [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(" ...
'''] }