Skip to content

Примеры с сайта www.learncpp.com, посвященного изучению языка программирования C++

Notifications You must be signed in to change notification settings

ilyachalov/learncpp-com-examples

Repository files navigation

learncpp-com-examples

🚧 ...проект начат в 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», но только чтобы следить за мыслью автора учебника, который в частности использует эту среду разработки. Мне неудобно использовать эту среду для работы с маленькими программами, так как она у меня довольно долго загружается при открытии. Ко многим примерам я оставляю комментарии о том, как пользоваться функциями этой среды для выполнения задач, описываемых в учебнике.)

Программы я компилирую и тестирую в двух средах:

  1. Система «Windows 10», компилятор MSVC (cl.exe) версии 19.35.32216.1 для x64 из командной строки, программы-оболочки «cmd.exe» и «PowerShell» версии 7 и выше.
  2. Система «Ubuntu» (через «WSL 2»), компилятор «g++» (GCC) версии 11.3.0 из командной строки, программа-оболочка «bash».

Перед запуском исполняемых файлов в системе «Windows 10» в программах-оболочках требуется предварительное переключение активной кодовой страницы на кодовую страницу с номером 65001 (UTF-8). Вот какие команды можно для этого использовать:

  1. В программе-оболочке «cmd.exe»: chcp 65001 (я ввожу эту команду вручную в начале сеанса работы с «cmd.exe»);

  2. В программах-оболочках «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++:

Инструменты:

Для вопросов по программированию:

About

Примеры с сайта www.learncpp.com, посвященного изучению языка программирования C++

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published