diff options
author | Aleksander Sadikov <aleksander.sadikov@fri.uni-lj.si> | 2016-03-21 16:43:39 +0100 |
---|---|---|
committer | Aleksander Sadikov <aleksander.sadikov@fri.uni-lj.si> | 2016-03-21 16:43:39 +0100 |
commit | a00f6c2c2be840399aa1fc94b79b1ef3340d5359 (patch) | |
tree | e6aa9e8fb8cf2241420e9416b0fa7f293a8bab0f | |
parent | 1eae572b3854231a5af88c4fe2ecfc0fd258ab6e (diff) |
Hints and plans for oddlen/1 & evenlen/1 added.
-rw-r--r-- | prolog/problems/lists_advanced/evenlen_1_+_oddlen_1/sl.py | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/prolog/problems/lists_advanced/evenlen_1_+_oddlen_1/sl.py b/prolog/problems/lists_advanced/evenlen_1_+_oddlen_1/sl.py index 8600c55..72a9ef9 100644 --- a/prolog/problems/lists_advanced/evenlen_1_+_oddlen_1/sl.py +++ b/prolog/problems/lists_advanced/evenlen_1_+_oddlen_1/sl.py @@ -1,3 +1,5 @@ +# coding=utf-8 + name = 'evenlen/1 + oddlen/1' slug = 'Brez aritmetike preveri, če je seznam sode ali lihe dolžine' @@ -13,6 +15,16 @@ description = '''\ true. </pre>''' +plan = ['''\ +<p>To nalogo se da reševati kot dve ločeni, a podobni, nalogi ali pa kot eno, prepletajočo se, nalogo. +Druga verzija je verjetno bolj zanimiva.</p> +''', '''\ +<p>Prepletanje tu pomeni, da ena naloga kliče drugo in obratno. Sodo. Liho. Sodo. Liho.</p> +''', '''\ +<p>Če je rep (seznam brez ene glave) <em>sode</em> dolžine, potem je celoten seznam </em>lihe</em> dolžine. +In obratno.</p> +'''] + hint = { 'eq_instead_of_equ': '''\ <p>Operator <code>==</code> je strožji od operatorja <code>=</code> v smislu, da je za slednjega dovolj, @@ -27,24 +39,27 @@ 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? Kaj je najbolj enostaven primer, ki ga lahko trivialno rešiš?</p> ''', 'extra_base_case': '''\ -<p>extra_base_case</p> +<p>Rešitve se ti podvajajo. Zadosti je le en robni pogoj; ne potrebuješ enega za <code>evenlen/1</code> +in enega za <code>oddlen/1</code>.</p> ''', 'arbitrary_base_case': '''\ -<p>arbitrary_base_case</p> +<p>Zgleda da sprejmeš kar poljuben rezultat (spremenljivko brez določene vrednosti). To gotovo ne bo v redu.</p> +<p>Pazi <code>_</code> ni enako kot <code>[_]</code>. Prvo predstavlja poljubno spremenljivko, drugo seznam +z <em>enim</em> poljubnim elementom.</p> ''', 'arithmetics_used': '''\ -<p>arithmetics_used</p> +<p>Pri tej nalogi si ne pomagaj z aritmetiko oz. računanjem dolžine seznama. Rešiti se da brez tega in +tudi veliko bolj poučno je.</p> ''', 'odd_and_even_mixed_up': '''\ -<p>odd_and_even_mixed_up</p> +<p>Si morda pomešal sode in lihe dolžine? Nič je sodo (even), ena je liho (odd), dva je... ;)</p> ''', 'recursive_case': '''\ @@ -56,7 +71,7 @@ Do katerega elementa najlažje prideš?</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>N</code> enako kot <code>N + 1</code> ali kaj podobno logično zlobnega).</p> ''', 'timeout': '''\ |