Похожие презентации:
Базовые концепции программирования
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.
Задача 31. Напишите программу, которая принимает ФИО от пользователя
и выводит количество символов в этой строке. Пробелы
учитывайте.
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:
Используется для
множественного выбора
на основе значения
переменной.
Программирование