738.84K
Категория: ПрограммированиеПрограммирование

Базовые концепции программирования

1.

Базовые концепции
программирования

2.

Но сперва немного теории
Языки программирования делятся на две основные группы
ИНТЕРПРЕТИРУЕМЫЕ и КОМПИЛИРУЕМЫЕ.
Такое деление связано с тем, какая специализированная
программа переводит команды с языка программирования
на машинный язык — КОМПИЛЯТОР или ИНТЕРПРЕТАТОР.
* Язык С++, к изучению которого вы приступаете является
компилируемым языком.

3.

Интерпретатор
Каждый раз при запуске программы интерпретатор осуществляет
проверку кода построчно:
1. Ошибок в синтаксисе нет: команды будут преобразованы
в машинный код. Программа выполнится
2. Ошибка – есть: интерпретатор остановится и покажет
сообщение об ошибке.
Как вывод - машинная версия кода нигде не сохраняется.
Минусы такого подхода состоят в том, что скорость запуска
программы снижается, но отключить проверку невозможно

4.

Компилятор
- то же самое, что и интерпретатор, но при встрече ошибки не
останавливается, а выявляет все ошибки и показывает стек с
пояснением ошибок.
Процесс работы компилятора:
1. Формирование специального объектного файла с расширением
.OBJ. В этом файле хранится текст программы, переведенный
на машинный язык.
2. Далее Линковщик(программа) собирает код из .OBJ в
исполняемый файл .EXE.
Схема: *.CPP => *.OBG(O) => *.EXE

5.

Библиотеки и заголовочные файлы
Библиотека — это набор готовых функций, классов и объектов,
которые можно использовать в программе, чтобы не писать код "с
нуля".
Преимущества:
• Ускорение разработки.
• Стандартизация решений.
• Сокращение ошибок (проверенный код).

6.

Библиотеки и заголовочные файлы
К файлу можно подключать:
1. Стандартные библиотеки C++ (STL)
2. Заголовочные файлы:

7.

Библиотеки и заголовочные файлы
Стандартная библиотека C++ (STL) — это часть стандарта C++,
включающая:
• Контейнеры (хранение данных): vector, list, map.
• Алгоритмы (обработка данных): сортировка, поиск.
• Итераторы (доступ к элементам контейнеров).
• Потоки ввода-вывода (iostream).
Сегодня мы с вами будем использовать библиотеку <iostream> для
ввод/вывода в консоль

8.

Библиотеки и заголовочные файлы
Заголовочные файлы – это пользовательские(ваши) библиотеки,
которые вы можете использовать в своих файлах с кодом.
Оставим более подробное объяснение на потом :)

9.

Первая программа
Важные моменты:
1. Для компиляции и запуска программа должна иметь точку
входа. Точкой входа является функция main().
2. Для работы некоторых функций, например, ввода/вывода
информации в консоль, необходимо подключить библиотеки.

10.

Первая программа
3. В С++ есть стандартная библиотека std — это пространство имён,
содержащее все стандартные классы и функции C++.
Обратиться к функциям можно так: std::

11.

Ввод и вывод (cin, cout)
cout — выводит данные в консоль.
cin — считывает данные с клавиатуры.
Перепишите код и попробуйте его запустить

12.

Escape-последовательности
- это символы, начинающиеся с обратного слеша (\), которые
позволяют:
• Вставлять непечатаемые символы (например, перенос строки).
• Отображать специальные символы (кавычки, обратный слеш).
• Управлять консолью (звуковой сигнал).

13.

Escape-последовательности
Без них невозможно корректно вывести некоторые символы или
управлять форматированием.

14.

Escape-последовательности
Без них невозможно корректно вывести некоторые символы или
управлять форматированием.
Последовательность Назначение
Пример кода
Результат в консоли
\n
Перенос строки
"Строка 1\nСтрока 2"
Строка 1
Строка 2
\t
Табуляция (отступ)
"Имя:\tАнна"
Имя: Анна
\\
Вывод обратного слеша
"C:\\Program Files"
C:\Program Files
\"
Вывод двойной кавычки
"Он сказал: \"Привет!\"" Он сказал: "Привет!"
\b
Backspace (удаление
символа)
"Hello\b\b\b"
He (курсор вернется на
позицию 'l')
\r
Возврат каретки в начало
строки
"Загрузка...\rГотово!"
Готово!.. (перезапись
строки)

15.

Escape-последовательности
Без них невозможно корректно вывести некоторые символы или
управлять форматированием.

16.

Задание 5
*Решите с помощью Escape-последовательности

17.

Raw-строки
Игнорируют escape-последовательности:
1. Код:
2. Вывод:

18.

Задание 5
*решите с помощью raw-строки

19.

Переменные и типы данных
Переменные — это "контейнеры" для хранения данных.
Каждая переменная имеет:
1. Тип, который определяет;
2. Размер переменной в памяти (сколько байт занимает);
3. Диапазон допустимых значений (минимальное и максимальное
значение);
4. Допустимые операции (например, int можно складывать, а bool
— нет).

