JustCaptain kod-buduschego
835a3dbfdce6940e318778c5ce0353de47e5de32
Перейти к файлу
Код
kod-buduschego C++Тема 1.1 Введение в олимпиадное программирование и среду разработкиНеобходимый материал.md
anc add 1.3. topic 253504b 2 недели назад
Необходимый материал.md

📘 Тема 1.1. Необходимый материал#

Шпаргалка по первым программам на C++: из чего состоит программа, как ввести и вывести данные и посчитать результат.


1. Как устроена программа#

#include <iostream>       // подключаем библиотеку ввода-вывода
using namespace std;      // чтобы писать cout вместо std::cout

int main() {              // отсюда начинается выполнение программы
    // здесь пишем код

    return 0;             // программа завершилась без ошибок
}
Часть Зачем нужна
#include <iostream> даёт доступ к cin, cout, endl
using namespace std; позволяет не писать std:: перед cin и cout
int main() { ... } главная функция — код выполняется отсюда
{ и } начало и конец блока кода
return 0; завершение программы

Заметка

Без using namespace std; пишут полностью: std::cout, std::cin, std::endl.


2. Точка с запятой ;#

Почти каждая инструкция в C++ заканчивается точкой с запятой.

int a = 5;
cout << a;

Предупреждение

Забытая ; — самая частая ошибка компиляции.


3. Комментарии#

Комментарии не выполняются — это заметки для человека.

// однострочный комментарий

/*
   многострочный
   комментарий
*/

4. Вывод на экран — cout#

cout << "Hello!";
Hello!

Можно выводить числа, переменные и несколько значений подряд:

int a = 5, b = 10;

cout << 42;                  // 42
cout << a;                   // 5
cout << a << " " << b;       // 5 10
cout << "Сумма: " << a + b;  // Сумма: 15

Совет

Между значениями пробел сам не появится — его нужно вывести явно: << " " <<.


5. Перевод строки — endl и \n#

cout << "Привет" << endl;
cout << "Мир" << "\n";
Привет
Мир

Оба способа переводят вывод на новую строку.


6. Переменные#

Переменная — именованная ячейка памяти, в которой хранится значение.

тип имя = значение;
int age = 16;
int count;          // объявили без значения
count = 3;          // присвоили значение позже

int x = 1, y = 2;   // несколько переменных сразу
Тип Что хранит Пример
int целые числа int n = 25;
long long большие целые числа long long big = 5000000000;
double дробные числа double h = 1.75;
char один символ char c = 'A';
string текст string s = "Alex";
bool истина или ложь bool ok = true;

Правила для имён#

  • латинские буквы, цифры и _;
  • нельзя начинать с цифры;
  • Age и age — разные переменные;
  • нельзя использовать слова языка (int, return, if …).

7. Ввод с клавиатуры — cin#

int n;
cin >> n;

Несколько значений подряд — через пробел или с новой строки, cin прочитает одинаково:

int a, b, c;
cin >> a >> b >> c;
3 7 10

или

3
7
10

Важно

В олимпиадных задачах не выводите подсказки вроде Введите число:. Программа должна вывести ровно то, что написано в формате выходных данных, — иначе ответ будет считаться неверным.


8. Арифметика#

Операция Запись Пример Результат
сложение + 7 + 2 9
вычитание - 7 - 2 5
умножение * 7 * 2 14
деление / 7 / 2 3
остаток от деления % 7 % 2 1
int a = 17, b = 5;

cout << a / b << endl;   // 3 — дробная часть отбрасывается
cout << a % b << endl;   // 2 — остаток

Предупреждение

Деление двух целых чисел даёт целое число: 7 / 2 равно 3, а не 3.5.

Порядок действий#

Как в математике: сначала *, /, %, затем + и -. Скобки меняют порядок.

cout << 2 + 3 * 4 << endl;     // 14
cout << (2 + 3) * 4 << endl;   // 20

Изменение переменной#

int x = 10;

x = x + 5;    // 15
x += 5;       // 20 — то же самое короче
x -= 3;       // 17
x *= 2;       // 34
x /= 4;       // 8
x++;          // 9 — увеличить на 1
x--;          // 8 — уменьшить на 1

9. Работа с цифрами числа#

int n = 4729;

cout << n % 10 << endl;          // 9 — последняя цифра
cout << n / 10 << endl;          // 472 — число без последней цифры
cout << n / 10 % 10 << endl;     // 2 — предпоследняя цифра
cout << n / 1000 << endl;        // 4 — первая цифра четырёхзначного числа

10. Условие if (для логических задач)#

if (условие) {
    // если условие истинно
} else {
    // иначе
}
Оператор Значение
== равно
!= не равно
> < больше, меньше
>= <= больше или равно, меньше или равно
&& и
|| или
int n = 7;

if (n % 2 == 0) {
    cout << "Чётное" << endl;
} else {
    cout << "Нечётное" << endl;
}

Предупреждение

= — присваивание, == — сравнение.


11. Повторение — цикл for#

for (int i = 1; i <= 5; i++) {
    cout << i << " ";
}
1 2 3 4 5
Часть Значение
int i = 1 начальное значение счётчика
i <= 5 цикл работает, пока условие истинно
i++ что делать со счётчиком после каждого шага

Перебор всех вариантов — например, всех двузначных чисел:

for (int x = 10; x <= 99; x++) {
    // проверяем число x
}

12. Как проверяют решения#

Решение запускается на наборе тестов. Для каждого теста ответ программы сравнивается с правильным.

Вердикт Что значит
OK / Accepted все тесты пройдены
WA неверный ответ хотя бы на одном тесте
CE ошибка компиляции — код не собрался
RE программа упала во время работы
TLE программа работала слишком долго

13. Шаблон программы#

#include <iostream>
using namespace std;

int main() {
    // 1. объявить переменные

    // 2. ввести данные

    // 3. посчитать

    // 4. вывести ответ

    return 0;
}