{"id":21362249,"url":"https://github.com/ilyachalov/learncpp-com-examples","last_synced_at":"2025-07-19T15:36:48.741Z","repository":{"id":159634340,"uuid":"634740235","full_name":"ilyachalov/learncpp-com-examples","owner":"ilyachalov","description":"Примеры с сайта www.learncpp.com, посвященного изучению языка программирования C++","archived":false,"fork":false,"pushed_at":"2024-08-24T18:53:34.000Z","size":795,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-25T18:37:30.886Z","etag":null,"topics":["cpp","examples","learning","russian"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ilyachalov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-01T04:01:41.000Z","updated_at":"2024-08-24T18:53:37.000Z","dependencies_parsed_at":"2023-07-17T08:25:39.618Z","dependency_job_id":"c3e722ed-f001-47c0-9470-69f0474b64c5","html_url":"https://github.com/ilyachalov/learncpp-com-examples","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilyachalov%2Flearncpp-com-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilyachalov%2Flearncpp-com-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilyachalov%2Flearncpp-com-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilyachalov%2Flearncpp-com-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ilyachalov","download_url":"https://codeload.github.com/ilyachalov/learncpp-com-examples/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225850163,"owners_count":17534067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","examples","learning","russian"],"created_at":"2024-11-22T06:14:33.231Z","updated_at":"2024-11-22T06:14:33.702Z","avatar_url":"https://github.com/ilyachalov.png","language":"C++","readme":"# learncpp-com-examples\n🚧 *...проект начат в 2023 году, находится в работе...*\n\nПримеры с известного и популярного англоязычного сайта www.learncpp.com, представляющего собой бесплатный учебник по изучению языка программирования C++ для начинающих. В некоторые из этих примеров я внес свои комментарии и исправления. Где это возможно, я постарался перевести англоязычные литералы и комментарии на русский язык.\n\nУчебник содержит 29 номерных глав 0-28 (некоторые из них находятся в процессе написания и еще не опубликованы; _11 сентября 2023 года учебник был сильно реорганизован_), одну главу с номером-буквой O, а также четыре приложения A, B, C и D. В папке «[chapters](chapters/)» пока что содержатся только тексты примеров и упражнений глав 0-6, разбитых на подпапки по главам. Подпапка каждой главы, в свою очередь, разбита на подпапки по урокам (подглавам). Для некоторых уроков (подглав) подпапок нет, так как в этих уроках нет ни примеров, ни упражнений, а только излагается теория.\n\n🚧 *...автор учебника уже выделил главу 5 из главы 4, но я это разделение еще не успел сделать...*\n\n🚧 *...примеры и упражнения из главы 6 есть пока только для подглав 6.1-6.6...*\n\nВ файле «[eng-rus-dictionary.md](eng-rus-dictionary.md)» я составляю небольшой англо-русский словарик терминов из учебника. Это очень полезная вещь, так как даже некоторые простейшие термины, бывает, вызывают трудности при переводе. В словарике есть мои замечания и памятка по английскому алфавиту.\n\nВ папке «[scripts](scripts/)» я планирую хранить различные вспомогательные скрипты на языке PowerShell. Сейчас там пока что есть один скрипт «[rename-files.ps1](scripts/rename-files.ps1)», который я написал для группового переименования файлов в папках проекта.\n\nВ файл «[math-memos.md](math-memos.md)» я записываю некоторые вещи (памятки) из области математики, полезные при изучении языка C++.\n\nВ файл «[unicode-utf8.md](unicode-utf8.md)» я записываю полезную информацию, ссылки и некоторые соображения по работе с символами в кодировке UTF-8 из программ на языке C++.\n\n## Инструменты и кроссплатформенность\n\nИсходные тексты программ я сохраняю в кодировке UTF-8 без BOM. Окончания строк\u0026nbsp;— CRLF. Отступы выполняю пробелами, длина отступа\u0026nbsp;— 4 пробела (такой способ лучше подходит для публикации в интернете, чем использование символа горизонтальной табуляции, который популярные браузеры трактуют как 8 пробелов, это слишком большой отступ). \n\nДля редактирования исходных текстов программ я использую редакторы кода «[VS Code](https://ru.wikipedia.org/wiki/Visual_Studio_Code)» (с расширением «[ms-vscode.cpptools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)») и «[Notepad++](https://ru.wikipedia.org/wiki/Notepad%2B%2B)». (Также я использую интегрированную среду разработки «[Visual Studio Community 2022](https://visualstudio.microsoft.com/vs/community/)» компании «Microsoft», но только чтобы следить за мыслью автора учебника, который _в частности_ использует эту среду разработки. Мне неудобно использовать эту среду для работы с маленькими программами, так как она у меня довольно долго загружается при открытии. Ко многим примерам я оставляю комментарии о том, как пользоваться функциями этой среды для выполнения задач, описываемых в учебнике.)\n\nПрограммы я компилирую и тестирую в двух средах:\n\n1. Система «Windows 10», [компилятор MSVC](https://ru.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B) (cl.exe) версии 19.35.32216.1 для x64 из командной строки, программы-оболочки «cmd.exe» и «PowerShell» версии 7 и выше.\n2. Система «Ubuntu» (через «[WSL 2](https://learn.microsoft.com/en-us/windows/wsl/)»), компилятор «g++» ([GCC](https://ru.wikipedia.org/wiki/GNU_Compiler_Collection)) версии 11.3.0 из командной строки, программа-оболочка «bash».\n\nПеред запуском исполняемых файлов в системе «Windows 10» в программах-оболочках требуется предварительное переключение активной кодовой страницы на кодовую страницу с номером 65001 (UTF-8). Вот какие команды можно для этого использовать:\n\n1. В программе-оболочке «cmd.exe»: `chcp 65001` (я ввожу эту команду вручную в начале сеанса работы с «cmd.exe»);\n2. В программах-оболочках «PowerShell» (версии 7 и выше) или в «Windows PowerShell» (версии 5.1):\n   \n   ```\n   [System.Console]::InputEncoding = [System.Text.Encoding]::UTF8\n   [System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8\n   ```\n   Эти команды для программы-оболочки «PowerShell» удобно прописать в [профиле](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles) пользователя (после этого не нужно будет вводить эти команды вручную в начале сеанса работы с «PowerShell»).\n\nВ системе «Ubuntu» (через «WSL 2») никакой предварительной настройки не требуется.\n\nДля работы с программами-оболочками я использую программу-«эмулятор терминала» «[Windows Terminal](https://ru.wikipedia.org/wiki/Windows_Terminal)» (предполагается, что эта программа заменит устаревающую «[Windows Console](https://en.wikipedia.org/wiki/Windows_Console)»).\n\n## Ключи компиляторов\n\nЗапуск компилятора MSVC из командной строки, программа-оболочка «Developer PowerShell for VS 2022» (построена на базе устаревающей программы-оболочки «Windows PowerShell» версии 5.1):\n```\ncl /EHsc /utf-8 \"program.cpp\"\n```\n\nЗапуск компилятора «g++» (GCC) из программы-оболочки «bash»:\n```\ng++ \"program.cpp\" -o \"program\"\n```\nИсходные тексты программ храню в системе «Windows 10», а компилятору «g++» в системе «Ubuntu» (через «WSL 2») можно передать путь к файлу, хранящемуся в системе «Windows 10», следующим образом:\n```\n\"/mnt/c/Users/Илья/source/repos/learncpp/program.cpp\"\n```\nЭто для файла `C:\\Users\\Илья\\source\\repos\\learncpp\\program.cpp`.\n\nОписание других ключей (опций) этих двух компиляторов, которые я использую при изучении вышеуказанного учебника, я вынес в отдельный файл «[compiler-options.md](compiler-options.md)», так как оно стало занимать слишком много места.\n\n## Полезные ссылки\n\n_Язык программирования C++:_\n\n- [Справочник (cppreference.com)](https://en.cppreference.com) по языку программирования C++;\n- [Поддержка разными компиляторами нововведений](https://en.cppreference.com/w/cpp/compiler_support) языка C++ (удобная таблица);\n- [wg21.link/std](https://wg21.link/std) — открыть (скачать) черновик текущей версии стандарта C++ в формате PDF;\n- [eel.is/c++draft/](https://eel.is/c++draft/) — черновик текущей версии стандарта C++ в формате HTML (неофициальный источник, автор\u0026nbsp;— [@Eelis](https://github.com/Eelis)).\n\n_Инструменты:_\n\n- Компилятор GCC (GNU Compiler Collection)\n  - [Руководство пользователя](https://gcc.gnu.org/onlinedocs/gcc/) к набору компиляторов GCC;\n\n- Компилятор MSVC\n  - [Документация на сайте компании «Microsoft»](https://learn.microsoft.com/en-us/cpp/) (инструменты, справочники, руководства и так далее) по языку C++;\n  - История релизов среды (IDE) «Visual Studio»: [2019](https://learn.microsoft.com/en-us/visualstudio/releases/2019/history), [2022](https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-history);\n\n- Редактор кода «Visual Studio Code» (VS Code)\n  - [Документация редактора кода «Visual Studio Code»](https://code.visualstudio.com/docs);\n  - [Справочник по счетаниям клавиш (для «Windows»)](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf) редактора кода «Visual Studio Code» (в формате PDF).\n\n_Для вопросов по программированию:_\n\n- [Stack Overflow](https://stackoverflow.com) — на английском языке;\n- [Stack Overflow на русском](https://ru.stackoverflow.com) — на русском языке;\n- [Хабр Q\u0026A](https://qna.habr.com) — на русском языке.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filyachalov%2Flearncpp-com-examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filyachalov%2Flearncpp-com-examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filyachalov%2Flearncpp-com-examples/lists"}