153.02K
AI
Category: programmingprogramming

Основы программирования на C++

1.

ОСНОВЫ ПРОГРАММИРОВАНИЯ · ЛЕКЦИЯ
Язык
программирования
C++
История, области применения, особенности,
элементы языка и структура программы
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!";
return 0;
}
Hello, World!

2.

// ПЛАН ЛЕКЦИИ
О чём пойдёт речь
01
История языка C++
02
Области применения
03
Особенности языка
04
Алфавит, команды и элементы языка
05
Структура программы
Кто, когда и зачем создал язык; стандарты
Где сегодня используют C++
Чем C++ отличается от других языков, плюсы и минусы
Символы, имена, ключевые слова, типы данных, операторы
Из каких частей состоит программа и как её правильно записать

3.

// 01 · ИСТОРИЯ
Как появился C++
Автор — Бьёрн Страуструп
Датский программист, работал в Bell Labs (США) — там
же, где раньше создали язык C и систему Unix.
Зачем нужен был новый язык
Хотелось скорости языка C и удобства классов из языка
Simula для больших программ.
Откуда название
Сначала — «C с классами» (1979). В 1983 году Рик
Масситти предложил имя C++.
C++
В языке C знак ++ означает «увеличить
на 1».
C++ = «следующий шаг после C»

4.

// 01 · ИСТОРИЯ
Хронология
1979
1983
1985
Страуструп
Язык получает имя
Первый
начинает работу
C++
компилятор Cfront
над «C с классами»
и книга
Страуструпа о
языке
1998
2011
2020
2023
Первый
международный
стандарт ISO
Большое
обновление языка
— C++11
C++20: модули,
концепты,
корутины
C++23. Новый
стандарт —
каждые 3 года
За 40 с лишним лет C++ не устарел: язык постоянно обновляется, но старые программы продолжают
работать.

5.

// 01 · ИСТОРИЯ
Стандарты C++
Стандарт
Что появилось (простыми словами)
C++98
Первый официальный стандарт. Стандартная библиотека шаблонов (STL)
C++03
Исправление ошибок C++98
C++11
auto, лямбда-функции, умные указатели, цикл for по диапазону — «новый C++»
C++14
Небольшие улучшения C++11
C++17
Работа с файлами и папками (filesystem), std::optional
C++20
Модули, концепты, диапазоны (ranges), корутины
C++23
std::print — удобный вывод, std::expected
Число в названии — год выхода стандарта. Следующий стандарт — C++26.

6.

// 02 · ПРИМЕНЕНИЕ
Где используют C++
Операционные
системы
Игры
Браузеры
Базы данных
Части Windows и macOS,
драйверы устройств
Игровые движки, например
Unreal Engine
Google Chrome, Mozilla Firefox
MySQL, MongoDB
Графика и офис
Встраиваемые
системы
Финансы
Наука и ИИ
Adobe Photoshop, Microsoft
Office
Arduino, автомобили,
«умные» устройства
Биржевая торговля, где
важна каждая миллисекунда
Ядро TensorFlow и PyTorch,
научные расчёты

7.

// 03 · ОСОБЕННОСТИ
Особенности языка C++
Компилируемый
Программа заранее переводится
в машинный код, поэтому
работает очень быстро.
Работа с памятью
Программист сам выделяет и
освобождает память: указатели,
new и delete.
ООП
Классы и объекты: инкапсуляция,
наследование, полиморфизм.
Шаблоны
Библиотека STL
Совместимость
Один и тот же код работает с
разными типами данных.
Готовые структуры (vector, map) и
алгоритмы (sort, find).
Почти любой код на C работает в
C++. Компиляторы есть для всех
систем.

8.

// 03 · ОСОБЕННОСТИ
Плюсы и минусы
Плюсы
Минусы
Высокая скорость работы программ
Сложный язык, его долго изучать
Полный контроль над памятью и
«железом»
Легко ошибиться с памятью: утечки,
выход за границы массива
Разные стили: процедурный, ООП,
обобщённый
Большие проекты долго компилируются
Много устаревших возможностей ради
совместимости
Огромное количество библиотек и
готового кода
Строгие типы: многие ошибки видны ещё
до запуска

9.

// 03 · ОСОБЕННОСТИ
Как код превращается в программу
Исходный код
Препроцессор
Компилятор
Компоновщик
Программа
main.cpp
#include
main.obj
+ библиотеки
main.exe
текст, который пишет
программист
вставляет
подключённые файлы
переводит код в
машинный
соединяет все части
вместе
готова к запуску
Компиляторы
Среды разработки (IDE)
GCC (g++), Clang, Microsoft Visual C++
Visual Studio, Code::Blocks, CLion, VS Code

10.

// 04 · ЭЛЕМЕНТЫ ЯЗЫКА
Алфавит языка C++
Буквы
только латинские
Цифры
арабские
Специальные
символы
знаки операций, скобки
Пробелы
разделяют слова
B
C
…
Z
0
1
2
3
4
5
6
7
8
9
+
-
*
/
%
=
<
>
!
&
|
^
~
?
:
;
,
.
'
"
(
)
[
]
{
}
#
\
пробел
a
b
табуляция
c
…
z
знак подчёркивания тоже
считается буквой
A
_
новая строка
Важно: C++ различает большие и маленькие буквы — Sum, sum и SUM это три разных имени. Русские буквы пишут
только в строках и комментариях.

