Похожие презентации:
ПРОГРАММИРОВАНИЕ С/С++
1.
ПРОГРАММИРОВАНИЕС/С++
Докладчик
Бабаев Артем Ахмадалиевич
инженер-программист «Прософт-Системы»
(a.babaev@redkit-lab.ru)
2.
Примеры использования С++3.
Примеры использования C++ вместе с Qt4.
Курс Программирование С/С++• Изучение языка С++, как прикладного инструмента в решении
задач
• Курс включает в себя лекции с обратной связью в режиме
диалога с аудиторией (мы постараемся поддерживать этот
формат даже на дистанционной форме обучения)
• Лабораторные работы: начиная от базовых задач освоения языка,
заканчивая организацию структур данных для решения типовых
задач, а так же организация структур для логических игр и
алгоритмов работы с ними.
5.
6.
Зачем нужны «Плюсы»: Высокая производительностьРаспределённые СУ
SCADA
СУБД
7.
Зачем нужны «Плюсы»: Максимальная близость к железу8.
Зачем нужны «Плюсы»: Максимальная близость к железу9.
Зачем нужны «Плюсы»: высокий уровень абстракции10.
Зачем нужны «Плюсы»• это универсальный инструмент с широкими возможностями
• сочетает свойства высокоуровневых и низкоуровневых языков
• поддерживает ООП, процедурное программирование,
обобщённое программирование
• богатые возможности от битовых операций до поддержи
шаблонных функций и классов
• высокая производительность в виду выполнения в машинных
кодах (т.е. язык компилируемый)
• поддержка компиляторами множества платформ от x86 до ARM
• богатая стандартная библиотека обеспечивает хорошую
переносимость и избавляет от «велосипедизма»
11.
Как мы используем плюсы:• организация работы контроллеров низкого уровня (системы
передачи данных приборов учета)
• организация системы наблюдения, управления и сбора данных
SCADA в электроэнергетике (генерация, распределение, учёт)
• организация удалённой конфигурации различных устройств
• сбор и обработка информации с устройств учёта расхода ресурсов
12.
Что мы можем предложить вам:• ежегодные бесплатные курсы «Школа разработчиков»
https://school.prosoftsystems.ru/
• по результатам обучения в «Школе» предлагаем трудоустройство
всем тем, кто нам особенно понравился
• «Школа» давно стала хорошим «плюсиком» в резюме,
признаваемым многими организациями
• возможна организация дипломирования или прохождения
практики на предприятии
13.
Организация учебного процесса.• лекции в формате дистанционного обучения (с переходом на
очное, как мы надеемся)
• практические занятия в очном формате (таким образом у вас
будет возможность нормально пообщаться и обсудить решаемые
задачи)
• обязательное освоение материала (Google не поможет)
• самостоятельное выполнение работ (плагиат не пройдёт)
14.
Занятие 1Обзор возможностей С++ cppreference.com
Hello, world
Обзор типов и их размеры (sizeof, auto, const, указатели, new, delete,
ссылки, constexpr, <limits>). Операции с простыми типами.
Приведения типов old style, static_cast, dynamic_cast, const_cast const
volatile, reinterpret_cast
Языковые конструкции. С++ != ООП.
Операции
Присваивание. Арифметические (целочисл / *). Логические.
Условные операторы и циклы
Компиляция, запуск, отладка
Установка Qt Creator
Создание проекта в Qt Creator (qbs). Отладка в Qt Creator.
комбинированные)
Видимость и инициализация переменных
современный аналог std::transform — for (auto& x: container)
Занятие 2
Функции. Синтаксис (объявление, определение, заголовочные файлы).
Передача параметров по значению
Ссылки как способ изменить переданный объект
Ссылки -- способ сэкономить на копировании, const защищает от
изменения.
Контейнеры
std::vector (size, capacity, reserve, shrink_to_fit, insert, emplace_back)
std::map
std::set
Code Style
Занятие 5
Время жизни объектов.
Глобальные объекты программы. Static initialization fiasco.
Что такое singleton.
Умные указатели shared_ptr, enable_shared_from_this, weak_ptr.
Семантика переноса. unique_ptr.
Занятие 3
Алгоритмы и лямбды
min, max, sort, min_element
count, count_if, лямбды (захваты поэлементные, простые и
Занятие 4
ООП
Введение в структуры и классы. Объявление, определение, экзмепляры.
Спецификаторы доступа. Члены данные, члены функции (методы),
члены классы, enum-ы. Конструкторы, дестркуторы. Наследование.
Приведения (явные, неявные, reinterpret_cast). Explicit. Friend класс и
функции. Виртуальные функции и принцип их работы. Примеры.
namespace-ы
Работа с файлами и потоками. Перегрузка операторов.
Встраивание пользовательских типов в контейнеры.
Занятие 6
Исключения: порядок работы с исключениями, время жизни объектов,
бросаем и ловим, области применения, накладные расходы.
Многопоточность. Потоки, синхронизация, мьютексы.
Что такое хэш-таблица, чем она отличается от map.
15.
Чего нет в списке тем, но мы об этом поговорим:• 500 способов «снять ружье
с предохранителя»
• 1001 способ «отстрелить себе ногу»
• 101 способ этого не заметить
• и 900 способов не подать вида
• 999 способов положить программу
• «И только я подумал, что выучил C++,
как они затащили меня обратно…»
16.
Примерный перечень работ:• Базовые структуры языка. Взаимодействие с пользователем, ввод,
вывод;
• Работа с указателями. Динамическое выделение памяти;
• Указатель как аргумент функции;
• Структуры;
• Организация списков и очередей;
• Организация деревьев и их заполнение;
• Игровой бот на дереве решений;
• Наследование и полиморфизм.
17.
• Посещение лекций != успех• Успех = САМОстоятельные работы + освоение материала
• Не смотрите на код
• ...
• Вы проиграли
18.
• Набор материалов илабораторных работ
зависит от ваших успехов!
• Мы открыты к общению
с «продвинутыми»
студентами
19.
Благодарю за внимание!Желаю успехов!
Программирование