# coding=utf-8 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 hitrost izstrelka (to je, omenjene točkaste krogle) in kot, pod katerim je izstreljen. 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 osma črka slovenske abecede.

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. ''' general_exception = { 'error_head' : '''\

Napaka:

[%=message%]
''', 'general': '''

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.

''', 'name_error' : '''

Napaka NameError pomeni, da uporabljate nedefinirano vrednost: ali vrednost spremenljivke ni določena ali uporabljate funkcijo, ki ni uvožena.

''', 'type_error': '''

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

''', 'indentation_error': '''

Pomeni, da imate napačno število presledkov na začetku vrstice. Poskrbite, da so vse vrstice pravilno poravnane.

''' } hint = { 'plan': '''\

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

''', 'eval_expression': '''

Izračunati morate pot po formuli: s=v2sin(2f)/g

Konstanta g je gravitacijski pospešek in ima vrednost približno 9.8 :)

Funkcijo sin dobite 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. Če želimo izpisati več elementov, jih ločimo z vejico. Recimo, da imamo spremenljivko ime, ki vsebuje naše ime, potem lahko napišemo:

print("Ime mi je", ime, ".")
''', 'radians': ['''

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' : [general_exception['error_head'], general_exception['general'], general_exception['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' : [general_exception['error_head'], general_exception['general'], general_exception['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' : [general_exception['error_head'], general_exception['general'], general_exception['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' : [general_exception['error_head'], general_exception['general'], general_exception['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(" ...
'''], 'error' : [general_exception['error_head'], general_exception['general'],] }