581.37K
Category: programmingprogramming

5

1.

Пространства имён в C++
Пространство имён (англ. namespace) — это группа
взаимосвязанных функций, переменных, констант, классов,
объектов и других компонентов программы. Пространство имен
позволяет сгруппировать функционал в отдельные контейнеры.
С самого начала изучения C++ мы используем команду std:: cout,
чтобы выводить данные в терминал. На самом деле команда
называется просто cout, а std — это пространство имён,
в котором она находится.
Пространства имён нужны, чтобы логически связывать части
программы и избегать конфликта имён. Например,
математические функции, физические, бухгалтерские и так
далее.
using namespace std;

2.

Пространства имён в C++

3.

Пространства имён в C++

4.

Пространства имён в C++

5.

Математическая минутка
1. Квадрат числа
Квадрат числа — результат умножения числа само на себя. Обозначается
«х²»: переменная отражает число, чей квадрат вычисляется, верхний
индекс справа — вторую степень. Обратной операцией является
извлечение квадратного корня.
Квадрат будет положительным числом независимо от того, возводится ли
в него положительное или отрицательное число.
Например: 5² = 25, а также (−5)² = 25.
Квадрат нуля равен нулю.
Возведение в квадрат — частный случай возведения в степень.
2. Куб числа
Куб числа — математическая степень, результат троекратного умножения
числа на себя.
Например, куб числа 3 равен 27, так как 3 × 3 × 3 = 27.

6.

Математическая минутка
3. Среднее арифметическое
Среднее арифметическое — среднее значение набора чисел, вычисляемое путём
сложения заданных чисел, затем деления полученной суммы на количество чисел.
Позволяет сделать обобщённые выводы касательно группы чисел или понятий, ими
выраженных.
Алгоритм вычисления среднего арифметического можно представить в виде
формулы: среднее арифметическое = (Число 1 + Число 2 + ... + Число N) / N, где N —
количество чисел.
Например, для чисел 5, 8 и 9 среднее арифметическое будет (5 + 8 + 9) / 3 = 7,33.
Расчёты будут аналогичными как для целых чисел, так и для обыкновенных или
десятичных дробей.
Найти:
1) Среднее арифметическое 5 чисел – 54, 2, 8, 98, -12.
2) Значение первого числа, зная, что среднее арифметическое 3-х чисел (х, 20, 30),
включая первое, равно 30.

7.

Математическая минутка
4. Функция
Функция — понятие в математике, означающее зависимость одних переменных
величин от других.
Простыми словами, функция показывает, как изменение одного числа влияет на
другое. Например, если вы покупаете конфеты по цене 20 рублей за штуку, то общая
стоимость покупки зависит от количества конфет. Это и есть пример функции:
y = 20x,
где x — количество конфет, а y — стоимость покупки.
Главные правила функции:
Один вход → один выход (каждому X соответствует свой Y).
Всегда одинаковый результат для одного и того же числа.
Нельзя два разных выхода для одного входа.

8.

Типы данных
В языке C++ есть встроенная поддержка определенных типов данных. Их
называют
основными
типами
данных
(или
"фундаментальные/базовые/встроенные типы данных").

9.

Задачи 1

10.

Ключевые слова и идентификаторы
Ключевые слова - это «зарезервированные команды» языка.
Язык C++ имеет зарезервированный набор из 84 слов (включая
версию С++17) для собственного использования. Эти слова
называются ключевыми словами, каждое из которых имеет
свое особое значение.
Мы уже сталкивались с некоторыми ключевыми словами.
Вместе с набором операторов, ключевые слова определяют
весь язык C++ (не включая команд препроцессора). Поскольку
они
имеют
особые
значения,
то
IDE
всегда
выделяют/подсвечивают их другим цветом.

11.

12.

Ключевые слова и идентификаторы

13.

Ключевые слова и идентификаторы

14.

Ключевые слова и идентификаторы

15.

