🚧 ...проект начат в 2023 году, находится в работе...
Примеры с известного и популярного англоязычного сайта www.learncpp.com, представляющего собой бесплатный учебник по изучению языка программирования C++ для начинающих. В некоторые из этих примеров я внес свои комментарии и исправления. Где это возможно, я постарался перевести англоязычные литералы и комментарии на русский язык.
Учебник содержит 29 номерных глав 0-28 (некоторые из них находятся в процессе написания и еще не опубликованы; 11 сентября 2023 года учебник был сильно реорганизован), одну главу с номером-буквой O, а также четыре приложения A, B, C и D. В папке «chapters» пока что содержатся только тексты примеров и упражнений глав 0-6, разбитых на подпапки по главам. Подпапка каждой главы, в свою очередь, разбита на подпапки по урокам (подглавам). Для некоторых уроков (подглав) подпапок нет, так как в этих уроках нет ни примеров, ни упражнений, а только излагается теория.
🚧 ...автор учебника уже выделил главу 5 из главы 4, но я это разделение еще не успел сделать...
🚧 ...примеры и упражнения из главы 6 есть пока только для подглав 6.1-6.6...
В файле «eng-rus-dictionary.md» я составляю небольшой англо-русский словарик терминов из учебника. Это очень полезная вещь, так как даже некоторые простейшие термины, бывает, вызывают трудности при переводе. В словарике есть мои замечания и памятка по английскому алфавиту.
В папке «scripts» я планирую хранить различные вспомогательные скрипты на языке PowerShell. Сейчас там пока что есть один скрипт «rename-files.ps1», который я написал для группового переименования файлов в папках проекта.
В файл «math-memos.md» я записываю некоторые вещи (памятки) из области математики, полезные при изучении языка C++.
В файл «unicode-utf8.md» я записываю полезную информацию, ссылки и некоторые соображения по работе с символами в кодировке UTF-8 из программ на языке C++.
Исходные тексты программ я сохраняю в кодировке UTF-8 без BOM. Окончания строк — CRLF. Отступы выполняю пробелами, длина отступа — 4 пробела (такой способ лучше подходит для публикации в интернете, чем использование символа горизонтальной табуляции, который популярные браузеры трактуют как 8 пробелов, это слишком большой отступ).
Для редактирования исходных текстов программ я использую редакторы кода «VS Code» (с расширением «ms-vscode.cpptools») и «Notepad++». (Также я использую интегрированную среду разработки «Visual Studio Community 2022» компании «Microsoft», но только чтобы следить за мыслью автора учебника, который в частности использует эту среду разработки. Мне неудобно использовать эту среду для работы с маленькими программами, так как она у меня довольно долго загружается при открытии. Ко многим примерам я оставляю комментарии о том, как пользоваться функциями этой среды для выполнения задач, описываемых в учебнике.)
Программы я компилирую и тестирую в двух средах:
- Система «Windows 10», компилятор MSVC (cl.exe) версии 19.35.32216.1 для x64 из командной строки, программы-оболочки «cmd.exe» и «PowerShell» версии 7 и выше.
- Система «Ubuntu» (через «WSL 2»), компилятор «g++» (GCC) версии 11.3.0 из командной строки, программа-оболочка «bash».
Перед запуском исполняемых файлов в системе «Windows 10» в программах-оболочках требуется предварительное переключение активной кодовой страницы на кодовую страницу с номером 65001 (UTF-8). Вот какие команды можно для этого использовать:
-
В программе-оболочке «cmd.exe»:
chcp 65001
(я ввожу эту команду вручную в начале сеанса работы с «cmd.exe»); -
В программах-оболочках «PowerShell» (версии 7 и выше) или в «Windows PowerShell» (версии 5.1):
[System.Console]::InputEncoding = [System.Text.Encoding]::UTF8 [System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8
Эти команды для программы-оболочки «PowerShell» удобно прописать в профиле пользователя (после этого не нужно будет вводить эти команды вручную в начале сеанса работы с «PowerShell»).
В системе «Ubuntu» (через «WSL 2») никакой предварительной настройки не требуется.
Для работы с программами-оболочками я использую программу-«эмулятор терминала» «Windows Terminal» (предполагается, что эта программа заменит устаревающую «Windows Console»).
Запуск компилятора MSVC из командной строки, программа-оболочка «Developer PowerShell for VS 2022» (построена на базе устаревающей программы-оболочки «Windows PowerShell» версии 5.1):
cl /EHsc /utf-8 "program.cpp"
Запуск компилятора «g++» (GCC) из программы-оболочки «bash»:
g++ "program.cpp" -o "program"
Исходные тексты программ храню в системе «Windows 10», а компилятору «g++» в системе «Ubuntu» (через «WSL 2») можно передать путь к файлу, хранящемуся в системе «Windows 10», следующим образом:
"/mnt/c/Users/Илья/source/repos/learncpp/program.cpp"
Это для файла C:\Users\Илья\source\repos\learncpp\program.cpp
.
Описание других ключей (опций) этих двух компиляторов, которые я использую при изучении вышеуказанного учебника, я вынес в отдельный файл «compiler-options.md», так как оно стало занимать слишком много места.
Язык программирования C++:
- Справочник (cppreference.com) по языку программирования C++;
- Поддержка разными компиляторами нововведений языка C++ (удобная таблица);
- wg21.link/std — открыть (скачать) черновик текущей версии стандарта C++ в формате PDF;
- eel.is/c++draft/ — черновик текущей версии стандарта C++ в формате HTML (неофициальный источник, автор — @Eelis).
Инструменты:
-
Компилятор GCC (GNU Compiler Collection)
- Руководство пользователя к набору компиляторов GCC;
-
Компилятор MSVC
- Документация на сайте компании «Microsoft» (инструменты, справочники, руководства и так далее) по языку C++;
- История релизов среды (IDE) «Visual Studio»: 2019, 2022;
-
Редактор кода «Visual Studio Code» (VS Code)
- Документация редактора кода «Visual Studio Code»;
- Справочник по счетаниям клавиш (для «Windows») редактора кода «Visual Studio Code» (в формате PDF).
Для вопросов по программированию:
- Stack Overflow — на английском языке;
- Stack Overflow на русском — на русском языке;
- Хабр Q&A — на русском языке.