Инструменты пользователя

Инструменты сайта


courses:programming:lectures_list

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

  • Введение
    • О курсе
    • Структура занятий:
      • Вопросы в начале каждой пары (вопросы заранее на pr1@)
      • Самостоятельная работа c MOOC
    • Об инструментах:
      • IDE vs simple tools
      • default toolchain
        • editor, compiler, linker
      • gcc
      • git (кратко)
      • make
    • Модель вычислений в архитектуре Фон-Неймана
    • Обзор парадигм/стилей программирования
      • Императивный
      • Декларативный
      • Функциональный
    • Исполнение программ. Компиляция и интерпретация.
    • О языке C. Процесс компиляции программы.
    • Введение в синтаксис. Составные элементы программы. Hello World.
    • Справочные материалы:
      • KRC Керниган, Ритчи. Язык программирования Си
      • KRU Керниган, Пайк. Программное окружение Unix
      • GIT С.Чансон. Pro git
    • Домашнее задание:
      • KRC главы 1-3. Изучить, подготовить вопросы.
      • GIT 1.1–1.3, 2.*

Лекция 2

  • вопросы и ответы
    • getchar/putchar, EOF
    • sleeps
    • отличия С от С++
  • K&R 1-3 Обзор, примеры
  • RCS, git
  • Типы и их представление в памяти
  • Начальные сведения об указателях
  • Консольный ввод-вывод
Полезная информация

Лекция 3

Практические задачи ввода вывода
  • Указатели. Передача аргументов функции с использованием указателей.
  • Ввод форматированных данных через scanf, используя несколько параметров разного типа в сроке. Например «%s %d %x». Обратить внимание на вводы строк: адрес первого элемента массива, адрес строки.
  • Пример на обработку возвращаемых значений printf/scanf
  • Демонстрация ввода массива (из файла с помощью перенаправления). Вычисление значения по всем элементам, например суммы
  • Строки как массивы символов с нулевым символом на конце
  • Ввод строк. Использование fgets вместо потенциально опасных для строк gets и scanf
  • Построение диалоговой системы (Цикл: приглашение системы и вопрос → ввод пользователем ответов → интерпретация ответа)
  • Демонстрация последствий использования gets (модификация других переменных вследствие переполнения буфера)
  • Примеры на печать и чтение из/в строки (функции sscanf, sprintf)
  • Интерпретация кодов символов. Например программа считывает из стандартного потока бинарный набор байт и печатает его побайтно в виде 16-ричных кодов. Затем в виде целых беззнаковых short. Бинарным потоком может являться сам исподняемый файл, т.е. ./a.out <./a.out Также для справки см. hexdump -C

Тема 4.

  • Исполнение программ. Компиляция и интерпретация.
  • Обзор парадигм/стилей программирования
    • Императивный
    • Декларативный
    • Функциональный
  • Массивы
  • Функции и рекурсия
  • Снова про указатели

Лекция 5

  • Отправка решений на pr1@ ( тема письма «Фамилия Имя, группа, решение 01» )
  • Результаты прохождения stepik
  • Анонс дополнительных занятий
  • Передача параметров/возврат значений более детально
  • Сравнение чисел с плавающей точкой с определенной точностью.

Лекция 6

  • Стек
  • Динамическая память
  • Передача указателей в функцию
  • Операции со строками

Лекция 7

  • опрос
  • экзамены
  • доп занятия
  • контрольная
  • объединения
  • рекурсия и циклы
Примеры с лекции

Лекция 8

  • Объединения и массивы
  • Понятие файла
Примеры с лекции