Идентификатор — это имя переменной, функции, класса или
другого объекта в языке C++. Мы можем определять
идентификаторы любыми словами/именами.
Тем не менее, есть несколько общих правил, которые
необходимо соблюдать:
1) Идентификатор не может быть ключевым словом. Ключевые
слова зарезервированы.
2) Идентификатор может состоять только из букв (нижнего и
верхнего регистра) латинского алфавита, цифр и символов
подчёркивания. Это означает, что все другие символы и
пробелы — запрещены.
3) Идентификатор должен начинаться с буквы (нижнего или
верхнего регистра). Он не может начинаться с цифры.
4) Язык C++ различает нижний регистр от верхнего. nvalue
отличается от nValue и отличается от NVALUE.

16.

Теперь, когда вы знаете, как можно
называть объекты, давайте поговорим о
том, как их нужно называть.

17.

1) В языке C++ имена переменных начинаются с буквы в нижнем
регистре.
1. int value; // корректно
2.
3. int Value; // некорректно (должно начинаться с буквы в нижнем
регистре)
4. int VALUE; // некорректно (должно начинаться с буквы в
нижнем регистре)
5. int VaLuE; // некорректно (должно начинаться с буквы в
нижнем регистре)
2) Не начинайте ваши имена с символа подчёркивания, так как
такие имена уже зарезервированы для ОС, библиотеки и/или
используются компилятором.

18.

19.

20.

Если имя переменной или функции состоит из нескольких слов,
то здесь есть два варианта:
- использовать snake_case — принцип, когда несколько слов
разделяются нижним подчёркиванием;
- использовать camelCase — принцип, когда несколько слов
пишутся слитно, без пробелов, и каждое новое слово пишется
с заглавной буквы.
snake_case (с английского «змеиный регистр») получил свое
название, т.к. символ подчёркивания (_) визуально соединяет
слова и напоминает извивающуюся змею.
camelCase (с английского «верблюжий стиль») получил свое
название из-за заглавных букв, которые напоминают
верблюжьи горбы.

21.

int value_apple;
int valueApple;

22.

1. int my_variable_name; // корректно (используется snake_case)
2. void my_function_name(); корректно (используется snake_case)
3.
4. int myVariableName; // корректно (используется сamelCase)
5. void myFunctionName(); // корректно (используется сamelCase)
6.
7. int my variable name; // некорректно (пробелы запрещены)
8. void my function name(); // некорректно (пробелы запрещены)
9.
10. int MyVariableName; // работает, но не рекомендуется (следует
начинать с буквы в нижнем регистре)
11. void MyFunctionName(); // работает, но не рекомендуется

23.

3) Используйте в качестве идентификаторов только те
имена, которые реально описывают то, чем является
объект.

24.

25.

26.

4) Уточняющий комментарий всегда будет только плюсом.
Например, мы объявили переменную с именем numberOfChars,
которая должна хранить количество символов определенной
части строки.
Сколько символов в строке Hello, world!: 10, 11, 12 или 13?
Это зависит от того, учитываем ли мы пробелы и знаки
препинания или нет. Вместо названия переменной
numberOfCharsIncludingWhitespaceAndPunctuation
лучше
оставить хороший комментарий, который прояснит ситуацию:
1. // Эта переменная подсчитывает количество символов части строки,
включая пробелы и знаки препинания
2. int numberOfChars;

27.

Какие из переменных неправильно названы и
почему?
• int result;
• int _oranges;
• int NUMBER;
• int the name of a variable;
• int TotalCustomers;
• int void;
• int countFruit;
• int 4orYou;
• int kilograms_of_pipe;

28.


int result. Всё ок.
int _oranges. Имена переменных не должны начинаться с
символов подчёркивания.
int NUMBER. Имена переменных должны начинаться с буквы
в нижнем регистре.
int the name of a variable. Имена переменных не могут
содержать пробелы.
int TotalCustomers. Имена переменных должны начинаться с
буквы в нижнем регистре.
int void. void — это ключевое слово и его нельзя использовать
в качестве идентификатора для своих переменных или
функций.
int countFruit. Всё ок.
int 4orYou. Имена переменных не могут начинаться с цифр.
int kilograms_of_pipe. Всё ок.

29.

