# data[].attributes.body
https://forms.gle/MrKHCvfn7pDciSwA9
Proszę o przesłanie najpóźniej do środy 27.04.2022 do końca dnia.
Można wysyłać na raty np. po jednym zadaniu.

# data[].attributes.attachment_link.description
Odpowiedz na pytania na podstawie otrzymanego tekstu

# data[].attributes.body
a.sokolski@salez-wroc.pl

# data[].attributes.body
Przykładowe rozwiązanie zadania "Śmiech Matematyka"
Link do zadania
https://oki.org.pl/wp-content/uploads/2022/01/SmiechMatematyka_MistrzProgramowania.pdf

# data[].attributes.body
Wszystkie lekcje odbywają się na platformie webex
https://meet157.webex.com/meet/aleksander.sokolski

# data[].attributes.body
Na zajęciach w bieżącym tygodniu zajmować będziemy się algorytmem znajdowania miejsca zerowego funkcji (w pewnym przybliżeniu) metodą połowienia przedziałów.
Algorytm opisany jest na stronach 25-26 w podręczniku.
W szczególności poszukiwać będziemy miejsc zerowych wielomianów.

# data[].attributes.body
W dalszym ciągu zajmujemy się rekurencją.
Za pomocą rekurencji rozwiążemy problem Wież Hanoi oraz spróbujemy napisać program rozwiązujący tę klasyczną łamigłówkę

# data[].attributes.body
Napisać funkcję obliczającą (rekurencyjnie) liczbę ruchów niezbędnych do rozwiązania łamigłówki Wież Hanoi.

# data[].attributes.body
Tworzenie funkcji w języku Python. Napiszemy przykłady własnych prostych funkcji w Pythonie (podręcznik str. 49).

# data[].attributes.body
Dzisiaj omówimy metodę "dziel i zwyciężaj" na przykładzie poznanych już algorytmów oraz poznamy nowe zastosowania tej metody.

# data[].attributes.body
Omawiamy kolejną z technik stosowanych w informatyce - rekurencję.
Zwracamy uwagę na zalety i wady rekurencji. przykładowe zagadnienia które można rozwiązać za pomocą rekurencji lub innymi metodami: algorytm Euklidesa, oblicznie silni, problem wież Hanoi.

# data[].attributes.body
Kolejny algorytm sortowania - "Merge Sort" sortowanie przez scalanie
Algorytm wykorzystuje rekurencję jako przykłąd strategii "dziel i zwyciężaj".
Fragmenty ze znanych wykładów CS50  (Uniwersytetu Harvarda) https://youtu.be/Ns7tGNbtvV4

# data[].attributes.body
Powiemy czym jest rekurencja, omówimy też kilka przykładów.
Zachęcam do obejrzenia materiału- fragmentów wykładów z Uniwersytetu Harvarda https://youtu.be/mz6tAJMVmfM

# data[].attributes.body
Zadanie z dzisiejszych zajęć

# data[].attributes.body
Początek rozwiązania zadania z zajęć.

# data[].attributes.attachment_link.readable_text
n = int(input())
X=[0]
Y=[0]
for i in range(1,n):
    X.insert(i,int(input()))
    Y.insert(i,int(input()))

print(X)
print(Y)

# data[].attributes.body
zadania wykonywane na zajęciach (programowanie w Pytohnie)

# data[].attributes.body
edytor on-line (jeden z wielu)
https://www.online-python.com/

Edytor Mu - program wymaga instalacji
https://codewith.mu/

# data[].attributes.body
Sprawdzamy programy z poprzednich zajęć. Rozbudowujemy jeden z wybranych programów.

# data[].attributes.body
Programowanie w Pythonie - zadania wykonywane na zajęciach

# data[].attributes.body
Pomimo zajęć zdalnych chciałbym abyśmy wykonali uczciwie test semestralny złożony z 2 części (bardziej teoretycznego testu oraz części typowo programistycznej).
Link do testu
https://forms.gle/mCLK7BTUCAScpX336
(formularz uaktywniony będzie podczas zajęć).

# data[].attributes.body
Link do zadań konkursowych https://oki.org.pl/mistrz-programowania-aktualnosci/

# data[].attributes.attachment_link.readable_text
Jak zarejestrować się w konkursie? / Informacje: https://oki.org.pl/mistrz-programowania-regulamin/
Opis konkursu: https://youtu.be/V4LQxUvVqVQ?t=170
Ranking: https://oki.org.pl/mistrz-programowania-ranking/
Statystyki: https://oki.org.pl/mistrz-programowania-statystyki/

Zadania
Poniżej zadania publiczne. Umieszczanie rozwiązań po zarejestrowaniu: https://oki.org.pl/mistrz-programowania-regulamin/
Runda IV (28.01.2022)

