Видеокурс для изучения языка Си с нуля

Язык Си был разработан в 70-е годы XX века Деннисом Ритчи, сотрудником исследовательского центра Bell Labs. Язык отличается несложным синтаксисом, возможностью писать код на низком уровне абстракции, а также компактным размером стандартной библиотеки. Поэтому на нём до сих пор пишут программы для микроконтроллеров, драйвера устройств, промышленное ПО и многое другое.

Чтобы вы смогли изучить Си с нуля, мы нашли интересный видеокурс на русском языке, подробно объясняющий основные конструкции и другие элементы языка. Автор видеоуроков в качестве рабочей среды использует ОС Ubuntu, компилятор GCC и редакторы кода Sublime Text и Visual Studio Code. Каждый видеоурок длится в среднем 25−30 минут, в течение которых подробно разбирается каждая тема. Курс ориентирован на тех, кто никогда не сталкивался с программированием.

Содержание курса

  1. Введение в язык, создание первой программы
    Автор приводит историю языка, объясняет некоторые базовые понятия и создаёт простейшую программу на Си.
  2. Переменные, создание переменных в языке Си
    В данном видео рассказывается о типах переменных (short, int, char, float, double, long, long long) и методах их создания.
  3. Переменные, ввод и вывод информации в терминале в языке Си
    В видеоролике говорится о том, как ввести и вывести через терминал значения переменных с помощью функций scanf() и printf().
  4. Escape-последовательности
    Escape-последовательности представляют собой сочетания символов, начинающиеся с косой черты и представляющие собой цифру или букву, например \n, \t. Автор рассказывает, какие escape-последовательности существуют, за что они отвечают и как используются в программе.
  5. Арифметические операции
    Видео посвящено разбору различных арифметических операций, принятых в языке.
  6. Составные операции в языке Си
    В Си можно использовать составное присваивание значений, например, с помощью +=, -=, *= и /=. В видео подробно разбираются эти конструкции, а также показывается их использование на примерах программ.
  7. Локальные и глобальные переменные в языке Си
    Автор рассказывает о том, чем отличаются глобальные и локальные переменные, а также знакомит с ключевыми словами
    extern
    и static.
  8. Преобразование типов данных в языке Си
    В видео объясняется, как привести переменные к другим типам данных, например int к float.
  9. Массивы, создание массивов в языке Си
    Из видео вы узнаете, что такое массив, как его создать на языке Си и как выполнять действия с его элементами. Рассматривается только одномерный массив.
  10. Многомерные массивы, создание многомерного массива в языке Си
    В видеоролике объясняется работа с многомерными массивами на примере двумерного.
  11. Объявление констант
    В 11-м уроке автор рассказывает о том, что такое константа и как объявить её в коде.
  12. Объявление перечислений в языке Си
    Автор знакомит с ключевым словом enum и рассказывает, как с его помощью создавать собственные типы данных с помощью последовательностей констант.
  13. Отладка с помощью определений препроцессора
    Вы узнаете, какие существуют команды для препроцессора (компонента компилятора, подготавливающего код к компиляции), для чего нужна каждая из них и как применять команды на практике.
  14. Сравнение значений в Си
    В видео рассказывается о сравнении значений переменных с помощью ==, !=
    , >, <, >=, <=.
  15. Логические значения
    В данном видеоуроке рассматриваются логические операции И &&, ИЛИ || и НЕ !.
  16. Проверка условий — тернарная операция
    Вы познакомитесь с тернарной операцией, которая представляет собой краткую запись if... else, например (a > b) ? a : b.
  17. Проверка условий if-else
    В 17-м уроке рассматривается конструкция if... else, позволяющая запустить определённый код в зависимости от того, выполнено требуемое условие или нет.
  18. Оператор множественного выбора switch case
    В видео рассмотрен оператор switch... case, с помощью которого в зависимости от поданного ключа можно выполнить нужный код.
  19. Цикл for
    Автор рассказывает о цикле for, позволяющем выполнить код внутри цикла при необходимых условиях требуемое количество раз.
  20. Циклы while, do while
    Цикл while часто используется для перебора элементов и может повторяться сколько угодно раз. Цикл do... while отличается от while блоком do, код в котором вне зависимости от условия выполнится хотя бы один раз.
  21. Утверждения break, continue, goto
    Вы изучите работу с оператором выхода из цикла
    break
    , перехода на следующую итерацию цикла continue, а также оператором перехода на определённое место в коде goto.
  22. Функции, прототипы функций
    Здесь даётся введение в функции. Чтобы облегчить понимание, в видео рассматриваются функции без передачи параметров и аргументов. Также вы узнаете, что такое прототип функции.
  23. Функции, передача аргументов в функции
    В видеоуроке рассматривается передача аргументов в функции, а также возврат значений из функций.
  24. Функции, рекурсия
    В видео рассказывается о рекурсии — вызове функции из самой себя.
  25. Сравнение листингов кода на Си
    Вы узнаете, как с помощью команды терминала diff сравнить два файла с исходным кодом.
  26. Пишем код на Си с разделением на файлы
    Вы научитесь разделять свою программу на несколько файлов с исходным кодом и использовать заголовочные файлы с расширением .h.
  27. Указатели в языке Си
    В видеоуроке всё внимание уделяется указателям — переменным, содержащим ссылку на другую переменную.
  28. Передача указателей в функции в языке Си
    С помощью указателей можно напрямую изменять элементы в памяти. Поэтому с их помощью расширяются возможности функций.
  29. Массивы указателей в языке Си
    Тема урока — создание и использование массивов указателей.
  30. Функции ввода и вывода строк в языке Си
    В этом видео автор рассказывает о вводе/выводе строк через терминал с использованием функций printf(), scanf(), fprintf(), fscanf(), gets(), puts(), fgets(), fputs().
  31. Строки, функции: strcat, strncat в языке Си
    В видеоуроке разбираются функции объединения строк strcat() и strncat().
  32. Строки, функции: strstr, strcmp в языке Си
    Здесь уделяется внимание функции поиска в строке strstr() и функции сравнения строк strcmp().
  33. Строки, функции: atoi, sprintf, itoa в языке Си
    В видео рассматривается функция перевода из строки в число atoi() и функции перевода из числа в строку sprintf() и itoa().
  34. Структуры в языке Си
    Автор объясняет, что такое структуры, а также как их создавать и объявлять.
  35. Структуры в языке Си: объявление указателей в структуре
    В видеоуроке рассматривается использование указателей в структурах и объясняется, почему в структурах лучше оперировать указателями, чем массивами.
  36. Структуры в языке Си: указатели на структуры
    Здесь рассказывается о том, что такое указатели на структуры, на что они действительно указывают, а также объясняется, для чего нужен оператор ->.
  37. Работа с файлами в языке Си
    В данном видеоуроке рассматривается чтение из файла, запись в файл и создание файла на языке Си. В видео демонстрируются кроссплатформенные методы работы с файлами, однако действия с файлами можно проводить и с помощью системных функций Linux.
  38. Работа с файлами в языке Си: функции fread, fwrite
    Вы познакомитесь с функцией чтения из файла fread() и функцией записи в файл
    fwrite()
    .
  39. Сообщения об ошибках
    Если при работе с файлами возникают ошибки, их можно обработать с помощью функций perror() и strerror().
  40. Рандомные числа в Си
    В видео автор разбирает создание псевдослучайных чисел с помощью функций srand(time(NULL)) и rand() и изменение границ множества случайных чисел.
  41. Сортировка в Си
    В данном видеоуроке рассматривается использование быстрой сортировки qsort()(Quick Sort), уже встроенной в язык.
  42. WinAPI
    В последнем видео курса вы изучите несколько базовых функций системной библиотеки WinAPI, с помощью которых вы сможете реализовать MessageBox.

