Написание вашей первой программы на C++

C++Beginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы научитесь писать свою первую программу на C++. Вы начнете с установки компилятора GCC (GNU Compiler Collection) и настройки необходимых переменных окружения в Ubuntu 22.04. Затем вы создадите новый исходный файл C++, напишете базовую структуру программы и используете оператор cout для вывода сообщения "Hello World". Вы также узнаете, как компилировать и запускать программу, как добавлять однострочные и многострочные комментарии, использовать endl и \n для переноса строк, а также как исправлять распространенные синтаксические ошибки, такие как пропущенные точки с запятой.

Установка компилятора GCC и настройка переменных окружения в Ubuntu 22.04

На этом этапе вы узнаете, как установить компилятор GCC (GNU Compiler Collection) для C++ и настроить необходимые переменные окружения в Ubuntu 22.04. GCC необходим для компиляции и запуска программ на C++.

Сначала откроем терминал в WebIDE. Это можно сделать, нажав на значок терминала в нижней части экрана или используя сочетание клавиш (обычно Ctrl+`).

Начнем с обновления списка пакетов, чтобы убедиться, что у нас есть актуальная информация о доступных пакетах:

sudo apt update

Пример вывода:

Hit:1 http://mirrors.cloud.aliyuncs.com/ubuntu jammy InRelease
Hit:2 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-updates InRelease
Hit:3 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-backports InRelease
Hit:4 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-security InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
157 packages can be upgraded. Run 'apt list --upgradable' to see them.

Вывод команды обновления терминала

Затем установим компилятор GCC и связанные с ним инструменты разработки:

sudo apt install -y build-essential

Пример вывода:

Reading package lists...
Building dependency tree...
Reading state information...
build-essential is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.

Чтобы проверить установку и узнать версию GCC, выполните:

g++ --version

Пример вывода:

g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Компилятор GCC обычно уже добавлен в системный PATH, поэтому дополнительная настройка не требуется.

Создание нового исходного файла C++ с расширением .cpp

На этом этапе вы узнаете, как создать новый исходный файл C++ с расширением .cpp. В C++ исходные файлы используют расширение .cpp, чтобы указать, что они содержат код на C++. Мы будем использовать файловый менеджер и текстовый редактор WebIDE для создания нашего первого исходного файла C++.

Сначала перейдите в каталог ~/project в терминале:

cd ~/project

Теперь откройте файловый менеджер WebIDE. Вы увидите боковую панель со списком файлов и папок. Найдите значок, позволяющий создать новый файл — он может выглядеть как знак "+" или опция "New File".

Нажмите правой кнопкой мыши в файловом менеджере и выберите "New File". При появлении запроса назовите файл hello.cpp. Расширение .cpp имеет решающее значение, так как оно сообщает компилятору и инструментам разработки, что это исходный файл C++.

Пример создания файла в терминале (для справки):

touch hello.cpp

Нажмите на созданный файл hello.cpp, чтобы открыть его в текстовом редакторе WebIDE. Вы увидите пустой файл, готовый для вашего первого кода на C++.

Расширение .cpp важно, потому что:

  • Оно идентифицирует файл как файл исходного кода C++
  • Помогает инструментам разработки и компиляторам распознать тип файла
  • Отличает файлы C++ от файлов других языков программирования, таких как .c (C), .java (Java) или .py (Python)

Теперь ваш файл hello.cpp готов к написанию кода на C++. На следующих этапах вы узнаете, как написать базовую программу на C++ в этом файле.

Написание базовой структуры программы с функцией int main()

На этом этапе вы узнаете об основной структуре программы на C++, сосредоточившись на функции main(). Каждая программа на C++ должна иметь функцию main(), которая является точкой входа, с которой начинается выполнение программы.

Откройте файл hello.cpp в WebIDE, который вы создали на предыдущем этапе. Теперь мы добавим базовую структуру программы:

#include <iostream>

int main() {
    // Your code will go here
    return 0;
}

Примечание: Рекомендуется набирать код вручную для лучшего усвоения материала. Будьте внимательны с фигурными скобками { } и точками с запятой ;, так как они важны для синтаксиса C++. Не забывайте про пробелы и отступы, иначе проверка этапа может не пройти.

Давайте разберем эту базовую структуру:

  1. #include <iostream>: Это директива препроцессора, которая включает библиотеку потоков ввода/вывода. Она позволяет нам использовать операции ввода и вывода, такие как печать на экран.
  2. int main(): Это объявление главной функции
    • int указывает, что функция будет возвращать целое число
    • main() — стандартная точка входа для программ на C++
    • Пустые круглые скобки () указывают на то, что функция не принимает аргументов
  3. Фигурные скобки { }: Определяют тело функции, где будет написан ваш код
  4. return 0;: Указывает на успешное завершение программы
    • Возврат 0 сообщает операционной системе, что программа выполнилась без ошибок
    • Это стандартная практика в программах на C++

WebIDE будет автоматически сохранять ваши изменения по мере ввода. Или вы можете сохранить файл вручную, используя опцию сохранения в редакторе.

Если вы хотите узнать больше о WebIDE, ознакомьтесь с руководством по WebIDE.

Несколько важных моментов, которые следует запомнить:

  • Каждая программа на C++ должна иметь функцию main()
  • Функция main() — это место, где начинается выполнение программы
  • Оператор return 0; обычно используется для обозначения успешного выполнения программы

Вы можете представить функцию main() как отправную точку путешествия. Точно так же, как поездка начинается в определенном месте, программа на C++ начинает свое выполнение с функции main().

Использование cout для вывода сообщения Hello World

На этом этапе вы узнаете, как использовать cout для вывода сообщения "Hello, World!" на экран. cout является частью стандартной библиотеки ввода/вывода C++ и используется для отображения вывода.

Откройте файл hello.cpp в WebIDE и измените функцию main(), добавив следующий код:

#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

Давайте разберем новую строку кода:

  • std::cout: Это объект стандартного потока вывода
    • std:: указывает, что мы используем стандартное пространство имен
    • cout расшифровывается как "console output" (консольный вывод)
  • <<: Оператор вставки в поток, используемый для отправки данных в поток вывода
  • "Hello, World!": Текстовое сообщение, которое мы хотим вывести
  • std::endl: Добавляет новую строку и очищает буфер вывода
    • Гарантирует, что сообщение будет немедленно отображено
    • Перемещает курсор на следующую строку

При сохранении файла убедитесь, что включили всю структуру, показанную выше.

Несколько ключевых моментов о cout:

  • Он используется для вывода текста, чисел и других типов данных на экран
  • Оператор << можно объединять в цепочки для вывода нескольких элементов
  • std::endl используется для создания новой строки после вывода

Вы можете представить cout как мегафон, который объявляет ваше сообщение миру. Оператор << помогает вам загрузить сообщение, а std::endl гарантирует, что все услышат его четко.

Компиляция программы с помощью команды g++ hello.cpp -o hello

На этом этапе вы узнаете, как скомпилировать вашу программу на C++ с помощью компилятора g++. Компиляция — это процесс преобразования вашего читаемого человеком исходного кода C++ в исполняемую программу, которую может запустить компьютер.

Откройте терминал в WebIDE. Убедитесь, что вы находитесь в каталоге ~/project:

cd ~/project

Теперь давайте скомпилируем файл hello.cpp, который вы создали ранее, используя команду g++:

g++ hello.cpp -o hello

Давайте разберем эту команду:

  • g++: Компилятор GNU C++
  • hello.cpp: Исходный файл, который вы хотите скомпилировать
  • -o hello: Указывает имя выходного исполняемого файла
    • -o — это опция, позволяющая назвать выходной файл
    • hello — это имя исполняемого файла, который вы создадите

Пример вывода:

## Отсутствие вывода означает успешную компиляцию

Если компиляция прошла успешно, сообщения об ошибках не будут отображаться. Компилятор создает исполняемый файл с именем hello в том же каталоге.

Терминал компилирует код C++

Чтобы проверить компиляцию, вы можете просмотреть файлы в каталоге:

ls

Пример вывода:

hello  hello.cpp

Теперь вы должны увидеть два файла:

  • hello.cpp: Ваш файл с исходным кодом
  • hello: Скомпилированная исполняемая программа

Несколько важных примечаний по компиляции:

  • Если в вашем коде есть ошибки, g++ отобразит сообщения об ошибках
  • Всегда проверяйте и исправляйте любые ошибки компиляции перед попыткой запуска программы
  • Опция -o необязательна, но хорошей практикой является присвоение исполняемому файлу осмысленного имени

Вы можете представить компиляцию как перевод книги с одного языка на другой. Компилятор g++ переводит ваш читаемый человеком код C++ на язык, который компьютер может понять и выполнить.

Запуск программы с помощью команды ./hello

На этом этапе вы узнаете, как запустить исполняемую программу, которую вы только что скомпилировали. После компиляции программы на C++ вы можете выполнить ее, используя команду ./ с последующим именем исполняемого файла.

Убедитесь, что вы находитесь в каталоге ~/project:

cd ~/project

Чтобы запустить программу, которую вы скомпилировали на предыдущем этапе, используйте следующую команду:

./hello

Символы ./ говорят системе искать исполняемый файл в текущем каталоге, а hello — это имя созданного вами исполняемого файла.

Пример вывода:

Hello, World!

Давайте разберем, что происходит:

  • ./ означает "в текущем каталоге"
  • Программа считывает инструкции в вашем скомпилированном исполняемом файле
  • Она выводит сообщение, которое вы определили в исходном коде C++
  • После вывода программа завершается

Несколько важных примечаний по выполнению:

  • Всегда используйте ./ перед именем исполняемого файла при запуске программы в текущем каталоге
  • Программа должна иметь права на выполнение (которые g++ предоставляет автоматически)
  • Если вы не видите вывода, дважды проверьте, правильно ли вы скомпилировали программу

Вы можете представить выполнение программы как запуск автомобиля. Компиляция — это подготовка автомобиля, а запуск программы — это поворот ключа и начало движения.

Если вы хотите запустить программу несколько раз, вы можете просто повторить команду ./hello.

Добавление однострочных и многострочных комментариев

На этом этапе вы узнаете, как добавлять комментарии в ваш код на C++. Комментарии — это заметки в вашем коде, которые объясняют, что делает код. Они игнорируются компилятором и помогают сделать ваш код более читабельным.

Откройте файл hello.cpp в WebIDE и измените его, включив различные типы комментариев:

#include <iostream>

// This is a single-line comment
// It explains what the program does

/*
This is a multi-line comment
You can write multiple lines of explanation
Without worrying about adding // to each line
*/
int main() {
    // Print a greeting message
    std::cout << "Hello, World!" << std::endl;  // Inline comment explaining the output

    /*
    You can also use multi-line comments
    in the middle of your code if needed
    */
    return 0;  // Return success status to the operating system
}

Давайте разберем типы комментариев:

  1. Однострочные комментарии:

    • Начинаются с //
    • Распространяются до конца строки
    • Отлично подходят для кратких пояснений
  2. Многострочные комментарии:

    • Начинаются с /*
    • Заканчиваются на */
    • Могут занимать несколько строк
    • Полезны для более длинных пояснений
  3. Встроенные (inline) комментарии:

    • Добавляются в конце строки кода
    • Объясняют конкретную строку кода

Скомпилируйте и запустите программу, чтобы убедиться, что она все еще работает:

g++ hello.cpp -o hello
./hello

Пример вывода:

Hello, World!

Несколько ключевых моментов о комментариях:

  • Комментарии делают ваш код более понятным
  • Они помогают другим программистам (и вам самим) понять назначение кода
  • Компилятор полностью игнорирует комментарии
  • Используйте комментарии, чтобы объяснить "почему" что-то делается, а не "что" делается

Вы можете представить комментарии как стикеры в книге. Они предоставляют дополнительный контекст и пояснения, не меняя сам текст.

Использование endl и \n для переноса строк

На этом этапе вы узнаете два способа создания переносов строк в выводе C++: std::endl и символ новой строки \n. Оба метода помогают форматировать вывод в несколько строк.

Откройте файл hello.cpp в WebIDE и измените его, чтобы продемонстрировать переносы строк:

#include <iostream>

int main() {
    // Using std::endl for line breaks
    std::cout << "Hello, World!" << std::endl;
    std::cout << "Welcome to C++ Programming!" << std::endl;

    // Using \n for line breaks
    std::cout << "Using newline character:\n";
    std::cout << "Line 1\n";
    std::cout << "Line 2\n";

    // Mixing both methods
    std::cout << "Mixing methods: " << std::endl;
    std::cout << "Line with endl\n";
    std::cout << "Line with newline character" << std::endl;

    return 0;
}

👆 Советы LabEx: Нажмите "Explain Code" в правом нижнем углу блока кода, чтобы пообщаться с Labby AI для разъяснения кода.

Давайте разберем методы переноса строк:

  1. std::endl:

    • Добавляет новую строку
    • Очищает буфер вывода (обеспечивает немедленную печать)
    • Часть библиотеки <iostream>
    • Используется с std::cout
  2. \n (Символ новой строки):

    • Простой способ создания новой строки
    • Более легкий, чем std::endl
    • Работает во многих контекстах программирования
    • Не очищает буфер вывода

Скомпилируйте и запустите программу:

g++ hello.cpp -o hello
./hello

Пример вывода:

Hello, World!
Welcome to C++ Programming!
Using newline character:
Line 1
Line 2
Mixing methods:
Line with endl
Line with newline character

Ключевые моменты:

  • И std::endl, и \n создают новые строки
  • std::endl более комплексный, но немного медленнее
  • \n быстрее и легче
  • Вы можете комбинировать эти методы

Вы можете представить переносы строк как абзацы в книге. Они помогают организовать и структурировать ваш вывод.

Исправление распространенных синтаксических ошибок, таких как пропущенные точки с запятой

На этом этапе вы узнаете о распространенных синтаксических ошибках в C++, сосредоточившись на пропущенных точках с запятой. Точки с запятой имеют решающее значение в C++, так как они отмечают конец операторов.

Создайте новый файл с именем syntax_errors.cpp в WebIDE:

cd ~/project
touch syntax_errors.cpp
#include <iostream>

int main() {
    // Common syntax error: Missing semicolon
    std::cout << "This line has an error"  // Missing semicolon here!
    std::cout << "This line will not compile" << std::endl;

    // Correct version with semicolons
    std::cout << "This line is correct" << std::endl;
    std::cout << "All statements end with a semicolon" << std::endl;

    return 0;  // Don't forget the semicolon here too!
}

Попробуйте скомпилировать программу:

g++ syntax_errors.cpp -o syntax_errors

Пример ошибки компиляции:

syntax_errors.cpp: In function ‘int main()’:
syntax_errors.cpp:5:42: error: expected ‘;’ before ‘std’
    5 |     std::cout << "This line has an error"  // Missing semicolon here!
      |                                          ^
      |                                          ;
    6 |     std::cout << "This line will not compile" << std::endl;
      |     ~~~

Ключевые моменты о точках с запятой:

  • Каждый оператор в C++ должен заканчиваться точкой с запятой ;
  • Точки с запятой сообщают компилятору, где заканчивается одна инструкция и начинается другая
  • Пропущенные точки с запятой вызывают ошибки компиляции
  • Распространенные места, где забывают точки с запятой:
    • После операторов cout
    • После операторов return
    • В конце объявлений переменных

Давайте исправим ошибки:

  1. Добавьте пропущенные точки с запятой
  2. Убедитесь, что каждый оператор заканчивается на ;

Скомпилируйте исправленную версию:

g++ syntax_errors.cpp -o syntax_errors
./syntax_errors

Если все успешно, сообщения об ошибках не появятся.

Вы можете представить точки с запятой как точки в предложении. Они отмечают конец законченной мысли в вашем коде.

Резюме

В этой лабораторной работе вы научились устанавливать компилятор GCC (GNU Compiler Collection) для C++ и настраивать необходимые переменные окружения в Ubuntu 22.04. Вы создали новый исходный файл C++, написали базовую структуру программы с функцией int main() и использовали cout для вывода сообщения "Hello World". Затем вы скомпилировали программу с помощью команды g++ и выполнили ее. Кроме того, вы узнали, как добавлять однострочные и многострочные комментарии, использовать endl и \n для переноса строк, а также как исправлять распространенные синтаксические ошибки, такие как пропущенные точки с запятой.

После выполнения этих шагов у вас будет прочный фундамент для написания и запуска вашей первой программы на C++, а также понимание базовых инструментов и концепций, необходимых для разработки на C++ в Ubuntu 22.04.