diff options
Diffstat (limited to 'python/problems/introduction/pythagorean_theorem/sl.py')
-rw-r--r-- | python/problems/introduction/pythagorean_theorem/sl.py | 92 |
1 files changed, 39 insertions, 53 deletions
diff --git a/python/problems/introduction/pythagorean_theorem/sl.py b/python/problems/introduction/pythagorean_theorem/sl.py index ae88d1b..ffbf6a1 100644 --- a/python/problems/introduction/pythagorean_theorem/sl.py +++ b/python/problems/introduction/pythagorean_theorem/sl.py @@ -5,9 +5,8 @@ name = 'Pitagorov izrek' slug = 'Pitagorov izrek' 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>''' +<p>Npiši program, ki uporabnika vpraša po dolžinah katet pravokotnega trikotnika in +izpiše dolžino hipotenuze. ''' general_exception = { 'error_head' : '<p>Napaka:</p>', @@ -45,38 +44,44 @@ poravnane. </p>''' hint = { 'plan': ['''\ -<p>Program izvedemo v treh korakih:</p> +<p>Program razdelimo na tri dele kot pri Fahrenheitih:</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>'''], + <li>Preberi vrednosti katet (a,b = ?)</li> + <li>Izračunaj dolžino hipotenuze c (c = …)</li> + <li>Izpis dolžine hipotenuze (print … )</li> +</ol> +'''], 'no_input_call': ['''\ -<p>Uporabnika lahko nekaj vprašamo s funkcijo <code>input</code>. 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> +<p>Tako kot pri prejšnji nalogi uporabimo funkcijo input, le da tokrat preberemo +dve vrednosti in jih shranimo v dve spremenljivki:</p> <pre> -ime = input("Kako ti je ime?") + a = float(input("Prva kateta: ")) + b = float(input("Druga kateta: ")) </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>'''], +<p> Imeni <code>a</code> in <code>b</code> sta spremenljivki (angl. variable). +Spremenljivke uporabljamo, kadar želimo kakšno vrednost shraniti, ki jo bomo +potrebovali kasneje v programu. Imena spremenljivk so lahko poljubno + dolga, v našem primeru bi jim lahko rekli tudi kateta_a in kateta_b. + Pri programiranju velja, da izbiramo taka imena spremenljivk, + ki bodo naredila program berljiv. </p> + '''] - 'expressions_python': [''' -<p>Računanje: če v Pythonu napišemo izraz, se bo ta izračunal. Npr., če napišemo</p> + 'math_functions': [''' +<p>Dolžina hipotenuze je kvadratni koren vsote kvadratov katet oz.</p> +<p>c = sqrt(a**2 + b**2)</p> +<p>Dvojni znak za množenje ** je potenciranje. Funkcija <code>sqrt</code> +izračuna kvadratni koren. Vendar pa funkcija <code>sqrt</code> ni vgrajena v Python, +temveč se nahaja v ločenem matematičnem modulu oz. zbirki matematičnih funkcij. +Da bi lahko dostopali do teh funkcij, moramo ta modul najprej uvoziti:</p> <pre> -3 + 6 -<pre> -bo Python seštel vrednosti 3 in 6 in ... rezultat pozabil. Kadar pa ž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) +from math import * </pre> -<p> Kot vidite, izraz lahko uporablja tudi spremenljivke. </p>'''], +<p>Poleg funkcije <code>sqrt</code> matematični modul vsebuje še vrsto +uporabnih matematičnih funkcij, kot so: log, exp, trigonometrične funkcije, itd. +Opis modula najdete v Pythonovi dokumentaciji.</p> +'''], 'printing': [''' <p> V Pythonu izpisujemo s funkcijo <code>print. Če želimo izpisati več elementov, @@ -86,6 +91,12 @@ ki vsebuje naše ime, potem lahko napišemo: print("Ime mi je", ime, ".") </pre>'''], + 'radians': [''' +<p>Vse triginometrične funkcije sprejemajo kot v radianih in ne v stopinjah.</p>''', +''' <p>V stopinjah ima cel krog 360°, v radianih pa 2*pi. Zato je 360° ekvivalentno 2*pi.</p>''', +''' <p>Formula za pretvorbo med stopinjami in radiani je: </p> +kot_rad = kot * 2 * pi / 360'''] + '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 @@ -99,36 +110,11 @@ ki jo moramo najprej pretvoriti v tip <code>float</code>, če želimo z njo rač <pre> v = float(input(" ... </pre> -<p>Zakaj je tako, boste razumeli kasneje, zaenkrat je dovolj, da to poznate.</p> -<p>Na primeru pretvarjanja temperatur:</p> -<pre> -fniz = input("Temperatura [F]: ") -f = float(fniz) -</pre> -<p>ali 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' : [general_exception['error_head'], general_exception['general'], - general_exception['type_error'], ''' -<p>V programu poskušate uporabiti število kot funkcijo, a to ne gre. -Verjetni razlog: Ali ste v izrazu pozabili na znak *. Pri pretvorbi temperatur bi namesto:</p> -<pre> -C = 5/9(F – 32) -</pre> -<p>morali 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> '''], +'''], 'syntax_error' : [general_exception['error_head'], general_exception['general'], general_exception['type_error'], ''' -<p> Ste mogoče pozabili na kakšen zaklepaj? </p>'''], +<p> Ste mogoče pozabili na kakšen zaklepaj ali pa narekovaje? </p>'''], 'indentation_error' : [general_exception['error_head'], general_exception['general'], general_exception['indentation_error']], |