Напишите свою первую программу на C++

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/BasicsGroup -.-> cpp/variables("Variables") cpp/BasicsGroup -.-> cpp/strings("Strings") cpp/ControlFlowGroup -.-> cpp/if_else("If...Else") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/comments("Comments") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/variables -.-> lab-446069{{"Напишите свою первую программу на C++"}} cpp/strings -.-> lab-446069{{"Напишите свою первую программу на C++"}} cpp/if_else -.-> lab-446069{{"Напишите свою первую программу на C++"}} cpp/output -.-> lab-446069{{"Напишите свою первую программу на C++"}} cpp/user_input -.-> lab-446069{{"Напишите свою первую программу на C++"}} cpp/files -.-> lab-446069{{"Напишите свою первую программу на C++"}} cpp/comments -.-> lab-446069{{"Напишите свою первую программу на C++"}} cpp/code_formatting -.-> lab-446069{{"Напишите свою первую программу на C++"}} end

Установка компилятора 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.
Terminal update command output

Далее установим компилятор 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 - это имя исполняемого файла, который вы создадите

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

## No output means successful compilation

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

Terminal compiling C++ code

Для проверки компиляции вы можете проверить файлы в каталоге:

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. Встроенные комментарии:

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

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

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.