Данный курс является первым в линейке курсов по разработке программного обеспечения, предлагаемых нашим учебным центром.
Языки программирования С и С++, изучаемые в предлагаемом курсе, являются инструментами, сочетающими гибкость/мощь «низкоуровневых» возможностей, присущих языкам ассемблера, с удобством и возможностью «абстрактного» программирования, предоставляемыми современными проблемно-ориентированными языками.
Это позволяет с одинаковым успехом создавать как сколь угодно сложные прикладные программы, так и компоненты системного уровня. Особо можно заметить, что этот курс может быть полезен разработчикам программного обеспечения для встроенных применений, так как в этой области в настоящее время в основном программируют на языке С.
Этот курс может также представлять интерес для программистов, ориентирующихся на разработку приложений реального времени.
Курс, с одной стороны, является вводным для изучения процесса разработки программного обеспечения с использованием современных языков программирования, библиотек программирования и средств разработки. С другой стороны, курс дает целостные и глубокие знания по синтаксису и использованию конструкций языков С и С++, достаточные для самостоятельного создания несложных приложений на языках С и С++.
В курсе изучаются основные понятия языков С и С++ на базе процедурно-ориентированного подхода. Как и при изучении любого языка программирования, в курсе предусмотрен начальный (интенсивный) этап знакомства с базовыми понятиями языка. На этом этапе происходит адаптация к нетривиальному (в отличие от других высокоуровневых языков) синтаксису языков С и С++, определяющему их широкие возможности.
В качестве учебного пособия по курсу слушателям предоставляется книга «С/С++ Процедурное программирование», скомпонованная автором таким образом, чтобы ее можно было использовать в качестве конспекта лекций.
Данная программа интегрирована с инициативой C++ Institute и готовит к сертификационнонному экзамену CLA.
Знания и умения, полученные в результате изучения
После прохождения курса, слушатели будут
Знать:
- Базовые понятия алгоритмизации и процедурного программирования.
- Этапы жизненного цикла программного обеспечения.
- Этапы получения исполняемого файла.
- Встроенные типы данных C/C++.
- Основные синтаксические конструкции языка C/C++.
- Основные способы организации данных.
- Понятия, относящиеся к функциям.
Уметь:
- Умение грамотно формировать структуру текста программы, выполнять декомпозицию задачи.
- Корректно и эффективно использовать операторы и инструкции языка.
- Разрабатывать функции, корректно и эффективно передавать параметры.
- Решать практические задачи по корректному использованию языковых и программных средств, позволяющих реализовать простые консольные программы.
Обладать навыками:
- Написания эффективных консольных программ на базе языков программирования C/C++.
1. Введение в программирование на языках C/C++
1.1 Стандарт языка С++. Общие принципы структурного программирования
1.2 Базовые понятия языка. (Структура программы. Ключевые слова. Идентификаторы.)
2. Стандартные типы данных
2.1 Понятие типа данных. Константы (литералы).
2.2 Переменные. Понятия, связанные с переменными. Инициализация переменных
Практические занятия:
1. Использование литералов при написании выражений.
2. Перечисления - enum
3. Базовые типы данных, неявное приведение типов данных
4. Явное приведение типов данных. Операторы явного приведения типа
5. Область действия, область видимости, время существования переменной
3. Операторы
3.1 Понятия, связанные с операторами.
3.2 Категории операторов. Специфика использования
3.3 Побитовые операторы
Практические занятия:
1. Ассоциативность и приоритет операторов
2. Оператор присваивания и арифметические операторы
3. Логические операторы и операторы отношения
4. Побитовые операторы и операторы сдвига
4. Инструкции
4.1 Категории инструкций. Инструкции условия. Инструкции выбора
4.2 Инструкции цикла. Инструкции безусловной передачи управления
Практические занятия:
1. Выполнение инструкции if…else. Выполнение инструкции switch.
2. Выполнение инструкции for, while, do… while
3. Выполнение инструкции break, continue
5. Препроцессор
5.1 Назначение препроцессора. Макроподстановки.
5.2 Директивы условной трансляции. Заголовочные файлы.
Практические занятия:
1. Использование макросов с параметрами. Директивы #define и #undef
2. Использование директив условной трансляции: #ifdef, #ifndef, #else, #endif. Директивы #if, #elif, #else, #endif. Оператор препроцессора defined.
3. Настройка опций проекта.
4. Использование заголовочных файлов. Директива #include
6. Указатели
6.1 Понятие указателя. Виды указателей
6.2 Арифметика указателей. Преобразование указателей.
Практические занятия:
1. Объявление и определение указателя.
2. Инициализация указателя и оператор получения адреса объекта.
3. Разыменование указателя.
4. Арифметика указателей.
5. Преобразование типа указателя.
6. void* – указатель.
7. Указатели и ключевое слово const.
8. Конструкции типа "указатель на указатель".
7. Массивы. Связь массивов и указателей
7.1 Понятие массива. Встроенные одномерные массивы.
7.2 Алгоритмы работы с массивами. (сортировка, поиск)
Практические занятия:
1. Объявление, определение и инициализация встроенных массивов.
2. Неполная инициализация встроенных массивов.
3. Модификатор const применительно к массивам.
4. Простейшие алгоритмы поиска и сортировки.
8. Ссылки
8.1 Понятие ссылки. Сравнение ссылок и указателей.
Практические занятия:
1. Специфика инициализации и использования ссылок.
2. Ссылка на указатель
9. Функции
9.1 Понятия, связанные с функциями в С/C++.
9.2 Способы передачи параметров функции
9.3 Возвращаемое функцией значение. Ключевое слово const и функции.
Практические занятия:
1. Объявление, определение и вызов функции.
2. Передача параметров по значению, по ссылке, по указателю.
3. Передача функции указателя на массив (встроенный массив, динамический массив).
Итоговая аттестация