Язык С
Основы программирования
Курс полезен как для новичков в программировании, так и для уже владеющих другими языками программирования, например C++, Java, C#, Objective C, потому что все они отчасти были основаны на С, но на недостаточном уровне.Основы программирования
Также курс по языку C полезен тем программистам, кому не хватает ясных представлений об организации хранения и обработки данных в компилируемых компьютерных программах. С является языком общего назначения и, сочетая в себе свойства как высокоуровневых, так и низкоуровневых языков, позволяет решать невообразимое множество задач в сфере программирования.
Язык С и его изучения очень важны для программирования тем, что на его базе созданы многие языки программирования, которые в нынешнее время очень популярны и востребованы для разработки программного обеспечения, мобильных приложений и прочего.
Целью курса является заложить основы алгоритмического мышления, научить пользоваться основными концепциями структурного программирования для решения типичных задач, поставленных перед программистом.
Курс в достаточно полном объёме знакомит слушателя с возможностями и тонкостями языка С, заложенными в него для реализации множества задач, которые позволят вам стать профессиональным программистом.
Чему Вы научитесь
- Моделировать алгоритмы решения любых задач, в том числе делать правильный выбор в создании структур, функций и переменных.
- Создавать мультифайловые проекты.
- Писать культурный код.
- Обрабатывать ввод, преобразовывать и проверять на корректность текстовые данные, осуществлять вывод данных в необходимом формате.
- Разрабатывать структуру классов для решаемой задачи, реализуя принципы модульности, минимальной связанности, разделения интерфейса и реализации.
- Что немаловажно, читать, анализировать и оптимизировать код.
- Обрабатывать данные на уровне бит.
- 1
Урок 1. Введение в язык С (Си)
Краткий рассказ о плане и целях курса; История и развитие языка C/C++; Алфавит языка; Лексемы (все 6 классов лексем со всеми нюансами); Основные типы данных (+сочетания); Декларация переменных; Константы и способы их создания; Общая структура программы; Вызов заголовочных файлов; Основные библиотечные функции (ввода и вывода, математические...); Написание небольшой программы; Ответы на вопросы и домашнее задание - 2
Урок 2. Выражения, операнды, операторы
Знакомство со средой разработки; Microsoft Visual Studio; Культура написания кода (табуляция, имена объектов, комментарии...); Понятие выражения, операнда, операции; Понятие приоритета и ассоциативности операций; Операции присваивания; Явное и неаявное приведение типов; Математические операции; Комбинации различных операций; Операции сравнения и логические операции; Побитовые операции сравнения и сдвига; Операции получения значения и адреса, а так же операция разадресации; Написание кода в реальном времени на основе различных вариаций с присваиваниями, сравнениями, приведением типов; Ответы на вопросы. Домашнее задание - 3
Урок 3. Операторы ветвления и циклов
Показ полной таблицы приоритетов и ассоциативности языка C и подведение вывода по теме операций; Понятие оператора(так же упоминание о метках) + создание комментариев; Составное оператор {} и пустой оператор ; Оператор ветвления if(){}else{} и оператор-переключатель switch{}; Тернарный оператор; Оператор цикла while(){} и do{}while(); (предусловие и постусловие); Оператор цикла for(;{}; Операторы return, continue, break, goto; Ответы на вопросы и домашнее задание - 4
Урок 4. Массивы
Понятие массива и их типы (статический, динамический и гетерогенные). Понятие индекса; Декларация массива и размещение в памяти; Индексация и доступ к элементам массива; Символьные массивы (строки); Основыне функции для обработки символьных массивов (строк); Многомерные массивы; Двумерный символьный массив, то есть одномерный массив строк (полноценный текст); Всё оставшееся время написание кода в реальном времени, используя циклы и массивы, ввод, обработку и вывод данных в форматированном виде; Ответы на вопросы. Домашнее задание - 5
Урок 5. Функции
Директивы препроцессора (include, define, ifndef, endif); Функции и их назначение; Типы возвращаемых значений функций и их различия; Декларация функций; Прототип функции (объявление); Вызов функции; Передача параметров по значению; Передача параметров по адресу; Рекурсия; Всё оставшееся время написание кода в реальном времени, используя массив; Создание функций ввода и вывода массива; Создание рекурсивной функции вычисления факториала числа; Ответы на вопросы. Домашнее задание - 6
Урок 6. Классы памяти и адресная арифметика
Классы памяти. Время и область видимости объекта; Типы объектов относительно хранения их в памяти (внешние, статические, автоматические, регистровые); Отличие области видимости (лексической) от области действия имен; Декларация на внутреннем и внешнем уровнях; Описатель класса памяти auto; Описатель класса памяти extern; Описатель класса памяти static; Описатель класса памяти register; Динамическое распределение памяти (в зависимости от класса памяти); Декларация указателей; Адресная арифметика; Операции с указателями; Использование указателей как аргументов функций; Указатели и массивы; Динамическое выделение памяти (функции malloc, realloc, calloc, free); Указатели и строки (массив char); Разбор классов памяти и указателей на примерах; Ответы на вопросы. Домашнее задание (мультифайловый проект) - 7
Урок 7. Структуры, битовые поля, перечисления, объединения
Декларация структур; Инициализация и доступ к полям структур; Вложенные структуры и массивы структур; Битовые поля; Перечисления; Объединения (смеси); Написание более сложного мультифайлового проекта в реальном времени; Ответы на вопросы. Домашнее задание - 8
Урок 8. Понятие потока и работа с файлами
Понятие потока Stream; Структура типа FILE; Открытие и закрытие файлов; Операции ввода и вывода; Указатель чтения или записи в файле; Добавление в проект (с предыдущего занятия) работы с файлами (ввод, вывод, обработка); Вопрос оптимизации кода и проектов
geekbrains.ru/courses/36