Дополнительные материалы

Чтобы быстро вникнуть в синтаксис языка, вы можете посмотреть часовое видео, в котором объясняются основы языка. В частности, в нём рассказывается о переменных, условных операторах, структурах, типах данных, арифметических операциях, функциях, циклах и многом другом.

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

Руководство по программированию на языке С

Руководство по программированию на языке С

Последнее обновление: 02.05.2023

  1. Глава 1. Введение в C

    1. Язык программирования C

    2. Компилятор GCC. Первая программа на Windows

    3. Компилятор Clang. Первая программа на Windows

    4. GCC. Первая программа на Linux

    5. Clang. Первая программа на MacOS

    6. Настройка параметров компиляции

  2. Глава 2. Основы языка Си

    1. Структура программы на Си

    2. Переменные

    3. Типы данных

    4. Консольный вывод. Функция printf

    5. Константы

    6. Арифметические операции

    7. Условные операции

    8. Поразрядные операции

    9. Операции присваивания

    10. Преобразование типов

    11. Условные конструкции

    12. Циклы

    13. Введение в массивы и строки

    14. Ввод в консоли. Функция scanf

  3. Глава 3. Указатели

    1. Что такое указатели

    2. Операции с указателями

    3. Арифметика указателей

    4. Константы и указатели

    5. Указатели, массивы и строки

    6. Массивы указателей и многоуровневая адресация

  4. Глава 4. Функции

    1. Определение и описание функций

    2. Параметры функции

    3. Результат функции

    4. Рекурсивные функции

    5. Область видимости переменных

    6. Внешние объекты

    7. Указатели в параметрах функции

    8. Указатели на функции

    9. Указатели на функции как параметры и результаты функций

    10. Функции с переменным количеством параметров

    11. Параметры командной строки

  5. Глава 5. Препроцессор

    1. Директива #include. Включение файлов

    2. Директива #define

    3. Макросы

    4. Условная компиляция

  6. Глава 6. Структуры

    1. Определение структур

    2. Структуры как элементы структур

    3. Указатели на структуры

    4. Массивы структур

    5. Структуры и функции

    6. Объединения

    7. Перечисления

    8. Битовые поля

  7. Глава 7. Динамическая память

    1. Выделение и освобождение памяти

    2. Выделение памяти для двухмерного массива произвольной длины

    3. Управление динамической памятью

    4. Указатель как результат функции

  8. Глава 8. Ввод-вывод и работа с файлами

    1. Открытие и закрытие потоков

    2. Чтение и запись бинарных файлов

    3. Чтение и запись структур в файл

    4. Чтение и запись в файл и функции fwrite и fread

    5. Чтение и запись текстовых файлов

    6. Форматируемый ввод-вывод

    7. Позиционирование в потоке

    8. Консольный ввод-вывод

    9. Форматированный ввод и вывод в строки. Функции sscanf и sprintf

  9. Глава 9. Стандартная библиотека С

    1. Заголовочные файлы стандартной библиотеки С

    2. Работа со строками

    3. Работа с памятью

    4. Работа с датами и временем

    5. Математические функции

    6. Преобразование строк в числа и чисел в строки

    7. Обобщения и макрос _Generic

    8. Поддержка Unicode и кодировки UTF-16 и UTF-32

  10. Глава 10. Среды разработки для С

    1. Первая программа в Visual Studio

    2. Первая программа в Qt Creator

  11. Глава 11. Взаимодействие с кодом Python

    1. Подключение 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 часов контента, чтобы поразмыслить.