Route 66: https://oki.org.pl/wp-content/uploads/2022/01/Route66_MistrzProgramowania.pdf
Nominały: https://oki.org.pl/wp-content/uploads/2022/01/Nominaly_MistrzProgramowania.pdf
Mewy w Kołobrzegu 5: https://oki.org.pl/wp-content/uploads/2022/01/MewyWKolobrzegu5_MistrzProgramowania.pdf
Galaretka i przyjaciele: https://oki.org.pl/wp-content/uploads/2022/01/GalaretkaIPrzyjaciele_MistrzProgramowania.pdf
Popularność: https://oki.org.pl/wp-content/uploads/2022/01/Popularnosc_MistrzProgramowania-1.pdf

Runda III (21.01.2022)
Biolog, fizyk i matematyk: https://oki.org.pl/wp-content/uploads/2022/01/BiologFizykIMatematyk__MistrzProgramowania.pdf
Mewy w Kołobrzegu 4: https://oki.org.pl/wp-content/uploads/2022/01/MewyWKolobrzegu4__MistrzProgramowania.pdf
Przygody Tomka Sawyera: https://oki.org.pl/wp-content/uploads/2022/01/PrzygodyTomkaSawyera__MistrzProgramowania.pdf
Bambus happy 2: https://oki.org.pl/wp-content/uploads/2022/01/BambusHappy2_MistrzProgramowania.pdf
Bezpieczeństwo: https://oki.org.pl/wp-content/uploads/2022/01/Bezpieczenstwo__MistrzProgramowania.pdf

Runda II (14.01.2022)
Śmiech matematyka i informatyka: https://oki.org.pl/wp-content/uploads/2022/01/SmiechMatematykaIInformatyka_MistrzProgramowania.pdf
Mewy w Kołobrzegu 3: https://oki.org.pl/wp-content/uploads/2022/01/MewyWKolobrzegu3_MistrzProgramowania.pdf
Bambus happy? https://oki.org.pl/wp-content/uploads/2022/01/BambusHappy_MistrzProgramowania.pdf
Duże liczby: https://oki.org.pl/wp-content/uploads/2022/01/DuzeLiczby_MistrzProgramowania.pdf
Reklama: https://oki.org.pl/wp-content/uploads/2022/01/Reklama_MistrzProgramowania.pdf

Runda I (7.01.2022)
Śmiech matematyka: https://oki.org.pl/wp-content/uploads/2022/01/SmiechMatematyka_MistrzProgramowania.pdf
Mewy w Kołobrzegu: https://oki.org.pl/wp-content/uploads/2022/01/MewyWKolobrzegu_MistrzProgramowania.pdf
Galaretka: https://oki.org.pl/wp-content/uploads/2022/01/Galaretka_MistrzProgramowania.pdf
Mewy w Kołobrzegu 2: https://oki.org.pl/wp-content/uploads/2022/01/MewyWKolobrzegu2_MistrzProgramowania.pdf
Dwuwymiarowe żabki: https://oki.org.pl/wp-content/uploads/2022/01/DwuwymiaroweZabki_MistrzProgramowania.pdf

Zadanie testowe (5.01.2022):
Zakupy: https://oki.org.pl/wp-content/uploads/2022/01/zakupy.pdf

Całość zadań konkursowych z możliwością wysyłania rozwiązań - dla zarejestrowanych uczestników: https://szkopul.edu.pl/c/mistrz-programowania-2022/p/

04.01.2022
1. Uruchomienie rejestracji do konkursu Mistrz Programowania: https://szkopul.edu.pl/c/mistrz-programowania-2022/join/gmt6ztbPIj0AWZVzXeT8Ogtk/
2. Możliwość rozwiązania zadania próbnego/ testowego - nie uwzględnianego w rankingu konkursu Mistrz Programowania:
https://szkopul.edu.pl/c/mistrz-programowania-2022/p/zak/ - dla zarejestrowanych
https://oki.org.pl/wp-content/uploads/2022/01/zakupy.pdf - publiczna treść zadania

1. W jakich odstępach czasowych będą pojawiały się następne rundy
Kolejne rundy powinny się pokazywać w każdy piątek o godzinie 00:00.
https://youtu.be/V4LQxUvVqVQ?t=347

2. W jakich językach można zgłaszać rozwiązania zadań konkursowych?
Rozwiązania zadań konkursowych można zgłaszać w językach C++ oraz Python.

3. Czy zadania są w kolejności od najprostszych?
Zadania w konkursie są w kolejności przypadkowej - ich kolejność nie ma nic wspólnego z poziomem trudności.
https://youtu.be/V4LQxUvVqVQ?t=6568

4. Czy zadania są na poziomie programistycznym?
Dwa do trzech zadań w każdej turze jest czysto programistyczna:
https://youtu.be/V4LQxUvVqVQ?t=355

