Программа обучения 10 класса по курсу «Информатика. Программирование на языке C»

  • История и эволюция языков программирования. Программа «Hello, world».
  • Знакомство с языком С на примере программы для перевода градусов Цельсия в градусы Фаренгейта. Составные части компилятора C. Запуск компилятора C в операционной системе UNIX.
  • Целые числа. Целые числа со знаком и без знака. Целочисленные переполнения. Цикл while.
  • Числа с плавающей точкой. Мантисса, экспонента. Функции printf и scanf. Форматные директивы ввода/вывода. Математическая библиотека языка C.
  • Оператор if. Вложенные if. Операторы сравнения. Логические операторы.
  • Условия и логические операторы (повторение). Логические операторы (повторение). Ленивость логических операторов в языке C. Цикл do-while. Оператор break. Бесконечный цикл.
  • Вложенные циклы. Операторы постфиксного и префиксного инкремента.
  • Представление символов в кодировке ASCII. Спецсимволы. Посимвольный ввод-вывод. Цикл по вводимым символам. Константа EOF.
  • Массивы. Индексы массивов. Директива #define.
  • Функции. Сигнатура функции. Аргументы и параметры функций. Семантика передачи аргументов по значению. Возврат значения из функции.
  • Поиск и сортировка в массивах. Альтернативные варианты написания функции линейного поиска. Поиск минимума. Сортировка пузырьком. Сортировка выбором.
  • Строки. Строки как массивы языка С. Символ конца строки. Инициализация строк. Функции стандартной библиотеки. Источники документации по функциям стандартной библиотеки.
  • Ввод/вывод в файлы. Функции стандартной библиотеки для ввода/вывода. Текстовый и бинарный режим открытия файлов. Вспомогательные функции.
  • Механизм вызова функций. Стек. Указатели. Операторы разыменования указателя и получения адреса. Функция swap.
  • Указатели (повторение). Операторы разыменования указателя и получения адреса (повторение). Функция swap (повторение). Указатели и массивы.
  • Приведение типов указателей. Нетипизированные указатели. Двумерные массивы и указатели. Массивы строк.
  • Аргументы командной строки. Отладка программы. Локализация ошибок. Отладочная печать. Использование макроса assert. Перенаправление ввода программы.
  • Классы памяти. Стек, куча, статический класс памяти. Функции malloc, free, realloc. «Наивные» реализации этих функций.
  • Метод деления отрезка пополам. Метод Хорд.
  • Рекурсия. Вычисление чисел Фибоначчи с помощью рекурсивной функции без кеширования результата и с кешировнием. Статические переменные.
  • Раздельная компиляция. Защита от множественного включения. Указатели на функции. Оператор typedef.
  • Структуры. Массивы структур. Выравнивание значений в памяти.
  • Проектирование программ. Разделение реализации и интерфейса. Абстрактные типы данных. Указатели на структуры. Тип данных «дерево».
  • Численное интегрирование. Методы левых (правых, средних) треугольников, трапеций, Симпсона. Генераторы псевдослучайных чисел. Метод Монте-Карло.
  • Побитовые операции. Битовый сдвиг влево. Представление знаковых целых числе в виде дополнения двойки. Логический и арифметический сдвиг вправо. Побитовые отрицание, логическое «и», логическое «или», логическое исключающее «или». Приоритеты операций.
  • Связные списки. Хеш-таблицы.