Table of Contents

Jak korzystać z wiki?

Nawigacja

Na stronach w DokuWiki spotkasz dwa typy odnośników:

Przypisy

Niektóre informacje uzupełniające (dodatkowe) podano w formie przypisów, np.

C++ to bardzo przydatny język programowania1)

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ść 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: Programowanie.

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. Stack Overflow, przygotuj tzw. minimalny działający przykładminimal working example (MWE).

MWE powinien:

Krótki poradnik poświęcony tworzeniu MWE znajdziesz tu: 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: