Видеокурс для изучения языка Си с нуля
Язык Си был разработан в 70-е годы XX века Деннисом Ритчи, сотрудником исследовательского центра Bell Labs. Язык отличается несложным синтаксисом, возможностью писать код на низком уровне абстракции, а также компактным размером стандартной библиотеки. Поэтому на нём до сих пор пишут программы для микроконтроллеров, драйвера устройств, промышленное ПО и многое другое.
Чтобы вы смогли изучить Си с нуля, мы нашли интересный видеокурс на русском языке, подробно объясняющий основные конструкции и другие элементы языка. Автор видеоуроков в качестве рабочей среды использует ОС Ubuntu, компилятор GCC и редакторы кода Sublime Text и Visual Studio Code. Каждый видеоурок длится в среднем 25−30 минут, в течение которых подробно разбирается каждая тема. Курс ориентирован на тех, кто никогда не сталкивался с программированием.
Содержание курса
- Введение в язык, создание первой программы
Автор приводит историю языка, объясняет некоторые базовые понятия и создаёт простейшую программу на Си. - Переменные, создание переменных в языке Си
В данном видео рассказывается о типах переменных (short, int, char, float, double, long, long long) и методах их создания. - Переменные, ввод и вывод информации в терминале в языке Си
В видеоролике говорится о том, как ввести и вывести через терминал значения переменных с помощью функцийscanf()
иprintf()
. - Escape-последовательности
Escape-последовательности представляют собой сочетания символов, начинающиеся с косой черты и представляющие собой цифру или букву, например\n
,\t
. Автор рассказывает, какие escape-последовательности существуют, за что они отвечают и как используются в программе. - Арифметические операции
Видео посвящено разбору различных арифметических операций, принятых в языке. - Составные операции в языке Си
В Си можно использовать составное присваивание значений, например, с помощью+=
,-=
,*=
и/=
. В видео подробно разбираются эти конструкции, а также показывается их использование на примерах программ. - Локальные и глобальные переменные в языке Си
Автор рассказывает о том, чем отличаются глобальные и локальные переменные, а также знакомит с ключевыми словами
иstatic
. - Преобразование типов данных в языке Си
В видео объясняется, как привести переменные к другим типам данных, напримерint
кfloat
. - Массивы, создание массивов в языке Си
Из видео вы узнаете, что такое массив, как его создать на языке Си и как выполнять действия с его элементами. Рассматривается только одномерный массив. - Многомерные массивы, создание многомерного массива в языке Си
В видеоролике объясняется работа с многомерными массивами на примере двумерного. - Объявление констант
В 11-м уроке автор рассказывает о том, что такое константа и как объявить её в коде. - Объявление перечислений в языке Си
Автор знакомит с ключевым словомenum
и рассказывает, как с его помощью создавать собственные типы данных с помощью последовательностей констант. - Отладка с помощью определений препроцессора
Вы узнаете, какие существуют команды для препроцессора (компонента компилятора, подготавливающего код к компиляции), для чего нужна каждая из них и как применять команды на практике. - Сравнение значений в Си
В видео рассказывается о сравнении значений переменных с помощью==
,!=
>
,<
,>=
,<=
. - Логические значения
В данном видеоуроке рассматриваются логические операции И&&
, ИЛИ||
и НЕ!
. - Проверка условий — тернарная операция
Вы познакомитесь с тернарной операцией, которая представляет собой краткую записьif... else
, например(a > b) ? a : b
. - Проверка условий if-else
В 17-м уроке рассматривается конструкцияif... else
, позволяющая запустить определённый код в зависимости от того, выполнено требуемое условие или нет. - Оператор множественного выбора switch case
В видео рассмотрен операторswitch... case
, с помощью которого в зависимости от поданного ключа можно выполнить нужный код. - Цикл for
Автор рассказывает о циклеfor
, позволяющем выполнить код внутри цикла при необходимых условиях требуемое количество раз. - Циклы while, do while
Циклwhile
часто используется для перебора элементов и может повторяться сколько угодно раз. Циклdo... while
отличается отwhile
блокомdo
, код в котором вне зависимости от условия выполнится хотя бы один раз. - Утверждения break, continue, goto
Вы изучите работу с оператором выхода из цикла
, перехода на следующую итерацию цикла breakcontinue
, а также оператором перехода на определённое место в кодеgoto
. - Функции, прототипы функций
Здесь даётся введение в функции. Чтобы облегчить понимание, в видео рассматриваются функции без передачи параметров и аргументов. Также вы узнаете, что такое прототип функции. - Функции, передача аргументов в функции
В видеоуроке рассматривается передача аргументов в функции, а также возврат значений из функций. - Функции, рекурсия
В видео рассказывается о рекурсии — вызове функции из самой себя. - Сравнение листингов кода на Си
Вы узнаете, как с помощью команды терминала diff сравнить два файла с исходным кодом. - Пишем код на Си с разделением на файлы
Вы научитесь разделять свою программу на несколько файлов с исходным кодом и использовать заголовочные файлы с расширением .h. - Указатели в языке Си
В видеоуроке всё внимание уделяется указателям — переменным, содержащим ссылку на другую переменную. - Передача указателей в функции в языке Си
С помощью указателей можно напрямую изменять элементы в памяти. Поэтому с их помощью расширяются возможности функций. - Массивы указателей в языке Си
- Функции ввода и вывода строк в языке Си
В этом видео автор рассказывает о вводе/выводе строк через терминал с использованием функцийprintf()
,scanf()
,fprintf()
,fscanf()
,gets()
,puts()
,fgets()
,fputs()
. - Строки, функции: strcat, strncat в языке Си
В видеоуроке разбираются функции объединения строкstrcat()
иstrncat()
.
Здесь уделяется внимание функции поиска в строкеstrstr()
и функции сравнения строкstrcmp()
.- Строки, функции: atoi, sprintf, itoa в языке Си
В видео рассматривается функция перевода из строки в числоatoi()
и функции перевода из числа в строкуsprintf()
иitoa()
. - Структуры в языке Си
Автор объясняет, что такое структуры, а также как их создавать и объявлять. - Структуры в языке Си: объявление указателей в структуре
В видеоуроке рассматривается использование указателей в структурах и объясняется, почему в структурах лучше оперировать указателями, чем массивами. - Структуры в языке Си: указатели на структуры
Здесь рассказывается о том, что такое указатели на структуры, на что они действительно указывают, а также объясняется, для чего нужен оператор->
. - Работа с файлами в языке Си
В данном видеоуроке рассматривается чтение из файла, запись в файл и создание файла на языке Си. В видео демонстрируются кроссплатформенные методы работы с файлами, однако действия с файлами можно проводить и с помощью системных функций Linux. - Работа с файлами в языке Си: функции fread, fwrite
Вы познакомитесь с функцией чтения из файлаfread()
и функцией записи в файл
. fwrite() - Сообщения об ошибках
Если при работе с файлами возникают ошибки, их можно обработать с помощью функцийperror()
иstrerror()
. - Рандомные числа в Си
В видео автор разбирает создание псевдослучайных чисел с помощью функцийsrand(time(NULL))
иrand()
и изменение границ множества случайных чисел. - Сортировка в Си
В данном видеоуроке рассматривается использование быстрой сортировкиqsort()
(Quick Sort), уже встроенной в язык. - WinAPI
В последнем видео курса вы изучите несколько базовых функций системной библиотеки WinAPI, с помощью которых вы сможете реализовать MessageBox.
Дополнительные материалы
Чтобы быстро вникнуть в синтаксис языка, вы можете посмотреть часовое видео, в котором объясняются основы языка. В частности, в нём рассказывается о переменных, условных операторах, структурах, типах данных, арифметических операциях, функциях, циклах и многом другом.
Если видеоуроки не подходят для вас, вы можете ознакомиться с подборкой книг по языку Си и найти для себя подходящую. После изучения основ языка Си вы можете заглянуть в наш раздел с материалами по Си и смежным темам.
Руководство по программированию на языке С
Руководство по программированию на языке СПоследнее обновление: 02.05.2023
Глава 1. Введение в C
Язык программирования C
Компилятор GCC. Первая программа на Windows
Компилятор Clang. Первая программа на Windows
GCC. Первая программа на Linux
Clang. Первая программа на MacOS
Настройка параметров компиляции
Глава 2. Основы языка Си
Структура программы на Си
Переменные
Типы данных
Консольный вывод. Функция printf
Константы
Арифметические операции
Условные операции
Поразрядные операции
Операции присваивания
Преобразование типов
Условные конструкции
Циклы
Введение в массивы и строки
Ввод в консоли. Функция scanf
Глава 3. Указатели
Что такое указатели
Операции с указателями
Арифметика указателей
Константы и указатели
Указатели, массивы и строки
Массивы указателей и многоуровневая адресация
Глава 4. Функции
Определение и описание функций
Параметры функции
Результат функции
Рекурсивные функции
Область видимости переменных
Внешние объекты
Указатели в параметрах функции
Указатели на функции
Указатели на функции как параметры и результаты функций
Функции с переменным количеством параметров
Параметры командной строки
Глава 5. Препроцессор
Директива #include. Включение файлов
Директива #define
Макросы
Условная компиляция
Глава 6. Структуры
Определение структур
Структуры как элементы структур
Указатели на структуры
Массивы структур
Структуры и функции
Объединения
Перечисления
Битовые поля
Глава 7. Динамическая память
Выделение и освобождение памяти
Выделение памяти для двухмерного массива произвольной длины
Управление динамической памятью
Указатель как результат функции
Глава 8. Ввод-вывод и работа с файлами
Открытие и закрытие потоков
Чтение и запись бинарных файлов
Чтение и запись структур в файл
Чтение и запись в файл и функции fwrite и fread
Чтение и запись текстовых файлов
Форматируемый ввод-вывод
Позиционирование в потоке
Консольный ввод-вывод
Форматированный ввод и вывод в строки. Функции sscanf и sprintf
Глава 9. Стандартная библиотека С
Заголовочные файлы стандартной библиотеки С
Работа со строками
Работа с памятью
Работа с датами и временем
Математические функции
Преобразование строк в числа и чисел в строки
Обобщения и макрос _Generic
Поддержка Unicode и кодировки UTF-16 и UTF-32
Глава 10. Среды разработки для С
Первая программа в Visual Studio
Первая программа в Qt Creator
Глава 11. Взаимодействие с кодом Python
Подключение Python
YooMoney:
410011174743222
Qiwi:
qiwi.com/n/METANIT
Перевод на карту
Номер карты:
4048415020898850
Программирование на C с нуля — Мастер программирования на C
Здравствуйте, студенты. .. Самостоятельно Приянка, я работаю инструктором более пяти лет. Я преподавал различные языки программирования, такие как C, C++, Java, Python для более чем 1000 студентов.
Должен сказать, что если вы планируете начать свою карьеру программиста, то изучение программирования на C — лучший выбор, так как почти все современные языки программирования, такие как java, python и т. д., могут взаимодействовать с ним. Язык программирования C имеет меньше библиотек по сравнению с другими языками высокого уровня. Таким образом, изучение программирования на C также в значительной степени проясняет концепции программирования, поскольку вам приходится писать много вещей с нуля. Вы не будете полностью зависеть от языка программирования для реализации некоторых основных операций, и их самостоятельное выполнение также поможет вам развить свои аналитические навыки. Язык C используется для разработки системного программного обеспечения, а также для разработки прикладного программного обеспечения, C широко используется во встроенном программировании.
В этом курсе я буду охватывать все основные понятия, связанные с программированием, типы данных и переменные, различные операторы, а также примеры, операторы управления в C, такие как if, if-else, вложенные if, else-if лестница, случай переключателя и т.п. каждый с подробным описанием примеров. также Операторы цикла — while, do-while, for с примерами, больший акцент на — определяемые пользователем функции, прототип функции, определение функции, прототип функции, список аргументов, передача параметров и т. д. Также объясняются концепции массивов, строк, структур с большим количеством Проблемы с программированием. Самое главное Указатели и их реализация подробно описаны.
Если вы еще не зарегистрировались на курс, я настаиваю на том, чтобы вы записались на курс, и увидимся на курсе.
Цели
Основные понятия языка программирования C
Напишите свою первую программу на C
Понимание различных ключевых слов и типов данных в C
9001 6Понимание переменных и области действия переменной
Изучение перечисления или Enum тип данных
Использование функций ввода-вывода (printf(), scanf())
Группа операторов на языке C с большим количеством примеров
Понимание того, как программа выполняется — поток выполнения программы
9001 6Управление потоком — если | если-иначе | Вложенный, если | иначе-если лестница | case case с примерами
Зачем нужны циклы в Программе? Операторы цикла — пока | делать пока | для
Функции- : Как мы создаем пользовательскую функцию в программе?
Функции в деталях — прототип функций | Определение функции | Вызов функции | Список аргументов | Передача параметров
Массив — 1D, 2D | Декларация и инициализация | Реализация массива в программе с примерами
Создание строк, чтение, печать, манипулирование с множеством примеров
Что такое структура? Создание структуры в программе
Массив структур
Указатель — подробное понимание с примерами
Изучение основных концепций программирования на C, которые помогут вам понять современные языки программирования, такие как Java, Python
Если вы хотите начать свою карьеру программиста, начните обучение с Основные понятия программирования на C
Предварительные требования
- Компьютер с ОС Windows, Linux или Mac OS
- Это курс для начинающих, студенты будут изучать программирование на C без каких-либо предварительных знаний в области кодирования.
Создание компилятора C с нуля Видеокурс!
Описание
Научитесь создавать свой собственный компилятор C с нуля. В этом курсе мы разработаем компилятор, который компилирует подмножество языка программирования C. К тому времени, как вы закончите все модули этого курса, вы сможете компилировать программы на C, которые используют указатели, структуры, объединения, массивы, функции, циклы for и while. делать циклы, операторы if, переключатели и многое другое! Этот курс включает в себя все модули курса!
Наш компилятор также имеет систему макросов препроцессора, позволяющую включать файлы заголовков и создавать определения так же, как в любом файле C.
Ваш компилятор достаточно продвинут, чтобы использовать стандартную библиотеку GCC, поэтому мы можем вызывать функции C из нашего компилятора. Ваш компилятор сможет скомпилировать язык программирования C.
Этот курс не зависит от каких-либо фреймворков, мы делаем все с нуля, чтобы обеспечить наилучший возможный опыт обучения для студентов
Модуль 1
В модуле 1 этого курса мы загружаем исходный файл C, который мы хотим скомпилировать, в память. Мы создаем лексер для предварительного лексического анализа исходного ввода, который преобразует исходный код в набор токенов, которые наш компилятор может легко понять. Затем мы пропускаем токены через синтаксический анализатор для создания абстрактного синтаксического дерева. AST описывает программу на языке C в логической форме, что облегчает ее понимание нашим компилятором. Например, для выражения 50 + 20 вы получите корневой узел выражения, левый операнд которого имеет узел со значением 50, и правый операнд с узлом со значением 20. Разрушение проблем таким образом усложняет задачу. легче создавать компиляторы.
Модуль 2
В модуле 2 этого курса мы создаем генератор кода, который создает 32-битный язык ассемблера Intel, который затем может быть передан через ассемблер для создания двоичной программы, которую мы можем запустить. В этом модуле мы также создаем систему распознавателя, которая отвечает за получение сложного выражения, такого как «a->b. c.e[50] = 50», и разбиение его на простые шаги и правила, которым затем может легко следовать наш генератор кода. Эта абстракция необходима для того, чтобы генератор кода не стал слишком сложным. С помощью системы распознавателя мы можем гарантировать, что кодовая база останется чистой.
Модуль 3
В модуле 3 этого курса мы создаем препроцессор и макросистему. Эта система препроцессора позволяет нам включать файлы заголовков в наши программы на C, а также использовать различные ключевые слова макросов, такие как «#define», «#ifdef», «sizeof» и многие другие.
Модуль 4
В модуле 4 мы создаем семантический валидатор, который проверяет наш код C. Семантический валидатор гарантирует, что мы не устанавливаем несуществующие переменные и не обращаемся к несуществующим структурам. Модуль 4 еще не готов, так как этот курс находится в раннем доступе. Модуль 4 должен быть готов к 31 мая 2023 года. Тем временем у вас есть три модуля, полных 38 часов контента, чтобы поразмыслить.