С самоучитель. Уроки по с ravesli com 2 предисловие
Скачать 2.56 Mb.
|
Шаг №3: Напишите программу Для того, чтобы написать программу, необходимы две вещи: знание определенного языка программирования – этому мы вас научим; редактор кода. Программу можно написать, используя любой редактор, даже тот же Блокнот в Windows или текстовый редактор Vi в Unix. Тем не менее, мы настоятельно рекомендуем использовать редактор, предназначенный для программирования. Не беспокойтесь, если у вас его ещё нет. В следующем уроке мы рассмотрим процесс установки такого приложения. Редактор типичного программиста, как правило, имеет следующие особенности, которые облегчают программирование: Нумерация строк. Это функция чрезвычайно полезна при отладке программы, когда компилятор выдаёт нам сообщения об ошибках. Типичная ошибка компиляции состоит из "ошибка и № строки, где эта ошибка произошла", например: "ошибка переопределения ravesli.com 17 переменной x, строка 90". Без нумерации строк искать ту самую 90- ую строчку кода было бы несколько затруднительно, не так ли? Подсветка синтаксиса. Подсветка синтаксиса изменяет цвет разных частей программы и кода, что улучшает восприятие как целой программы, так и её отдельных частей. Специальный шрифт. В обычных шрифтах очень часто возникает путаница между определенными символами, когда непонятно, какой символ перед вами. Например: число 0 или буква O, число 1 или буква l (нижний регистр L), или может буква I (верхний регистр i). Вот для этого и нужен специальный шрифт, в котором будет легко различить эти символы, предотвращая случайное использование одного символа вместо другого. Программы на языке C++ следует называть name.cpp, где name заменяется именем вашей программы, а расширение .cpp сообщает компилятору (и вам тоже), что это исходный файл кода, который содержит инструкции на языке программирования C++. Следует обратить внимание, что некоторые программисты используют расширение .cc вместо .cpp, но мы рекомендуем использовать именно .cpp. Также стоит отметить, что много программ в C++ могут состоять из нескольких файлов .cpp. Хотя большинство программ, которые вы будете создавать в ходе этих уроков, не будут слишком большими, в дальнейшем вы научитесь писать программы, которые будут включать десятки, если не сотни отдельных файлов .cpp. Шаг №4: Компиляция Для того, чтобы скомпилировать программу нам нужен компилятор. Работа компилятора состоит из двух частей: ravesli.com 18 Проверка программы на соответствие правилам языка C++ (проверка синтаксиса). Если она будет неудачной, то компилятор выдаст сообщение об ошибках, которые нужно будет исправить. Конвертация каждого исходного файла с кодом в объектный файл (или еще "объектный модуль") на машинном языке. Объектные файлы, как правило, имеют названия name.o или name.obj, где name должно быть такое же как и имя вашего исходного файла .cpp. Если ваша программа состоит из 3-ёх файлов .cpp, то компилятор сгенерирует 3 объектных файла. Стоит упомянуть, что такие операционные системы как Linux и macOS имеют уже встроенный компилятор C++, который называется g++. Для компиляции файлов с командной строки с помощью g++ вам нужно будет прописать следующее: g++ -c file1.cpp file2.cpp file3.cpp Таким образом мы создадим file1.o, file2.o и file3.o. -c означает "только скомпилировать", т.е. просто создать .o (объектные) файлы. Есть и другие компиляторы для Linux, Windows и других операционных систем. Шаг №5: Линкинг (связывание объектных файлов) Линкинг – это процесс связывания всех объектных файлов, генерируемых компилятором, в единую исполняемую программу, которую ravesli.com 19 вы затем сможете запустить (выполнить). Это делается с помощью программы, которая называется линкер (или ещё "компоновщик"). Кроме объектных файлов, линкер также подключает файлы из стандартной библиотеки С++ (или любой другой библиотеки, которую вы используете, например: библиотеки графики или звука). Сам по себе язык С++ довольно маленький и простой. Тем не менее, к нему подключается большая библиотека дополнительных функций, которые могут использовать ваши программы, и эти функции находятся в стандартной библиотеке C++. Например, если вы хотите вывести что-либо на экран, то у вас в коде должна быть специальная команда, которая сообщит компилятору, что вы хотите использовать функцию вывода информации на экран из стандартной библиотеки C++. После того, как компоновщик закончит линкинг всех объектных файлов (при условии, что не будет ошибок), вы получите исполняемый файл. Опять же, в целях наглядности, чтобы связать .o файлы, которые мы создали выше в Linux или macOS, мы можем снова использовать g++: g++ -o prog file1.o file2.o file3.o ravesli.com 20 -o сообщает g++, что мы хотим получить исполняемый файл с именем prog из файлов: file1.o, file2.o и file3.o. При желании, компиляцию и линкинг можно объединить в один шаг: g++ -o prog file1.cpp file2.cpp file3.cpp Результатом будет исполняемый файл с именем prog. Шаг №6: Тестирование и отладка Здесь начинается самое веселье! Вы уже можете запустить исполняемый файл и посмотреть, работает ли всё так надо. Если нет, то пришло время отладки. Более подробно об отладке мы поговорим в соответствующих уроках. Обратите внимание, для выполнения шагов №3-№6 вам потребуется специальное программное обеспечение. Хотя вы можете использовать отдельные программы на каждом из этих шагов, пакет программного обеспечения (или ещё "IDE" – "Integrated Development Environment") объединяет в себе все эти программы. Обычно с IDE вы получаете редактор кода с нумерацией строк и подсветкой синтаксиса, а также компилятор и линкер. А когда вам нужно будет провести отладку программы, вы сможете использовать встроенный отладчик. Кроме того, IDE объединяет и ряд других полезных возможностей: комплексная помощь, дополнение кода, в некоторых случаях ещё и система контроля версий. ravesli.com 21 Урок №4. Установка Интегрированной Среды Разработки (IDE) Интегрированная Среда Разработки («IDE» = «Integrated Development E nvironment») – это программное обеспечение, которое содержит всё необходимое для разработки, компиляции, линкинга и отладки кода. Нам нужно установить одну такую IDE. Но какую именно? Я рекомендую Visual Studio от Microsoft (для пользователей Windows) или Code::Blocks (для пользователей Linux/Windows). Также вы можете установить и любую другую IDE. Основные концепции, рассматриваемые в этих уроках, должны работать во всех средах разработки. Впрочем, иногда код может частично отличаться в разных IDE, поэтому вам придётся самостоятельно искать более подробную информацию о работе в выбранной вами IDE. IDE под Windows Если вы пользователь Windows (как и большинство из нас), то установите Visual Studio 2017 версию "Сообщество", которая является бесплатной (все остальные версии – платные): ravesli.com 22 После того, как вы скачаете и запустите установщик, вам нужно будет выбрать «Разработка классических приложений на C++». Пункты, выбранные по умолчанию в правой части экрана, трогать не нужно – там всё хорошо, только убедитесь, что галочка поставлена возле "Пакет SDK для Windows 10". Этот пакет может использоваться и в ранних версиях Windows, поэтому не переживайте, если у вас Windows 7 или Windows 8 – всё будет работать. Затем "Установить". При желании вы можете указать галочки и возле других пунктов для скачивания, но учтите, что тогда размер вашей IDE будет солидно увеличен. IDE под Linux/Windows Если вы пользователь Linux (или Windows, но хотите писать программы, которые затем можно будет легко портировать в Linux), то установите Code::Blocks . Эта бесплатная, кроссплатформенная, опенсорс IDE, которая работает как в Linux, так и в Windows. ravesli.com 23 Пользователям Windows нужно загружать версию с MinGW в комплекте: Установка простая: просто соглашаетесь со всем, о чём вас спрашивают. Функционал C++11/C++14 в Code::Blocks по умолчанию может быть отключен. Чтобы его использовать, вам нужно перейти в "Settings" > "Compiler": И во вкладке "Compiler Flags" поставить галочку возле пункта "Have g++ follow the C++14 ISO C++ language standard [-std=c++14]" , затем нажать "Ок": ravesli.com 24 Примечание: После установки Code::Blocks у некоторых пользователей может появиться следующее сообщение об ошибке: Can’t find compiler executable in your configured search paths for GNU GCC Compiler . Если вы столкнулись с этим, то попробуйте выполнить следующее: Если вы пользователь Windows, убедитесь, что вы загрузили версию Code::Blocks с MinGW (в названии скачиваемого установщика должно быть слово «mingw»). Попробуйте выполнить полностью удалить Code::Blocks, а затем установить его заново. Перейдите в "Settings" > "Compiler" и выберите "Reset to defaults". Если ничего из вышеуказанного не помогло, попробуйте установить другую IDE. ravesli.com 25 В качестве альтернативы подойдёт Bloodshed’s Dev-C++ , который также работает как в Windows, так и в Linux. IDE под macOS Пользователи техники Apple могут использовать Xcode или Eclipse Eclipse по умолчанию не настроен на использование C++, поэтому вам нужно будет дополнительно установить компоненты для C++. Или Visual Studio для Mac : Веб-компиляторы Веб-компиляторы подходят для написания простых, небольших программ. Их функционал ограничен: вы не сможете сохранять проекты, создавать исполняемые файлы или эффективно проводить отладку программ, поэтому лучше скачать полноценную IDE, если у вас действительно серьёзные намерения по поводу программирования. А веб-компиляторы используйте разве что для быстрого запуска небольших программ. Популярные веб-компиляторы: OnlineGDB ravesli.com 26 TutorialsPoint C++ Shell Repl.it Теперь, когда вы установили IDE, пора написать нашу первую программу! ravesli.com 27 Урок №5. Компиляция вашей первой программы Перед написанием нашей первой программы мы ещё должны кое-что узнать. Теория Во-первых, несмотря на то, что код ваших программ находиться в файлах .cpp, эти файлы добавляются в проект. Проект содержит все необходимые файлы вашей программы, а также сохраняет указанные вами настройки вашей IDE. Каждый раз, при открытии проекта, он запускается с того момента, на котором вы остановились в прошлый раз. При компиляции программы, проект говорит компилятору и линкеру, какие файлы нужно скомпилировать, а какие связать. Стоит отметить, что файлы проекта одной IDE не будут работать в другой IDE. Вам придётся создать новый проект (в другой IDE). Во-вторых, есть разные типы проектов. При создании нового проекта, вам нужно будет выбрать его тип. Все проекты, которые мы будем создавать в этих уроках, будут консольного типа. Это означает, что они запускаются в консоли (аналог командной строке). По умолчанию, консольные приложения не имеют графического интерфейса пользователя (GUI) и компилируются в автономные исполняемые файлы. Это идеальный вариант для изучения C++, так как он сводит всю сложность к минимуму. В-третьих, при создании нового проекта большинство IDE автоматически добавят ваш проект в рабочее пространство. Рабочее пространство – это своеобразный контейнер, который может содержать один или несколько связанных проектов. Несмотря на то, что вы можете добавить несколько проектов в одно рабочее пространство, всё же рекомендуется создавать отдельное рабочее пространство для каждой программы. Это намного упрощает работу для новичков. ravesli.com 28 Традиционно, первой программой на новом языке программирования является всеми известная программа «Hello, world!». Мы не будем нарушать традиции :) Пользователям Visual Studio Для создания нового проекта в Visual Studio 2017, вам нужно сначала запустить эту IDE, затем выбрать "Файл" > "Создать" > "Проект": Дальше появится диалоговое окно, где вам нужно будет выбрать "Консольное приложение Windows" из вкладки "Visual C++" и нажать "ОК": ravesli.com 29 Также вы можете указать имя проекта (любое) и его расположение (рекомендую ничего не менять) в соответствующих полях. В правой части экрана, в окне "Обозреватель решений" Visual Studio 2017 создал несколько файлов, включая HelloWorld.cpp, pch.cpp и pch.h. В текстовом редакторе вы увидите, что уже есть некоторый текст и код – удалите его, а затем напечатайте или скопируйте следующий код: #include "pch.h" #include () { std :: cout << "Hello, world!" << std :: endl ; return 0 ; } ravesli.com 30 Вот, что у вас должно получиться: Чтобы запустить эту программу нажмите Ctrl+F5. Если всё хорошо, то вы увидите следующее: Это означает, что компиляция прошла успешно и результат выполнения вашей программы следующий: Hello, world! Примечание: Если вы видите консольное окно (черный экран) без какого- либо текста, то проблемой может быть ваш антивирус. Попробуйте его временно отключить и повторите попытку. ravesli.com 31 Чтобы убрать строчку "...завершает работу с кодом 0...", вам нужно перейти в "Отладка" > "Параметры": Затем "Отладка" > "Общие" и поставить галочку возле "Автоматически закрыть консоль при остановке отладки" и нажать "ОК": ravesli.com 32 Тогда ваше консольное окно будет выглядеть следующим образом: Важное примечание для пользователей Visual Studio: Все ваши программы в Visual Studio ВСЕГДА должны начинаться со строчки: #include "pch.h" В противном случае вы получите ошибку. Пользователям Code::Blocks Чтобы создать новый проект, запустите Code::Blocks, выберите "File" > "New" > "Project": ravesli.com 33 Затем появится диалоговое окно, где вам нужно выбрать "Console application" и нажать "Go": Затем выбрать язык C++ и нажать "Next": ravesli.com 34 Затем нужно указать имя проекта и его расположение (можете создать отдельную папку Projects) и нажать "Next": Затем в следующем диалоговом окне нужно будет нажать "Finish". После этих манипуляций, вы увидите пустое рабочее пространство. Вам нужно будет открыть папку Sources в левой части экрана и дважды кликнуть по main.cpp: ravesli.com 35 Вы увидите, что программа «Hello, world!» уже написана! Для того, чтобы скомпилировать ваш проект, нажмите Ctrl+F9, либо перейдите в меню "Build" и выберите "Build". Если всё пройдет хорошо, вы должны увидеть следующее во вкладке "Build log": Это означает, что компиляция прошла успешно! Чтобы запустить скомпилированную программу, нажмите Ctrl+F10, либо перейдите в меню "Build" и выберите "Run". Вы увидите следующее окно: Это результат выполнения вашей программы. Пользователям командной строки Вставьте следующий код в текстовый файл с именем HelloWorld.cpp: #include () { std :: cout << "Hello, world!" << std :: endl ; return 0 ; } ravesli.com 36 В командной строке напишите: g++ -o HelloWorld HelloWorld.cpp Это команда выполнит компиляцию и линкинг файла HelloWorld.cpp. Для запуска программы напишите: HelloWorld или ./HelloWorld И вы увидите результат выполнения вашей программы. Пользователям веб-компиляторов Вставьте следующий код в рабочее пространство: #include () { std :: cout << "Hello, world!" << std :: endl ; return 0 ; } Затем нажмите "Run". Вы должны увидеть результат в окне выполнения. Пользователям других IDE Вам нужно: 1. Создать консольный проект. 2. Добавить файл .cpp в проект (если нужно). 3. Вставить следующий код в файл .cpp: #include () ravesli.com 37 { std :: cout << "Hello, world!" << std :: endl ; return 0 ; } 4. Скомплировать проект. 5. Запустить проект. Если компиляция прошла неудачно (a.k.a. "О Боже, что-то пошло не так!") Всё нормально, без паники. Скорее всего, это какой-то пустяк. Во-первых, убедитесь, что вы написали код правильно, без ошибок и опечаток. Сообщение об ошибке компилятора может дать вам ключ к пониманию того, где и какие ошибки случились. Во-вторых, просмотритеУрок №7 – там есть решения к наиболее распространённым проблемам. Если не помогло, то загуглите проблему. С вероятностью в 90% кто-то уже сталкивался с этим раньше и нашёл решение. Заключение Поздравляем, вы написали свою первую программу! Не беспокойтесь, если вы не понимаете, что означает весь этот код выше. Мы детально всё рассмотрим в следующих уроках. ravesli.com 38 Урок №6. Режимы конфигурации «Debug» и «Release» Конфигурация сборки (англ. "build configuration") – это набор настроек проекта, которые определяют принцип его построения. Конфигурация сборки состоит из: имени исполняемого файла, директории исполняемого файла, в каких директориях IDE будет искать код и заголовочные файлы, информации об отладке и параметров оптимизации вашего проекта. Интегрированная среда разработки имеет две конфигурации сборки: "Release" (Релиз) и "Debug" (Отладка). |