Процедурное программирование. Языки С/C++ — — SynergyCom

Процедурное программирование. Языки С/C++ —

Код курса: DEV-024 Продолжительность: 5 дней (40 часов)
  1. Вводная часть
  • Стандарт языка С++  С++11. Краткий обзор аспектов языка и технологий программирования, рассматриваемых в данном курсе, а также вопросов, не входящих в курс (выносимых для самостоятельного изучения).
  • Общие принципы структурного программирования, их реализация средствами С/С++.
  • Структура С-программы. Модульность. Раздельная компиляция. Функциональная декомпозиция. Функции С++ вообще и функция main() в частности. Блоки кода – составляющая часть структурного программирования. Оформление текста программы.
  • Ключевые слова С++.
  • Идентификаторы.
  • L_Value, R_Value и низкоуровневые объекты С++.
  • Операторы С++.
  • Приоритет и ассоциативность операторов. Обзор категорий операторов языка С. Примеры использования. Специфика использования.
  • Данные. Константы (литералы).
  • Виды литералов. Целые литералы. Литералы с плавающей точкой.
  1. Лекция 2
  • Символьные литералы. Способы кодирования символов. UNICODE. Управляющие последовательности. Строковые литералы.
  • Перечисление (ENUM).Специфика использования.
  • Переменные. Фундаментальные типы языка С++. Размеры объектов и оператор sizeof. Размеры объектов базовых типов и шаблон numeric_limits. Знаковость переменной. Приведение типов. Правила неявного приведения типов. Новые операторы явного приведения типов. Тип wchar_t. BOOL и bool.
  • Объявление и определение переменной. Ключевое слово typedef. Понятия, связанные с переменными. Способы использования перменных и типы компоновки. Размещение переменных и время существования переменных. Ключевое слово static.
  1. Лекция 3
  • Область видимости переменных. «Скрытие» имени переменной. Оператор разрешения области видимости. Пространства имен. Директива using. Пространство имен стандарт-ной библиотеки. Неименованные пространства имен. Псевдонимы пространств имен.
  • Инициализация переменных.
  • Модификаторы const и volatile. Инструкции.
  • Категории инструкций. Инструкции выбора. Инструкции цикла. Инструкции безусловного перехода.
  • Директивы препроцессора.
  • Директива #define. Предопределенные макросы. Диагностические макросы. Рекомендации.
  • Директива #undef.
  • Директивы #ifdef, #ifndef, #else, #endif.
  • Директивы #if, #elif, #else, #endif. Оператор препроцессора defined.
  • Концепция разделения кода на интерфейс и реализацию.
  • Заголовочные файлы. Директива препроцессора #include. Стратегии включения заголовочных файлов. Формы директивы #include.
  • Предкомпиляция заголовочных файлов. Защита от «вложенных» включений заголовочных файлов. Заголовочные файлы стандартной библиотеки.
  1. Лекция 4
  • Указатели.
  • Понятие указателя. Объявление переменной – указателя. Инициализация указателя и оператор получения адреса переменной. Разыменование указателя. Арифметика указателей. Нулевой указатель. void – указатель.
  • Указатель и ключевое слово const. Преобразование типа указателя.
  • Оператор reinterpret_cast.
  • Массивы.
  • Понятие массива. Встроенные массивы. Объявление массива.
  • Инициализация массива. Обращение к элементу массива. Оператор sizeof и размеры массива. Связь массивов и указателей. Указатели на многомерные массивы. Массивы указателей. Модификаторы const и volatile в объявлениях массивов.
  • Динамическое выделение памяти.
  • Функции malloc, realloc и free. Операторы new и delete. Формы оператора delete. Динамические массивы.
  1. Лекция 5
  • Ссылки (reference).
  • Понятие ссылки. Специфика инициализации и использования. Сравнение ссылок и указателей. Ссылки на временные объекты (rvalue reference – стандарт С++11).
  • Функции.
  • Понятие функции. Прототип функции. Определение функции. Вызов функции (специфика inline-функций). Соглашения о вызове функции (__cdecl, __stdcall, __fastcall).
  • Способы передачи параметров функции: по значению, по указателю, по ссылке. Специфика передачи параметров: выражения в качестве параметров, указатели на массивы в качестве параметров функции, значения параметров по умолчанию, неиспользуемые параметры. Возвращаемое функцией значение. Ключевое слово const и функции: передача функции константных параметров, возвращение константных значений. Обобщенные константные выражения, ключевое слово constexpr (стандарт С++11). Проблемы при возвращении ссылки или указателя. Перегрузка имен функций. Рекурсивные функции.
  1. Лекция 6
  • Переменное число параметров. «Старые» потоки ввода/вывода языка С. Функции printf и scanf. Ключи формата ввода/вывода. Файловый ввод/вывод. Диагностика ошибок.
  • Указатель на функцию. Вызов функции с помощью указателя.
  • Использование указателей на функции в качестве параметров. Массив указателей на функции. Примеры сложных объявлений функций и указателей на функции.
  1. Лекция 7
  • Агрегатные типы данных. Структуры языка С. Ключевое слово struct. Выравнивание полей структуры компилятором. Использование структур.
  • Безразмерные массивы.
  • Поля битов.
  • Объединения языка С. Ключевое слово union. Использование объединений.
  1. Практика 1. Базовые понятия. Навыки работы в интегрированной среде разработки (IDE)
  • Базовые типы данных.
  • Неявное приведение типов данных.
  • Явное приведение типов данных. Операторы явного приведения типа.
  • Ассоциативность и приоритет операторов.
  • Область действия, область видимости, время существования переменных.
  • Спецификатор класса памяти – static.
  • Перечисления — enum. Логический тип bool. Модификатор const.
  • Логические условные операторы и операторы отношения. Циклы.
  • Индивидуальное домашнее задание по пройденному материалу N1.

