summaryrefslogtreecommitdiff
path: root/prolog/problems/sorting/isort_2
diff options
context:
space:
mode:
Diffstat (limited to 'prolog/problems/sorting/isort_2')
-rw-r--r--prolog/problems/sorting/isort_2/sl.py21
1 files changed, 16 insertions, 5 deletions
diff --git a/prolog/problems/sorting/isort_2/sl.py b/prolog/problems/sorting/isort_2/sl.py
index acd3276..0005951 100644
--- a/prolog/problems/sorting/isort_2/sl.py
+++ b/prolog/problems/sorting/isort_2/sl.py
@@ -10,6 +10,18 @@ description = '''\
L = [1,2,3,4,5].
</pre>'''
+plan = ['''\
+<p>Ob sprehodu po seznamu (pravzaprav ob vračanju) vsakič vstavi trenutni element na pravo mesto.</p>
+''', '''\
+<p>Ko greš po seznamu na vsakem koraku vzameš stran glavo (le-ta gre na sklad), rep pa gre v rekurzijo
+(problem/seznam je nekoliko krajši in je to možno). Rekurzija ti vrne urejen rep, vse kar moraš narediti ti je,
+da na pravo mesto vstaviš prej odvzeto glavo. Seveda za vstavljanje izkoristiš rešitev kakšne prejšnje naloge.</p>
+''', '''\
+<p>Če je seznam <code>L</code> sestavljen iz glave <code>H</code> in repa <code>T</code> in če predpostavimo,
+da rep <code>T</code> rekurzija pravilno uredi v <code>SortedTail</code> in če v urejen rep <code>SortedTail</code>
+na ustrezno mesto vstavimo glavo <code>H</code>, potem smo dobili urejen celoten seznam <code>L</code>.</p>
+''']
+
hint = {
'eq_instead_of_equ': '''\
<p>Operator <code>==</code> je strožji od operatorja <code>=</code> v smislu, da je za slednjega dovolj,
@@ -23,8 +35,7 @@ implicitno že kar v argumentih predikata (glavi stavka).</p>
''',
'base_case': '''\
-<p>Si pomislil na robni pogoj? Kaj je najbolj enostaven primer, ko je element v seznamu?
-Do katerega elementa najlažje prideš?</p>
+<p>Si pomislil na robni pogoj? Kateri seznam lahko urediš povsem brez dela?</p>
''',
'recursive_case': '''\
@@ -32,11 +43,11 @@ Do katerega elementa najlažje prideš?</p>
''',
'predicate_always_false': '''\
-<p>Vse kaže, da tvoj predikat vedno vrne <code>false</code>. Si mu dal pravilno ime, si se morda pri imenu zatipkal?</p>
+<p>Vse kaže, da tvoj predikat vedno vrne "false". Si mu dal pravilno ime, si se morda pri imenu zatipkal?</p>
<p>Če je ime pravilno, se morda splača preveriti tudi, če se nisi zatipkal kje drugje,
je morda kakšna pika namesto vejice ali obratno, morda kakšna spremenljivka z malo začetnico?</p>
<p>Možno je seveda tudi, da so tvoji pogoji prestrogi ali celo nemogoči (kot bi bila npr. zahteva,
-da je <code>X</code> hkrati starš in sestra od <code>Y</code> ali kaj podobno zlobnega).</p>
+da je <code>X</code> <em>hkrati</em> večji in manjši od <code>Y</code> ali kaj podobno logično sumljivega).</p>
''',
'timeout': '''\
@@ -45,6 +56,6 @@ da je <code>X</code> hkrati starš in sestra od <code>Y</code> ali kaj podobno z
''',
'min_used': '''\
-<p>min_used</p>
+<p>Poskusi rešiti nalogo brez uporabe predikata <code>min/2</code>.</p>
''',
}