Инициализация переменных
При объявлении переменной мы можем присвоить ей значение
в этот же момент. Это называется инициализацией переменной.
Язык C++ поддерживает 2 основных способа инициализации
переменных.
Способ №1: Копирующая инициализация (или "инициализация
копированием") с помощью знака равенства =:
1. int nValue = 5; // копирующая инициализация
Способ №2: Прямая инициализация с помощью круглых скобок
():
1. int nValue(5); // прямая инициализация
Прямая инициализация лучше работает с одними типами
данных, копирующая инициализация — с другими.

30.

uniform-инициализация
Прямая или копирующая инициализация работают не со всеми типами
данных (например, вы не сможете использовать эти способы для
инициализации списка значений).
В попытке обеспечить единый механизм инициализации, который будет
работать со всеми типами данных, в C++11 добавили новый способ
инициализации, который называется uniform-инициализация:
1. int value{5};
Инициализация переменной с пустыми фигурными скобками указывает на
инициализацию по умолчанию (переменной присваивается 0):
1. int value{}; // инициализация переменной по умолчанию значением 0 (ноль)

31.

32.

33.

Объявление нескольких переменных
В одном стейтменте можно объявить сразу несколько
переменных одного и того же типа данных, разделяя их имена
запятыми. Например, следующие 2 фрагмента кода выполняют
одно и то же:
1. int a, b;
И:
1. int a;
2. int b;
Кроме того, вы даже можете инициализировать несколько
переменных в одной строке:
1. int a = 5, b = 6;
2. int c(7), d(8);
3. int e{9}, f{10};

34.

Есть 3 ошибки, которые совершают новички при объявлении нескольких
переменных в одном стейтменте:
Ошибка №1: Указание каждой переменной одного и того же типа данных при
инициализации нескольких переменных в одном стейтменте. Это не критичная
ошибка, так как компилятор легко её обнаружит и сообщит вам об этом:
1. int a, int b; // неправильно (ошибка компиляции)
2.
3. int a, b; // правильно
Ошибка №2: Использование разных типов данных в одном стейтменте.
Переменные разных типов должны быть объявлены в разных стейтментах. Эту
ошибку компилятор также легко обнаружит:
1. int a, double b; // неправильно (ошибка компиляции)
2.
3. int a; double b; // правильно (но не рекомендуется)
4.
5. // Правильно и рекомендуется (+ читабельнее)
6. int a;
7. double b;

35.

Ошибка №3: Инициализация двух переменных с помощью одной операции:
1. int a, b = 5; // неправильно (переменная a остаётся неинициализированной)
2.
3. int a = 5, b = 5; // правильно
Хороший способ запомнить эту ошибку и не допускать в будущем —
использовать прямую или uniform-инициализацию:
1. int a, b(5);
2. int c, d{5};
Этот вариант наглядно показывает, что значение 5 присваивается только
переменным b и d.
Правило: Избегайте объявления нескольких переменных в
одной строке, если не собираетесь инициализировать каждую
из них.

36.

Где объявлять переменные?
1. #include <iostream>
2.
3. int main()
4. {
5. // Все переменные в самом верху функции
6. int x;
7. int y;
8.
9. // А затем уже весь остальной код
10. std::cout << "Enter a number: ";
11. std::cin >> x;
12.
13. std::cout << "Enter another number: ";
14. std::cin >> y;
15.
16. std::cout << "The sum is: " << x + y << std::endl;
17. return 0;
18. }

37.

1. #include <iostream>
2.
3. int main()
4. {
5. std::cout << "Enter a number: ";
6. int x; // мы используем x в следующей строке, поэтому объявляем эту
переменную здесь (как можно ближе к её первому использованию)
7. std::cin >> x; // первое использование переменной x
8.
9. std::cout << "Enter another number: ";
10. int y; // переменная y понадобилась нам только здесь, поэтому здесь её и
объявляем
11. std::cin >> y; // первое использование переменной y
12.
13. std::cout << "The sum is: " << x + y << std::endl;
14. return 0;
15. }
Правило: Объявляйте переменные как можно ближе к их первому
использованию.

38.

Задачи 2
English     Русский Rules