====== Jak korzystać z wiki? ====== ===== Nawigacja ===== Na stronach w [[https://www.dokuwiki.org/dokuwiki|DokuWiki]] spotkasz dwa typy odnośników: * [[:start|zielone]] -- do innych stron należących do tej samej wiki * [[https://www.dokuwiki.org/dokuwiki|niebieskie]] -- do stron "zewnętrznych" ===== Przypisy ===== Niektóre informacje uzupełniające (dodatkowe) podano w formie przypisów, np. > //%%C++%% to bardzo przydatny język programowania((zob. [[http://www.google.com]]))// Aby zobaczyć podgląd przypisu, najedź na niego (na liczbę) myszką. Aby przejść do przypisu, kliknij na niego LPM. ===== Znaczniki ===== W treści konspektów użyto pewnych znaczników i elementów, które mają na celu zwrócenie uwagi na niektóre zagadnienia. ==== Ważne ==== Szczególnie ważne informacja (zwykle w kontekście rozwiązania zadania) są oznaczane symbolem ":!:" albo za pomocą odpowiedniej ramki z wykrzyknikiem: important box ==== Szczególnie przydatne informacje ==== Szczególnie przydatne informacje (np. zasady, które pozwolą Ci sprawnie rozwiązać pewne dylematy projektowe) zamieszczono w ramkach z symbolem żarówki: tip box ==== Wskazówki i odpowiedzi ==== W niektórych zadaniach zamieszczono wskazówki i odpowiedzi w formie rozwijalnego elementu: ++++ Kliknij, aby rozwinąć... | Treść elementu. ++++ Treść takiego elementu możesz zobaczyć klikając na jego nagłówek. ==== Informacje dodatkowe ==== Informacje dla chętnych i ciekawostki oznaczono symbolem "8-)". ===== Kursy programowania ===== Poniższe informacje odnoszą się do kursów programowania dostępnych tutaj: **[[teaching:programming:start]]**. ==== Podręcznik ==== Integralną część kursów programowania (w języku %%C++%% i w języku Python) stanowią podręczniki dostępne w formie dokumentu PDF na stronie właściwego kursu. Konspekty starają się nie dublować treści z podręczników, dlatego na początku strony poświęconej danemu zagadnieniu podano tytuły rozdziałów (w podręcznikach), z którymi należy zapoznać się, aby być w stanie rozwiązać zadania ćwiczeniowe. ==== Zadania ==== Przy większości zadań podano informację, jakiego typu elementów/konstrukcji języka należy użyć do rozwiązania problemu. ==== Jak prosić o pomoc? ==== Przede wszystkim bądź konkretny. Zastanów się -- czego dokładniej nie rozumiesz, z czym masz problem? \\ Odpowiedź w stylu //"nic nie rozumiem"// lub //"mam problem ze wszystkim"// to __nie__ są właściwe odpowiedzi. Jeśli napisany kod nie działa i chcesz zadać pytanie prowadzącemu lub na np. [[https://stackoverflow.com/|Stack Overflow]], przygotuj tzw. //minimalny działający przykład// -- [[https://en.wikipedia.org/wiki/Minimal_working_example|minimal working example]] (MWE). MWE powinien: * zawierać komplet informacji niezbędnych do odtworzenia problemu (zwykle: pliki źródłowe i ew. konfiguracyjne) * być możliwie krótki i zwięzły (m.in. należy usunąć fragmenty kodu nie związanego z problemem) Krótki poradnik poświęcony tworzeniu MWE znajdziesz tu: [[https://stackoverflow.com/help/mcve|How to create a Minimal, Complete, and Verifiable example]] Dodatkowo, w przypadku błędów budowania programu (kompilacji lub konsolidacji), do dobrej praktyki należy zamieszczanie pełnych logów budowania, np.: ====================[ Build | log_test | Debug ]================================ "C:\Program Files\JetBrains\CLion 2018.3.1\bin\cmake\win\bin\cmake.exe" --build D:\log-test\cmake-build-debug --target log_test -- --no-print-directory "C:\Program Files\JetBrains\CLion 2018.3.1\bin\cmake\win\bin\cmake.exe" -SD:\log-test -BD:\log-test\cmake-build-debug --check-build-system CMakeFiles\Makefile.cmake 0 C:/PROGRA~1/MINGW-~1/X86_64~3.0-P/mingw64/bin/mingw32-make.exe -f CMakeFiles\Makefile2 log_test "C:\Program Files\JetBrains\CLion 2018.3.1\bin\cmake\win\bin\cmake.exe" -SD:\log-test -BD:\log-test\cmake-build-debug --check-build-system CMakeFiles\Makefile.cmake 0 "C:\Program Files\JetBrains\CLion 2018.3.1\bin\cmake\win\bin\cmake.exe" -E cmake_progress_start D:\log-test\cmake-build-debug\CMakeFiles 2 C:/PROGRA~1/MINGW-~1/X86_64~3.0-P/mingw64/bin/mingw32-make.exe -f CMakeFiles\Makefile2 CMakeFiles/log_test.dir/all C:/PROGRA~1/MINGW-~1/X86_64~3.0-P/mingw64/bin/mingw32-make.exe -f CMakeFiles\log_test.dir\build.make CMakeFiles/log_test.dir/depend "C:\Program Files\JetBrains\CLion 2018.3.1\bin\cmake\win\bin\cmake.exe" -E cmake_depends "MinGW Makefiles" D:\log-test D:\log-test D:\log-test\cmake-build-debug D:\log-test\cmake-build-debug D:\log-test\cmake-build-debug\CMakeFiles\log_test.dir\DependInfo.cmake --color= Scanning dependencies of target log_test C:/PROGRA~1/MINGW-~1/X86_64~3.0-P/mingw64/bin/mingw32-make.exe -f CMakeFiles\log_test.dir\build.make CMakeFiles/log_test.dir/build [ 50%] Building CXX object CMakeFiles/log_test.dir/main.cpp.obj C:\PROGRA~1\MINGW-~1\X86_64~3.0-P\mingw64\bin\G__~1.EXE -g -std=gnu++14 -o CMakeFiles\log_test.dir\main.cpp.obj -c D:\log-test\main.cpp [100%] Linking CXX executable log_test.exe "C:\Program Files\JetBrains\CLion 2018.3.1\bin\cmake\win\bin\cmake.exe" -E cmake_link_script CMakeFiles\log_test.dir\link.txt --verbose=1 "C:\Program Files\JetBrains\CLion 2018.3.1\bin\cmake\win\bin\cmake.exe" -E remove -f CMakeFiles\log_test.dir/objects.a C:\PROGRA~1\MINGW-~1\X86_64~3.0-P\mingw64\bin\ar.exe cr CMakeFiles\log_test.dir/objects.a @CMakeFiles\log_test.dir\objects1.rsp C:\PROGRA~1\MINGW-~1\X86_64~3.0-P\mingw64\bin\G__~1.EXE -g -Wl,--whole-archive CMakeFiles\log_test.dir/objects.a -Wl,--no-whole-archive -o log_test.exe -Wl,--out-implib,liblog_test.dll.a -Wl,--major-image-version,0,--minor-image-version,0 @CMakeFiles\log_test.dir\linklibs.rsp [100%] Built target log_test "C:\Program Files\JetBrains\CLion 2018.3.1\bin\cmake\win\bin\cmake.exe" -E cmake_progress_start D:\log-test\cmake-build-debug\CMakeFiles 0 Build finished Taki log w szczególności zawiera informacje o użytym kompilatorze oraz o flagach kompilacji: C:\PROGRA~1\MINGW-~1\X86_64~3.0-P\mingw64\bin\G__~1.EXE -g -std=gnu++14 -o CMakeFiles\log_test.dir\main.cpp.obj -c D:\log-test\main.cpp które są zwykle istotne podczas diagnostyki i rozwiązywania problemów. Aby uzyskać log budowania w CLion, w przypadku programów korzystających z CMake należy: * dodać poniższe linijki do pliku //CMakeLists.txt// \\ set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_RULE_MESSAGES OFF) * Wejść w //File -> Settings -> Build, Execution, Deployment -> CMake// i w polu //"Build options"// wpisać ''%%--no-print-directory%%''.