From 15f86bdee80340c414c07b300fea4f513ae04588 Mon Sep 17 00:00:00 2001 From: Aleksander Sadikov Date: Wed, 30 Mar 2016 18:26:19 +0200 Subject: Hints and plans for isort/2 added. --- prolog/problems/sorting/isort_2/sl.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'prolog/problems/sorting/isort_2/sl.py') 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]. ''' +plan = ['''\ +

Ob sprehodu po seznamu (pravzaprav ob vračanju) vsakič vstavi trenutni element na pravo mesto.

+''', '''\ +

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.

+''', '''\ +

Če je seznam L sestavljen iz glave H in repa T in če predpostavimo, +da rep T rekurzija pravilno uredi v SortedTail in če v urejen rep SortedTail +na ustrezno mesto vstavimo glavo H, potem smo dobili urejen celoten seznam L.

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

Operator == je strožji od operatorja = v smislu, da je za slednjega dovolj, @@ -23,8 +35,7 @@ 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? Kateri seznam lahko urediš povsem brez dela?

''', 'recursive_case': '''\ @@ -32,11 +43,11 @@ Do katerega elementa najlažje prideš?

''', 'predicate_always_false': '''\ -

Vse kaže, da tvoj predikat vedno vrne false. Si mu dal pravilno ime, si se morda pri imenu zatipkal?

+

Vse kaže, da tvoj predikat vedno vrne "false". Si mu dal pravilno ime, si se morda pri imenu zatipkal?

Č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 X hkrati večji in manjši od Y ali kaj podobno logično sumljivega).

''', 'timeout': '''\ @@ -45,6 +56,6 @@ da je X hkrati starš in sestra od Y ali kaj podobno z ''', 'min_used': '''\ -

min_used

+

Poskusi rešiti nalogo brez uporabe predikata min/2.

''', } -- cgit v1.2.1