11.

// 04 · ЭЛЕМЕНТЫ ЯЗЫКА
Элементы языка
Из символов алфавита составляются «слова» языка — лексемы. Их шесть видов:
Идентификаторы
Ключевые слова
Константы
Имена переменных и функций
Зарезервированные слова языка
Значения, которые не меняются
sum
int
42
count
main
if
for
return
3.14
'A'
"Привет"
Знаки операций
Разделители
Комментарии
Действия над данными
Отделяют части программы
Пояснения; компьютер их
пропускает
;
// …
+
-
*
/
=
==
&&
,
( )
{ }
[ ]
/* … */

12.

// 04 · ЭЛЕМЕНТЫ ЯЗЫКА
Имена и ключевые слова
ПРАВИЛА ДЛЯ ИМЁН
1
Только латинские буквы, цифры и знак _
2
Не начинается с цифры
✓ Правильно
✗ Неправильно
sum
1x
начинается с цифры
total_price
my-var
x1
3
Не совпадает с ключевым словом
4
Без пробелов, дефисов, точек
5
Регистр важен: age ≠ Age
есть дефис
_count
int
maxValue
ключевое слово
my var
есть пробел
НЕКОТОРЫЕ КЛЮЧЕВЫЕ СЛОВА
int
return
double
const
char
class
bool
void
using
if
namespace
else
true
for
while
false
do
switch
case
break

13.

// 04 · ЭЛЕМЕНТЫ ЯЗЫКА
Основные типы данных
Тип
Что хранит
Размер*
Пример
int
целое число
4 байта
int age = 17;
double
дробное число
8 байт
double pi = 3.14;
float
дробное число (точность ниже)
4 байта
float t = 36.6f;
char
один символ
1 байт
char c = 'A';
bool
истина или ложь
1 байт
bool ok = true;
string
текст (библиотека <string>)
зависит от длины
string name = "Аян";
* Обычный размер на современных компьютерах. Точно узнать можно командой sizeof(int).

14.

// 04 · ЭЛЕМЕНТЫ ЯЗЫКА
Набор команд (операторов)
Назначение
Команда
Пример
Объявить переменную
тип имя;
int a = 5;
Присвоить значение
=
a = b + 1;
Ввести с клавиатуры
cin >>
cin >> a;
Вывести на экран
cout <<
cout << a << endl;
Проверить условие
if … else
if (a > 0) … else …
Выбрать вариант
switch … case
switch (day) { case 1: … }
Повторить n раз
for
for (int i = 0; i < n; i++)
Повторять, пока верно
while, do … while
while (x > 0) { … }
Прервать, завершить
break, continue, return
return 0;

15.

// 04 · ЭЛЕМЕНТЫ ЯЗЫКА
Команды в действии
Условие if
Цикл for
Цикл while
int age = 17;
if (age >= 18)
cout << "Взрослый";
else
cout << "Подросток";
for (int i = 1; i <= 5; i++)
cout << i << " ";
int n = 1234, s = 0;
while (n > 0) {
s += n % 10;
n /= 10;
}
cout << s;
Вывод: Подросток
Вывод: 1 2 3 4 5
Вывод: 10
Если условие верно — первая ветка,
иначе — вторая.
i начинается с 1 и растёт на 1, пока i ≤
5.
Сумма цифр: берём последнюю цифру
и отбрасываем её.

16.

// 05 · СТРУКТУРА ПРОГРАММЫ
Из чего состоит программа
// Сумма двух чисел
#include <iostream>
using namespace std;
int main()
{
int a, b;
cout << "Введите два числа: ";
cin >> a >> b;
int sum = a + b;
cout << "Сумма = " << sum << endl;
return 0;
}
1
2
3
4
5
6
7
// …
Комментарий — пояснение для человека
#include <iostream>
Подключает библиотеку ввода-вывода
using namespace std;
Позволяет писать cout вместо std::cout
int main() { … }
Главная функция — отсюда начинается работа
int a, b;
Объявление переменных
cin >>
cout <<
Ввод с клавиатуры и вывод на экран
return 0;
Программа завершилась успешно

17.

// 05 · СТРУКТУРА ПРОГРАММЫ
Правила записи и частые ошибки
ПРАВИЛА
1
Каждая команда заканчивается ;
ЧАСТЫЕ ОШИБКИ
✗ cout << a
✓ cout << a;
забыли точку с запятой
2
Группа команд берётся в фигурные скобки {
}
3
Большие и маленькие буквы различаются
✗ if (a = 5)
= присваивает, == сравнивает
✗ Int Main()
4
5
Работа всегда начинается с функции main()
Отступы не обязательны, но делают код
понятнее
✓ if (a == 5)
✓ int main()
регистр букв важен
✗ cout без #include
не подключили библиотеку
✓ #include <iostream>

18.

// САМОКОНТРОЛЬ
Ответить на вопросы
01
Кто и когда создал язык C++? Почему он так называется?
02
Назовите области применения C++.
03
Перечислите основные особенности языка C++.
04
Из каких символов состоит алфавит C++?
05
Назовите элементы языка. Какие имена переменных допустимы?
06
Из каких частей состоит программа на C++?
English     Русский Rules