470823481
Нодира
498526497
Анна
364978079
Юлия

Закрыть

Курсы C/C++
Общая информация Расписание и стоимость
Условия обучения
Проведение занятий Преподаватели Учебные материалы Документы об окончании Отзывы слушателей

Другие курсы

Курсы C++ Курсы Java Курсы C# (.NET) Курсы Microsoft C# (.NET) Программирование Android Курсы Web-технологий Программирование Linux Тестирование ПО Программирование микроконтроллеров

Обратная связь

+7 (812) 703-02-02 Форум
Печать

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


График обучения: 56 ак.часов (14 дней)

Начало занятий:

    20.09.2016, 1800

Записаться на курс

    20.09.2016, 1800

Записаться на курс

Аннотация

Данный курс является первым в линейке курсов по разработке программного обеспечения, предлагаемых нашим учебным центром.

Языки программирования С и С++, изучаемые в предлагаемом курсе, являются инструментами, сочетающим гибкость/мощь «низкоуровневых» возможностей, присущих языкам ассемблера, с удобством и возможностью «абстрактного» программирования, предоставляемыми современными проблемно-ориентированными языками. Это позволяет с одинаковым успехом создавать как сколь угодно сложные прикладные программы, так и компоненты системного уровня. Особо можно заметить, что этот курс может быть полезен разработчикам программного обеспечения для встроенных применений, так как в этой области в настоящее время в основном программируют на языке С. Этот курс может также представлять интерес для программистов, ориентирующихся на разработку приложений реального времени.

Курс, с одной стороны, является вводным для изучения процесса разработки программного обеспечения с использованием современных языков программирования, библиотек программирования и средств разработки. С другой стороны, курс дает целостные и глубокие знания по синтаксису и использованию конструкций языков С и С++, достаточные для самостоятельного создания несложных приложений на языках С и С++.

В курсе изучаются основные понятия языков С и С++ на базе процедурно-ориентированного подхода. Как и при изучении любого языка программирования в курсе предусмотрен начальный (интенсивный) этап знакомства с базовыми понятиями языка. На этом этапе происходит адаптация к нетривиальному (в отличие от других высокоуровневых языков) синтаксису языков С и С++, определяющему их широкие возможности.

В качестве учебного пособия по курсу слушателям предоставляется книга «С/С++ Процедурное программирование», скомпонованная автором таким образом, чтобы ее можно было использовать в качестве конспекта лекций.

Для более полного знакомства со всеми возможностями языка С++ и концепциями объектно-ориентированного программирования рекомендуется прохождение следующего курса в линейке курсов по разработке ПО: «DEV-C20. Объектно-ориентированное программирование. Базовый уровень. Язык С++».

Длительность курса - 14 занятий: 7 лекций и 7 практик.

Занятия проводятся 3 раза в неделю с 14:00 до 17:20

Вступительное тестирование – бесплатно.

Документы об окончании обучения

  • Сертификат учебного центра
    Сертификат учебного центра
  • Удостоверение о краткосрочном повышении квалификации (выдается лицам имеющим высшее или среднее профессиональное образование)
    Удостоверение о краткосрочном повышении квалификации (выдается лицам имеющим высшее или среднее профессиональное образование)

Преподаватели

Знания и умения, полученные в результате обучения

  • Навыки выполнения всех этапов разработки приложения в среде Visual C++ MS Developer Studio.Net: от написания исходного текста программы, через получение исполняемого модуля – к отладке, позволяющей отыскать и устранить ошибки программирования.
  • Владение как множеством инструкций и операторов, так и нетривиальным синтаксисом языков С/С++.
  • Знание встроенных типов данных и создание пользовательских агрегатных типов (struct и union).
  • Овладение низкоуровневыми возможностями языка (например, побитовыми операциями).
  • Умение корректно и эффективно манипулировать памятью.
  • Использование процедурных возможностей стандартной библиотеки.

Курсы, в освоении которых помогут приобретенные знания:

Расписание

Начало курса Окончание курса Даты занятий Время занятий Номер аудитории Преподаватель
20.09.2016 21.10.2016 20.09.2016
Вторник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №102 Костина Наталья Николаевна Записаться на курс
22.09.2016
Четверг
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №326 Костина Наталья Николаевна
23.09.2016
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №102 Костина Наталья Николаевна
27.09.2016
Вторник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталья Николаевна
29.09.2016
Четверг
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №326 Костина Наталья Николаевна
30.09.2016
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталья Николаевна
04.10.2016
Вторник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №102 Костина Наталья Николаевна
06.10.2016
Четверг
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталья Николаевна
07.10.2016
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №102 Костина Наталья Николаевна
11.10.2016
Вторник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталья Николаевна
13.10.2016
Четверг
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №326 Костина Наталья Николаевна
14.10.2016
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталья Николаевна
18.10.2016
Вторник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталья Николаевна
21.10.2016
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталья Николаевна
20.09.2016 20.10.2016 20.09.2016
Вторник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №102 Костина Наталья Николаевна Записаться на курс
22.09.2016
Четверг
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №326 Костина Наталья Николаевна
23.09.2016
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №102 Костина Наталья Николаевна
26.09.2016
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Абрамова Марина Геннадьевна
29.09.2016
Четверг
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №326 Костина Наталья Николаевна
03.10.2016
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Абрамова Марина Геннадьевна
04.10.2016
Вторник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №102 Костина Наталья Николаевна
05.10.2016
Среда
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Абрамова Марина Геннадьевна
07.10.2016
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №102 Костина Наталья Николаевна
10.10.2016
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Абрамова Марина Геннадьевна
13.10.2016
Четверг
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №326 Костина Наталья Николаевна
14.10.2016
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №248 Абрамова Марина Геннадьевна
17.10.2016
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Абрамова Марина Геннадьевна
20.10.2016
Четверг
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Абрамова Марина Геннадьевна

