summaryrefslogtreecommitdiff
path: root/python/problems/introduction/pythagorean_theorem/sl.py
diff options
context:
space:
mode:
authorMartin <martin@leo.fri1.uni-lj.si>2015-09-14 20:15:35 +0200
committerMartin <martin@leo.fri1.uni-lj.si>2015-09-14 20:15:35 +0200
commitb2e1800fa19d18840c3d399c4a379f2da53fe7b0 (patch)
treeb9239eb67518b33f43d024a9fb2174585f2f530d /python/problems/introduction/pythagorean_theorem/sl.py
parentc80a5ba87d3dd8cc4a67a2d23c087448a702d7fe (diff)
Added pythagorean theorem.
Diffstat (limited to 'python/problems/introduction/pythagorean_theorem/sl.py')
-rw-r--r--python/problems/introduction/pythagorean_theorem/sl.py92
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']],