Практика 2. Побитовые операторы. Директивы препроцессора. Указатели.

  • Побитовые операторы и операторы сдвига.
  • Макросы с параметрами. Директивы условной трансляции. Опции проекта. Заголовочные файлы. Объявление указателя. Инициализация указателя и оператор получения адреса объекта. Разыменование указателя. Арифметика указателей.
  • Преобразование типа указателя. void – указатель. Указатели и ключевое слово const.
  • Конструкции типа «указатель на указатель».
  • Индивидуальное домашнее задание по пройденному материалу N2

Практика 3. Массивы. Связь массивов и указателей. Динамическое выделение памяти. Сложные указатели.

  • Массивы. Объявление и инициализация встроенных массивов.
  • Неполная инициализация встроенных массивов.
  • Создание (и уничтожение) динамических массивов. Операторы new и delete.
  • Простейшие алгоритмы поиска и сортировки.
  • Указатели на многомерные массивы. Арифметика указателей на многомерные массивы.
  • Модификатор const с массивами и указателями.
  • Индивидуальное домашнее задание по пройденному материалу N3.

Практика 4. Функции

  • Объявление, определение и вызов функции.
  • Передача параметров по значению, по ссылке, по указателю.
  • Передача функции указателя на массив (встроенный массив, динамический массив).
  • Функции с переменным числом параметров.
  • Индивидуальное домашнее задание по пройденному материалу N4.

Практика 5. Функции

  • Рекурсивные функции. Указатель на функцию. Указатель на функцию в качестве аргумента другой функции. Массивы указателей на функции.
  • Индивидуальное домашнее задание по пройденному материалу N5.

Практика 6. С-структуры

  • Объявление структуры. Создание экземпляров пользовательского типа. Использование структур: массив объектов пользовательского типа, передача агрегатного объекта в функцию.
  • Поля битов. Пример использования структур — картотека.
  • Объединения С.

Курс не запланирован.

Вы можете подать заявку на открытие курса:

Каталог услуг

Поиск по сайту