From a00f6c2c2be840399aa1fc94b79b1ef3340d5359 Mon Sep 17 00:00:00 2001 From: Aleksander Sadikov Date: Mon, 21 Mar 2016 16:43:39 +0100 Subject: Hints and plans for oddlen/1 & evenlen/1 added. --- .../lists_advanced/evenlen_1_+_oddlen_1/sl.py | 29 ++++++++++++++++------ 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'prolog/problems') 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. ''' +plan = ['''\ +

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.

+''', '''\ +

Prepletanje tu pomeni, da ena naloga kliče drugo in obratno. Sodo. Liho. Sodo. Liho.

+''', '''\ +

Če je rep (seznam brez ene glave) sode dolžine, potem je celoten seznam lihe dolžine. +In obratno.

+'''] + hint = { 'eq_instead_of_equ': '''\

Operator == je strožji od operatorja = v smislu, da je za slednjega dovolj, @@ -27,24 +39,27 @@ implicitno že kar v argumentih predikata (glavi stavka).

''', 'base_case': '''\ -

Si pomislil na robni pogoj? Kaj je najbolj enostaven primer, ko je element v seznamu? -Do katerega elementa najlažje prideš?

+

Si pomislil na robni pogoj? Kaj je najbolj enostaven primer, ki ga lahko trivialno rešiš?

''', 'extra_base_case': '''\ -

extra_base_case

+

Rešitve se ti podvajajo. Zadosti je le en robni pogoj; ne potrebuješ enega za evenlen/1 +in enega za oddlen/1.

''', 'arbitrary_base_case': '''\ -

arbitrary_base_case

+

Zgleda da sprejmeš kar poljuben rezultat (spremenljivko brez določene vrednosti). To gotovo ne bo v redu.

+

Pazi _ ni enako kot [_]. Prvo predstavlja poljubno spremenljivko, drugo seznam +z enim poljubnim elementom.

''', 'arithmetics_used': '''\ -

arithmetics_used

+

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.

''', 'odd_and_even_mixed_up': '''\ -

odd_and_even_mixed_up

+

Si morda pomešal sode in lihe dolžine? Nič je sodo (even), ena je liho (odd), dva je... ;)

''', 'recursive_case': '''\ @@ -56,7 +71,7 @@ Do katerega elementa najlažje prideš?

Č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?

Možno je seveda tudi, da so tvoji pogoji prestrogi ali celo nemogoči (kot bi bila npr. zahteva, -da je X hkrati starš in sestra od Y ali kaj podobno zlobnega).

+da je N enako kot N + 1 ali kaj podobno logično zlobnega).

''', 'timeout': '''\ -- cgit v1.2.1