Стоимость

Дата Физ. лица, руб. Юр. лица, руб.
Без скидки Cкидка 10%* Cкидка 15%** Без скидки Cкидка 10% Cкидка 15%
Цена c 18.01.2016 16900 15200 14350 20900 18800 17750

*Скидка 10% для ранее обучавшихся, при одновременной оплате 2х курсов, а также по акциям.
**Скидка 15% при одновременной оплате 3х и более курсов.
Примечание. Студентам ВУЗов Санкт-Петербурга очной формы обучения скидка до 25%.
Скидка не предоставляется на дистанционную форму обучения.

Требования к начальному уровню знаний

Слушатель должен обладать следующими знаниями:

  • Элементарные понятия архитектуры персонального компьютера.
  • Базовые знания о архитектуре операционных систем, системного и прикладного программного обеспечения.
  • Знакомство с двоичной и шестнадцатеричной системами счисления.
  • Форматы представления данных.
  • Умение формализовать решаемую задачу (наличие алгоритмического мышления).

Кроме того, полезным, но не обязательным для успешного прохождении курса будет наличие следующих знаний и навыков:

  • Приветствуется (но не обязателен) опыт разработки простых программ на любом языке программирования.
  • Знание английского языка ускоряет получение контекстной справочной информации.

Курсы, обеспечивающие достаточный начальный уровень знаний:

Предварительное тестирование

Тест №ВКТ-108 Алгоритмизация и основы программирования

  1. Необходимо знать следующие понятия:
       
    • алгоритм;
    •  
    • программа;
    •  
    • исполнитель;
    •  
    • линейный алгоритм;
    •  
    • ветвящийся алгоритм;
    •  
    • циклический алгоритм;
    •  
    • основной алгоритм;
    •  
    • вспомогательный алгоритм (подпрограмма);
    •  
    • процедура;
    •  
    • функция;
    •  
    • вызов;
    •  
    • переменная;
    •  
    • имя переменной;
    •  
    • тип переменной;
    •  
    • значение переменной;
    •  
    • формальные параметры;
    •  
    • фактические параметры;
    •  
    • область видимости
    •  
    • время жизни переменных;
    •  
    • массивы;
    •  
    • арифметические выражения;
    •  
    • логические выражения.
  2. Необходимо знать и уметь использовать следующие операторы:
       
    • оператор присваивания;
    •  
    • оператор условия;
    •  
    • оператор цикла;
    •  
    • оператор блока.
  3. Необходимо уметь создавать на любом алгоритмическом языке:
       
    • простейшие программы, использующие 2-3 подпрограммы;
    •  
    • подпрограммы (процедуры и функции);
    •  
    • осуществлять вызовы подпрограмм.

Программа курса

Лекция 1. Введение.

  • Стандарт языка С++  С++11. Краткий обзор аспектов языка и технологий программирования, рассматриваемых в данном курсе, а также вопросов, не входящих в курс (выносимых для самостоятельного изучения).
  • Общие принципы структурного программирования, их реализация средствами С/С++.
  • Структура С-программы. Модульность. Раздельная компиляция. Функциональная декомпозиция. Функции С++ вообще и функция main() в частности. Блоки кода – составляющая часть структурного программирования. Оформление текста программы.
  • Ключевые слова С++.
  • Идентификаторы.
  • L_Value, R_Value и низкоуровневые объекты С++.
  • Операторы С++.
  • Приоритет и ассоциативность операторов. Обзор категорий операторов языка С. Примеры использования. Специфика использования.
  • Данные. Константы (литералы).
  • Виды литералов. Целые литералы. Литералы с плавающей точкой.

Лекция 2

  • Символьные литералы. Способы кодирования символов. UNICODE. Управляющие последовательности. Строковые литералы.
  • Перечисление (ENUM).Специфика использования.
  • Переменные. Фундаментальные типы языка С++. Размеры объектов и оператор sizeof. Размеры объектов базовых типов и шаблон numeric_limits. Знаковость переменной. Приведение типов. Правила неявного приведения типов. Новые операторы явного приведения типов. Тип wchar_t. BOOL и bool.
  • Объявление и определение переменной. Ключевое слово typedef. Понятия, связанные с переменными. Способы использования перменных и типы компоновки. Размещение переменных и время существования переменных. Ключевое слово static.

