OnePorted

Полное руководство по C++

Введение в C++

C++ - это мощный объектно-ориентированный язык программирования, разработанный Бьярне Страуструпом как расширение языка C. C++ предоставляет возможности для низкоуровневого манипулирования памятью, высокопроизводительных вычислений и создания крупномасштабных программных систем.

Основная структура программы на C++

#include <iostream>
using namespace std;

int main() {
    cout << "Привет, мир!" << endl;
    return 0;
}

Это простейшая программа на C++. Давайте разберем каждую строку:

  • #include <iostream>: Подключает библиотеку для ввода-вывода.
  • using namespace std;: Позволяет избежать явного указания пространства имен std перед каждой функцией.
  • int main(): Основная функция, с которой начинается выполнение программы.
  • cout << "Привет, мир!" << endl;: Выводит текст на экран.
  • return 0;: Завершает программу и возвращает код успешного выполнения.

Переменные и типы данных

#include <iostream>
using namespace std;

int main() {
    int age = 25;
    double height = 1.75;
    char grade = 'A';
    bool isStudent = true;

    cout << "Возраст: " << age << endl;
    cout << "Рост: " << height << " м" << endl;
    cout << "Оценка: " << grade << endl;
    cout << "Студент: " << (isStudent ? "Да" : "Нет") << endl;

    return 0;
}

C++ поддерживает различные типы данных. Вот некоторые из основных:

  • int: Целые числа
  • double: Числа с плавающей точкой
  • char: Символы
  • bool: Логические значения (true/false)
  • string: Строки (требуется подключение <string>)

Условные операторы

#include <iostream>
using namespace std;

int main() {
    int number = 10;

    if (number > 0) {
        cout << "Число положительное" << endl;
    } else if (number < 0) {
        cout << "Число отрицательное" << endl;
    } else {
        cout << "Число равно нулю" << endl;
    }

    return 0;
}

Условные операторы позволяют выполнять различные действия в зависимости от условий.

Циклы

#include <iostream>
using namespace std;

int main() {
    // Цикл for
    for (int i = 0; i < 5; i++) {
        cout << i << " ";
    }
    cout << endl;

    // Цикл while
    int j = 0;
    while (j < 5) {
        cout << j << " ";
        j++;
    }
    cout << endl;

    return 0;
}

C++ поддерживает несколько типов циклов для повторения действий:

  • for: Используется, когда известно количество итераций
  • while: Выполняется, пока условие истинно
  • do-while: Похож на while, но гарантирует хотя бы одно выполнение

Одномерные массивы

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};

    for (int i = 0; i < 5; i++) {
        cout << numbers[i] << " ";
    }
    cout << endl;

    return 0;
}

Одномерный массив в C++ позволяет хранить несколько значений одного типа в одном массиве. В примере:

  • int numbers[5]: Объявляет массив из пяти целых чисел.
  • numbers[i]: Обращение к элементу массива по индексу.

Двумерные массивы

#include <iostream>
using namespace std;

int main() {
    int matrix[2][3] = {
        {1, 2, 3},
        {4, 5, 6}
    };

    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}

Двумерный массив в C++ представляет собой массив массивов, что позволяет хранить данные в виде таблицы:

  • int matrix[2][3]: Объявляет двумерный массив с 2 строками и 3 столбцами.
  • matrix[i][j]: Обращение к элементу массива по индексам.

Закрепление знаний

Теперь давайте попробуем решить несколько задач, чтобы закрепить пройденный материал:

Задача 1: Сумма элементов массива

Напишите программу, которая вычисляет сумму всех элементов в одномерном массиве из 5 целых чисел.

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    int sum = 0;

    for (int i = 0; i < 5; i++) {
        sum += numbers[i];
    }

    cout << "Сумма элементов массива: " << sum << endl;

    return 0;
}

Задача 2: Поиск максимального элемента в двумерном массиве

Напишите программу, которая находит максимальное значение в двумерном массиве размером 3x3.

#include <iostream>
using namespace std;

int main() {
    int matrix[3][3] = {
        {3, 8, 2},
        {7, 1, 5},
        {6, 4, 9}
    };
    int maxVal = matrix[0][0];

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if (matrix[i][j] > maxVal) {
                maxVal = matrix[i][j];
            }
        }
    }

    cout << "Максимальное значение в массиве: " << maxVal << endl;

    return 0;
}

Функции

#include <iostream>
#include <string>
using namespace std;

int add(int a, int b) {
    return a + b;
}

void printMessage(string message) {
    cout << message << endl;
}

int main() {
        int result = add(5, 3);
    cout << "5 + 3 = " << result << endl;

    printMessage("Привет, функции!");

    return 0;
}

Функции в C++ позволяют структурировать код и повторно использовать логику. В примере:

  • int add(int a, int b): Возвращает сумму двух чисел.
  • void printMessage(string message): Выводит строку на экран.

Введение в объекты и классы

#include <iostream>
using namespace std;

class Dog {
public:
    string name;
    int age;

    void bark() {
        cout << name << " говорит: Гав-гав!" << endl;
    }
};

int main() {
    Dog myDog;
    myDog.name = "Бобик";
    myDog.age = 3;
    myDog.bark();

    return 0;
}

C++ поддерживает объектно-ориентированное программирование (ООП). Классы позволяют объединять данные и методы для работы с ними:

  • class Dog: Определяет класс с полями name и age.
  • void bark(): Метод класса, выводящий сообщение на экран.

Завершение и компиляция

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