lista zadań (od I klasy!) nasze programiki Łamacze Szyfrów
zadanka do ćwiczenia wydawania i pakowania (dla wszystkich zainteresowanych) -
Warto poćwiczyć! (Gdyby ktoś nie miał dostępu do Themisa lub tej sekcji, niechaj pyta!)
O Waszych możliwych przyszłych badaniach
Jak to robią Wasi starsi koledzy
Gr. 1 - na 9/6 (przypominam!) należy obliczyć liczbę operacji w algorytmie Freta (i umieć zrealizować go w C++!) oraz zrozumieć ten cwańszy wg tego,
co wrzuciłem do plików w naszym teamsowym zespole.
Przypominam również, że nie omówiliśmy jeszcze problemu najkrótszej ścieżki (drogi) między dwoma wierzchołkami - jeszcze w maju 2021 mieliście spróbować wymyślić algorytm jej znajdowania
(wystarczy opis dla człowieka, ale ma działać dla dowolnego grafu, tzn. także gdy nie będzie łatwo widać, którędy iść, np. od wierzchołka 1 do 8 w
tym grafie).
Kto ma aspiracje szóstkowe, może pomyśleć nad eksperymentalną weryfikacją złożoności quicksorta w przypadku optymistycznym lub średnim.
Grupa 2 - jako ostatni temat w tym roku polecam https://eduinf.waw.pl/inf/alg/001_search/0138.php, do słów "Dojście do wierzchołka 5: 0–4–5, koszt 5".
Przypominam, że powinniście poza tym mieć już ze zrozumieniem zrozumiane to, co jest w PDF-ach idol i idol2, które wrzuciłem do plików w naszym zespole teamsowym, (i zastanowić się nad zapisem algorytmu wyszukiwania idola na podstawie macierzy sąsiedztwa grafu), ORAZ wysłać mi prywatnym czatem pytanie lub zagadnienie (każdy przynajmniej jedno), o którym chcielibyście porozmawiać, zupełnie dowolne, może być nawet niezwiązane z informatyką ani szkołą.
Ciekawe tematy (również do badań własnych):
- zad. z "KoALi" (patrz kartkówka grupy 1 - w pliku wyżej),
- problem komiwojażera.
Na 19 IV należało zastanowić się nad zaczerwienionymi pytaniami ze str. 3 naszego google doca,
a Rozszerzeni powinni byli również wykonać polecenie na dole str. 1.
Wszyscy(!) powinni (m.in.!) umieć już dawno zapisać i rozumieć funkcje Cezar (z dowolnym przesunięciem) i deCezar oraz
rozumieć (ideę oraz funkcje w C++!) Vigenere'a (patrz nasz google doc) i deVigenere'a, a Osobniki Rozszerzone także samodzielnie je zapisać!
Proszę też zastanowić się, co potrzebujemy jeszcze wyjaśnić w kwestii zad. 2.2ę i f (które mieliście (ze szczegółami!) przemyśleć).
Wrócimy też do zad. 2.3.I jako funkcji (co nie obowiązywało ludzi nierozszerzonych).
Ambitniejsi mogą pomyśleć nad zrobieniem 2.2ę przez porównywanie kolejnych cyfr od lewej i od prawej. (Można je np. odrywać dzięki odpowiedniej modyfikacji naszej funkcji pierwszacyfra i powtarzać ten proces, aż... Można robić to rekurencyjnie!) Może niełatwe, ale na poziomie Waszej matury!
Z I SEMESTRU:
Na styczeń mieliście umieć:
Na 16 XII należało napisać:
- pakujWgWartosciWlasciwych o takiej samej specyfikacji jak poprzednio (patrz nasz google doc,
i proszę to uwzględnić!), przy czym należy wziąć pod uwagę to, o czym mówiliśmy na ostatniej lekcji (bo wśród Waszych procedur jest więcej takich,
które zniszczyłyby worek Heraklesa!); warto też przy okazji poprawić poprzednią procedurkę;
- wydaj, która napisze, w jaki sposób wydać podaną kwotę, mając do dyspozycji nieskończenie wiele monet o (zapisanych w tablicy!) nominałach
1, 2, 5, 10, 20, 50, 100, 200, 500 gr, minimalizując liczbę użytych monet (czyli np. dla wejścia 2004 (co to za wejście?) odpowiedzią powinno być: 500 500 500 500 2 2);
podpowiedź: można wykorzystać pomysł Heraklesa!
Ponadto należy zastanowić się, jak można by pomóc Heraklesowi (nadal zad. 2.1 z listy) sortowaniem (uwaga: w grę wchodzą dwie tablice!) i kiedy sortowanie do rozwiązania jego problemu się opłaci.
Na 9 XII były zadane procedurki: odbijWpionie, transponuj, przyciemnij (zmieniającą poziom szarości każdego piksela na o połowę mniejszy), coDrugiWiersz, obroc90 (a jak to za trudne - obroc180);
Uwagi:
- nasza rybka znajduje się tutaj (wraz z nagłówkiem! - co uwzględniać powinny Twoje procedury
- analogicznie do tej zaczętej przeze mnie); niestety przeglądarka może mieć gdzieś zapisany poprzednio pobrany pllik o tej samej nazwie, więc
trzeba wtedy kazać jej jakoś dogłębnie pozapominać, ew. można ręcznie dokleić nagłówek: "P2 302 178 255";
- jeśli ktoś ma dobrze napisane procedury transformacji macierzy (np. odbijWpionie, transponuj - mogą się nazywać tak samo jak te operujące
na plikach, bo C++ rozpozna, której chcemy użyć, po podanych jej argumentach), to może wkleić je do programu i użyć ich w pisanych teraz;
- niektóre przekształcenia zmieniają wymiary obrazka - trzeba to uwzględnić w nagłówku tworzonego pliku;
- mam nadzieję, że udane efekty wszystkich operacji (w kolejno tworzonych plikach) z satysfakcją obejrzysz w odpowiednim programie
(może być to np. IrfanView, GIMP czy Libre Office).
Na 18 XI było:
Wcześniej należało już umieć (i nadal należy!):
Zachęcam również nadal, żeby spróbować znaleźć najgorszy układ danych dla SelectSorta, co jest może dość trudną łamigłówką, ale może ktoś napisze sortowanie przez jednoczesny wybór min. i maks.? To fajne wyzwanie, na Waszym poziomie! (Na początek niech działa tylko dla parzystych n).
Zadanie dla uczniów o inicjałach OF - do wyboru: polubić sortowania lub przeprowadzić analizę porównawczą dowolnych dziesięciu spośród opisanych tu algorytmów.