Лекция 3

  • Область видимости переменных. "Скрытие" имени переменной. Оператор разрешения области видимости. Пространства имен. Директива using. Пространство имен стандартной библиотеки. Неименованные пространства имен. Псевдонимы пространств имен.
  • Инициализация переменных.
  • Модификаторы const и volatile.
  • Инструкции.
  • Категории инструкций. Инструкции выбора. Инструкции цикла. Инструкции безусловного перехода.
  • Директивы препроцессора.
  • Директива #define. Предопределенные макросы. Диагностические макросы. Рекомендации.
  • Директива #undef.
  • Директивы #ifdef, #ifndef, #else, #endif.
  • Директивы #if, #elif, #else, #endif. Оператор препроцессора defined.
  • Концепция разделения кода на интерфейс и реализацию.
  • Заголовочные файлы. Директива препроцессора #include. Стратегии включения заголовочных файлов. Формы директивы #include.
  • Предкомпиляция заголовочных файлов. Защита от «вложенных» включений заголовочных файлов. Заголовочные файлы стандартной библиотеки.

Лекция 4

  • Указатели.
  • Понятие указателя. Объявление переменной – указателя. Инициализация указателя и оператор получения адреса переменной. Разыменование указателя. Арифметика указателей. Нулевой указатель. void – указатель.
  • Указатель и ключевое слово const. Преобразование типа указателя.
  • Оператор reinterpret_cast.
  • Массивы.
  • Понятие массива. Встроенные массивы. Объявление массива.
  • Инициализация массива. Обращение к элементу массива. Оператор sizeof и размеры массива. Связь массивов и указателей. Указатели на многомерные массивы. Массивы указателей. Модификаторы const и volatile в объявлениях массивов.
  • Динамическое выделение памяти.
  • Функции malloc, realloc и free. Операторы new и delete. Формы оператора delete. Динамические массивы.

Лекция 5

  • Ссылки (reference).
  • Понятие ссылки. Специфика инициализации и использования. Сравнение ссылок и указателей. Ссылки на временные объекты (rvalue reference – стандарт С++11).
  • Функции.
  • Понятие функции. Прототип функции. Определение функции. Вызов функции (специфика inline-функций). Соглашения о вызове функции (__cdecl, __stdcall, __fastcall).
  • Способы передачи параметров функции: по значению, по указателю, по ссылке. Специфика передачи параметров: выражения в качестве параметров, указатели на массивы в качестве параметров функции, значения параметров по умолчанию, неиспользуемые параметры. Возвращаемое функцией значение. Ключевое слово const и функции: передача функции константных параметров, возвращение константных значений. Обобщенные константные выражения, ключевое слово constexpr (стандарт С++11). Проблемы при возвращении ссылки или указателя. Перегрузка имен функций. Рекурсивные функции.

Лекция 6

  • Переменное число параметров. "Старые" потоки ввода/вывода языка С. Функции printf и scanf. Ключи формата ввода/вывода. Файловый ввод/вывод. Диагностика ошибок.
  • Указатель на функцию. Вызов функции с помощью указателя.
  • Использование указателей на функции в качестве параметров. Массив указателей на функции. Примеры сложных объявлений функций и указателей на функции.

Лекция 7

  • Агрегатные типы данных. Структуры языка С. Ключевое слово struct. Выравнивание полей структуры компилятором. Использование структур.
  • Безразмерные массивы.
  • Поля битов.
  • Объединения языка С. Ключевое слово union. Использование объединений.

Практика 1. БАЗОВЫЕ ПОНЯТИЯ. НАВЫКИ РАБОТЫ В ИНТЕГРИРОВАННОЙ СРЕДЕ РАЗРАБОТКИ (IDE).

  • Базовые типы данных.
  • Неявное приведение типов данных.
  • Явное приведение типов данных. Операторы явного приведения типа.
  • Ассоциативность и приоритет операторов.
  • Область действия, область видимости, время существования переменных.
  • Спецификатор класса памяти – static.
  • Перечисления - enum.
  • Логический тип bool.
  • Модификатор const.
  • Логические условные операторы и операторы отношения.
  • Циклы.

Индивидуальное домашнее задание по пройденному материалу N1.

Практика 2. ПОБИТОВЫЕ ОПЕРАТОРЫ. ДИРЕКТИВЫ ПРЕПРОЦЕССОРА. УКАЗАТЕЛИ.

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

Индивидуальное домашнее задание по пройденному материалу N2

Практика 3. МАССИВЫ. СВЯЗЬ МАССИВОВ И УКАЗАТЕЛЕЙ. ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ ПАМЯТИ. СЛОЖНЫЕ УКАЗАТЕЛИ.

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

Индивидуальное домашнее задание по пройденному материалу N3.

Практика 4. ФУНКЦИИ.

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

Индивидуальное домашнее задание по пройденному материалу N4.

Практика 5. ФУНКЦИИ.

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

Индивидуальное домашнее задание по пройденному материалу N5.

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

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

Практика 7.

Экзамен по курсу.