Rozwiązanie zadania - zgodnie z sugestią podaną w trakcie zaliczenia - wymagało kilku operacji. Posortowania pierwotnej listy. Wygenerowania listy różnic. Wygenerowanie na tej podstawie listy zsumowanych parami różnic, przy czy te dwie ostatnie operacje można było zrealizować jednocześnie. Następnie należało powiązać uzyskane sumy, będące kluczem sortującym, z pierwotnymi danymi. Taka listę z kluczem należało posortować. Na koniec konieczne było "zrobienie porządków" poprzez usuniecie klucza z posortowanej listy. Oczywiście wcale nie trzeba realizować sortowania z kluczem na liście par klucz-wartość, bo można to również zrobić, sortując równocześnie dwie listy - tę z kluczem oraz tę z wartościami. Zaimplementowanie jedynie samego sortowania - z kluczem albo bez - nie jest wystarczające do uzyskania oceny pozytywnej. Należy wykazać się umiejętnością wyliczania/generacji klucza i wykorzystania ich wspólnego (klucza i wartości) w dalszym przetwarzaniu. Ta część pracy jest Państwa faktycznie oryginalnym wkładem w tworzonym rozwiązaniu i dlatego do niej przywiązywane jest szczególne znaczenie przy ocenianiu pracy. Dzięki niej bowiem, można przekonać się czy samodzielnie potraficie Państwo zdefiniować rekurencyjne operacje a nie tylko odtwarzać z pamięci kody programów sortujących. Nieco bardziej szczegółowe zestawienie tego co można było znaleźć w pracach znajdziecie Państwo poniżej w tabeli. | | help sort nokey | sort no key | distance | sum_dist | key+value | help sort key | sort key | delete key | main | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 99293 | tak | tak | tak | nie | nie | nie | nie | nie | nie | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 109660 | tak | tak | tak | tak | --- | nie | tak | --- | tak | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 112808 | tak | tak | nie | nie | nie | nie | nie | tak | nie | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 115881 | tak | tak | tak | tak | --- | tak | tak | --- | tak | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 116307 | tak | tak | nie | nie | nie | nie | tak | nie | nie | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 116948 | nie | tak | --- | nie | nie | nie | nie | nie | nie | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 117326 | nie | nie | nie | nie | nie | nie | nie | nie | nie | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 122437 | tak | tak | nie | nie | tak | tak | tak | tak | tak | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 122454 | tak | tak | --- | tak | --- | tak | tak | --- | tak | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 122492 | tak | tak | nie | nie | --- | tak | tak | --- | nie | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 122494 | tak | tak | --- | nie | --- | nie | tak | --- | tak | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 122503 | nie | tak | tak | tak | tak | nie | tak | tak | tak | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 122566 | tak | tak | tak | tak | nie | nie | nie | nie | nie | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 122569 | tak | tak | nie | nie | nie | nie | nie | tak | nie | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 122571 | tak | nie | --- | tak | tak | nie | nie | nie | nie | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 122574 | nie | nie | nie | nie | nie | nie | nie | nie | nie | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 122577 | nie | --- | --- | nie | --- | nie | --- | --- | nie | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 122589 | nie | tak | tak | tak | tak | nie | nie | nie | nie | |--------|-----------------|-------------|----------|----------|-----------|---------------|----------|------------|------| | 118474 | nie | nie | nie | nie | nie | nie | nie | nie | nie | Proszę jednak brać pod uwagę, iż nadal jest to zestawienie stosunkowo ogólne, gdyż wartość "nie" oznacza tylko, ze predykat nie działa w pełni poprawnie, ale nie odzwierciedla w jakim stopniu odbiega od docelowej definicji. Źródłowe kody programów zawierają jednak zbyt wiele niuansów, aby można było przedstawić je w takim zestawieniu i traktować to zestawienie należy poglądowo a nie ilościowo. Wartość "---" oznacza, ze ta pozycja nie miała wpływu na ocenę (np. nie była potrzebna w programie). Jeżeli praca odbiegała od schematu podanego na początku - a były i takie - to oceniano ją wyłącznie pod kątem wkładu własnego autora. Prace te zawierały bowiem dużą liczbę odwołań do niestandardowych bibliotek, które opierają swoje działanie na mechanizmach meta-programowania. Ze względu na fakt, iż meta-programowanie nie było tematem żadnych ćwiczeń a na wykładzie prezentowane było w postaci w gruncie rzeczy szczątkowej i ograniczonej do demonstracji niewielkiego podzbioru wybranych arbitralnie predykatów systemowych, nie mogło być ono przedmiotem oceny na zaliczeniu. Analizowane były w związku z tym wyłącznie predykaty, nie należące do bibliotek niestandardowych, gdyż to na nie został przeniesiony cały ciężar pracy. Niestety wszystkie próby skorzystania z tych bibliotek zakończyły się niepowodzeniem - definicje zawierały błędy, które uniemożliwiały prawidłowe działanie meta-predykatów. Zabrakło również w tych pracach głównego predykatu łączącego wszystko w kompletne rozwiązanie końcowe. Szczegółowe zapoznanie się z oceną możliwe jest w terminie konsultacji w semestrze zimowym 2015/16. P.S. Przepraszam osoby zrażone ewentualnym brakiem (kodowaniem) polskich liter, ale nadal pracuję na niezbyt stabilnej platformie sprzętowej, czekając cierpliwie na realizację zakupu nowego oraz wymianę uszkodzonego sprzętu.