5. Na czym polega ocenianie zadania.
Dla danego zadania system ma prawidłowe dwa plik:
- wejściowy
- wyjściowy
System uruchamia sprawdzany program z plikiem wejściowym i porównuje wynik działania ze wzorcowym plikiem wyjściowym. Jeśli jest to to samo test zaliczony.
Dla każdego zadania jest od 5 do 50 testów, czyli par plików wejście / wyjście - w zależności od stopnia skomplikowania problemu.

6. Czy każde zadanie ma wzorcowe rozwiązanie
Tak. Dla każdego z zadań konkursowych istnieją wzorcowe rozwiązania w C++ / Python, które otrzymują 100%.

7. Mój program w Python nie dostaje 100%. Dlaczego?
Zwracamy uwagę, że w przypadku Python czas działania programu zależy między innymi od:
- użytych komend / bibliotek
- kolejności komend

8. Jak duży może plik źródłowy z kodem programu?
Limit kodu źródłowego do każdego zadania to 100kB.

9. Mój program mieści się w limicie czasowym. Jednak nie dostaję 100%. Dlaczego?
System szkopuł przyznaje 100% punktów jeśli dla każdego testu nasz program daje poprawny wynik oraz czas jest działania nie przekroczył połowy limitu.
Jeśli nasz program daje poprawny wynik, jednak czas działania jest powyżej połowy limitu, sukcesywnie tracimy punkty aż do całkowitej utraty punktów jeśli przekroczymy limit.
Proszę również zwrócić uwagę na punkt 6.

10. Czy organizatorzy konkursu Mistrz Programowania pomagają w znajdowaniu błędów w programach?
Niestety nie możemy debugowac kodów - to wbrew zasadom konkursowym.
Aby zrozumieć specyfikę zadań konkursowych proponujemy zrobić zadania z sekcji "Programowanie" na stronie:
https://oki.org.pl/tutorial/
Jest tam lista zadań począwszy od najprostszych ze szczegółowymi omówieniami oraz wzorcowymi rozwiązaniami.

-
Wyjaśnienia dotyczące treści zadań
1.
Dotyczy zadania "Przygody Tomka Sawyera"
Każdy z chłopców który przychodzi do Tomka otrzymuje pytanie dotyczące niezamalowanego, oryginalnego płotu. Pytania o ilość sztachet które będą zamalowane są niezależne. Fakt, że chłopiec A ma zamalować pewną ilość sztachet na przedziale 1-3 nie wpływa na chłopca B który ma zamalować pewną ilość sztachet na przedziale 2-4.

-
Informacje dotyczące zmian w paczkach testowych
Brak

# data[].attributes.body
https://salez-my.sharepoint.com/:x:/g/personal/a_sokolski_office_salez-wroc_pl/EdjoiIObS31MlVtXT5lonh8B_xmh3eZGmZFqpozA5-R2fA?e=Fj5vMh

# data[].attributes.body
Proszę o pobranie i instalację środowiska programistycznego Code::Blocks
link do pobierania
https://www.fosshub.com/Code-Blocks.html?dwl=codeblocks-20.03mingw-setup.exe (plik ma ok. 145MB)
W początkowym okresie można korzystać również z narzędzi on-line np. https://www.onlinegdb.com/online_c++_compiler - w dłuższej perspektywie nie jest to jednak wygodne.
Załączam screen pierwszego programu z dzisiejszych zajęć.

# data[].attributes.body
Krótka instrukcja instalcji oraz utworzenia pierwszego projektu dostępna jest na stronie https://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Wybieramy-srodowisko-pracy/4

# data[].attributes.body
Na zajęciach symulujemy zdarzenia losowe w Excelu. Link do wykonanego (przykładowego) arkusza
https://salez-my.sharepoint.com/:x:/g/personal/a_sokolski_office_salez-wroc_pl/ESpm1ybPSY5PvtN5C5nWS-QBhI3GZmb0QYfqKWSDOOqCsw?e=zan4pV
Poprzez dziennik (konto ucznia) otrzymaliście dostęp do szkolnych kont office.

# data[].attributes.body
Rozpoczynamy cykl zajęć z pakietem MS Office, w szczególności z arkuszem kalkulacyjnym (MS Excel).
W ramach pierwszych zajęć proszę w szczególności sprawdzić czy posiadacie dostęp do swoich kont szkolnych (w domenie (office.salez-wroc.pl).
Na zajęciach w bieżącym tygodniu przypomnimy jak tworzyć serię danych, zmieniać format komórki oraz stosować adresowanie względne i bezwzględne.

# data[].attributes.body
Na zajęciach symulujemy zdarzenia losowe w Excelu. Link do wykonanego (przykładowego) arkusza
https://salez-my.sharepoint.com/:x:/g/personal/a_sokolski_office_salez-wroc_pl/ESpm1ybPSY5PvtN5C5nWS-QBhI3GZmb0QYfqKWSDOOqCsw?e=zan4pV