20.

Переменные и типы данных
*в примере с символом, в памяти хранится значение из таблицы ASCII

21.

Переменные и типы данных
По умолчанию числовые типы – знаковые. Они имеют диапазон
значений от −2^(n−1) до 2^(n−1)-1, где n – количество битов,
занимаемых типом.
Приставка unsigned перед типом делает его беззнаковым.
В этом случае диапазон допустимых значений будет от 0 до 2^(n−1)-1

22.

Переменные и типы данных
В ходе работы важно присвоить правильным тип данных с
учетом его размера.
При арифметических операциях может возникнуть
переполнение(выход за размеры) переменной. Это может
привести к некорректному результату, или к
неопределенному поведению.

23.

Переменные и типы данных
Пример объявления и инициализации:
int age_pet = 10;
В качестве стиля переменных используйте либо camelCase, либо
snake_case;

24.

Переменные и типы данных
Константы — переменные, чьи значения нельзя изменить после
объявления. Используйте const:

25.

Переменные и типы данных
Значение типов данных можно вывести с помощью std::cout.
*вместе

26.

Задание 7: анкета
Пользователь вводит данные о себе,
программа проверяет их корректность и
выводит результат.
Требования:
1. Использовать типы: int, double, char, bool.
2. Добавить проверки с помощью
операторов сравнения и логических
операторов.
3. Пункт с возрастом > 14 лет
(возраст должен быть указан константой)
4. Выполнить простое вычисление
(например, перевод роста в сантиметры).

27.

Переменные и типы данных
Перечислимый тип(enum) – набор именованных целочисленных
констант для улучшения читаемости кода.
Особенности:
1. Значения элементов начинаются с 0 и увеличиваются на 1.
2. Можно явно задавать значения;
3. В C++11 появился enum class (более безопасный):

28.

Операторы
1. Арифметические:
+, -, *, / (деление), % (остаток от деления).
2. Инкремент/Декремент
«++» - прибавляет 1
«--» - вычитает 1
3. Логические:
Используются в условиях: && (И), || (ИЛИ), ! (НЕ).

29.

*Можно решить без проверки ввода
Формат вывода:

30.

Алгоритм решения
1. Начало
2. Ввести с клавиатуры число количество секунд с начала дня
3. Определить количество часов
4. Определить количество оставшихся минут
5. Определить количество оставшихся секунд
6. Вывести текущее время (hh:mm:ss).
7. Вычислить, сколько осталось до полуночи
8. Найти оставшиеся секунды до конца дня
9. Разделить их на часы, минуты и секунды аналогично шагам 2-4.
10. Вывести оставшееся время до полуночи.
11. Конец
Формат вывода:

31.

Операторы
3. Операторы сравнения:
== (равно), != (не равно), > (больше), < (меньше), >= (больше или
равно), <= (меньше или равно).
4. Тернарный оператор:

32.

Условные конструкции
if-else:
Позволяет выполнять
разный код в
зависимости от условия.

33.

Подсказки:
1. Периметр: P = π * d, где d — диаметр.
2. Площадь круга: S = π * (d/2)²
3. Константа π: в C++ уже есть константа M_PI (требует
подключения <cmath>).
!!Добавьте проверку на ввод. Диаметр должен быть
положительным числом.

34.

Тип данных: string
- это класс из стандартной библиотеки, который нужен для работы
со строками. Он упрощает работу и автоматически управляет
памятью.
Всегда по умолчанию инициализируются пустой строкой.
Строка – это массив символов, поэтому к каждому символу строки
можно обратиться по индексу.

35.

Тип данных: string
Обратите внимание, что нам нужно подключать пространство имен.

36.

Тип данных: string
Либо мы можем использовать пространство имен: using namespace std;

37.

Тип данных: string
Методы:
1. Длина строки:
2. Изменение строки:

38.

Задача 3
1. Напишите программу, которая принимает ФИО от пользователя
и выводит количество символов в этой строке. Пробелы
учитывайте.
2. Выведите символ с индексом 5 в строке
Пример вывода:
Введите строку: Anna Ivanovna Karenina
Количество символов: 22
Символ: I

39.

Тип данных: string
Методы:
Метод
Суть
3.
Пример
Результат
find()
Поиск первого вхождения подстроки в
строке. Возвращает позицию
или string::npos, если не найдено.
str.find("lo")
3 (индекс 'l' в "Hello")
substr()
Создает подстроку, начиная с
позиции pos и длиной len. Если len не
указан — до конца строки.
str.substr(1, 3)
"ell" (из "Hello")
replace()
Заменяет часть строки (с
позиции pos длиной len) на другую
строку s.
str.replace(0, 1, "J")
"Jello" (из "Hello")
empty()
Проверяет, пустая ли строка.
Возвращает true/false.
if (str.empty()) { ... }
true, если строка ""
clear()
Очищает строку, делая ее пустой ("").
str.clear()
"" (исходная строка удалена)

40.

Условные конструкции
switch-case:
Используется для
множественного выбора
на основе значения
переменной.
English     Русский Правила