Язык программирования С,
обшая информация, документы, ссылки.

Документация

  1. Б. Керниган, Д. Ритчи. Язык программирования Си (основной учебник)
  2. Стивен Прата. Язык программирования C. Лекции и упражнения
  3. Подбельский В. В., Фомин С.С. Программирование на языке СИ (имеется на абонементе в библиотеке)
  4. Подбельский В. В. Практикум по программированию на языке СИ (имеется на абонементе в библиотеке)

Задачник

  • Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию

    Образ виртуальной машины

    Виртуальная машина для VirtulBox с ОС Simply Linux, GCC, Geany
    Машина функционирует на 256МБ оперативной памяти, рекомендуемый объем - 512МБ и выше.
    Пользователь test, пароль 123
    Системный администратор root, пароль 123
    Система виртуализации VirtualBox может быть загружена отсюда.

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

    Для подготовки текста решений задач следует использовать произвольный текстовый редактор, желательно - с подсветкой синтаксиса (geany, редактор файлового менеджера mc и т.д.).

    Для компиляции - компилятор gcc.

    Общие рекомендации

    Программы создавать в папке с уникальным именем (номером студенческого билета) на рабочем столе. Рабочий стол периодически подвергается очистке, поэтому по окончании занятия копировать содержимое своей папки на флеш-память или отправлять себе по сети Интернет (почта, яндекс-диск и т.п.).

    Для целочисленных переменных испольовать тип int, для вещественных - float.

    Для ввода-вывода данных использовать функции scanf, printf.

    При необходимости использовать математические функции из библиотек stdlib.h и math.h.

    При использовании функций из math.h следует указывать компилятору подключать при сборке программы динамическую библиотеку libm.so, содержащую код математических функций. Это обеспечивает опция -lm в командной строке компилятора. Например: gcc my.c -o my.run -lm скомпилирует программу my.c в исполняемый файл my.run, подключив библиотеку libm.so.

    При подозрении на утечки памяти в программе следует использовать опции компилятора -fsanitize=address для подключения библиотеки слежения за памятью и -g для включения в исполняемый файл отладочной информации, что позволит получить имя файла и номер строки, где произошла ошибка. Информация об утечках будет выведена после остановки программы. Например: gcc -fsanitize=address -g my.c -o my.run скомпилирует программу my.c в исполняемый файл my.run, с поддержкой слежения за утечками памяти.

    Для поиска нужной функции можно использовать утилиту man, которая обеспечивает доступ из консоли к системе помощи linux, в том числе - к описаниям системных библиотек и функций на языке С. Пакеты с документацией (man pages) должны быть предварительно установлены. Например, команда man fabs возвратит описание функции fabs. Если описание не найдено, или найдено только на иностранном языке, команду можно повторить в поисковой строке Google.

    Принципы зачета лабораторной работы

    1. Задачи решаются студентом на лабораторных работах, а также самостоятельно вне пределов вуза / на дополнительных занятиях.
    2. Решения сдаются преподавателю на лабораторных работах.
    3. Каждое задание лабораторной работы должно быть продемонстрировано преподавателю, обеспечены успешная компиляция программы без ошибок и предупреждений, запуск программы, корректный ввод и вывод данных.
    4. По каждому заданию могут быть заданы дополнительные вопросы. Примеры вопросов: "Какие нужно ввести исходные данные, чтобы получить такой-то результат?"; "Каковым будет поведение программы, если таким-то образом изменить такую-то строку/оператор/выражение и т.д.?"; "Какое значение будет в переменной X после пятой итерации цикла в таких-то строках?" и т.п. При неправильном ответе студент перемещается в конец очереди сдающих.
    5. Уровень сложности и количество задаваемых вопросов зависит от уровня самостоятельности решения. При подозрении на копипастинг процесс зачета резко усложняется.
    6. Задача считается решенной после правильных ответов студента на все заданные вопросы.
    7. Лабораторная работа зачитывается после решения всех задач.
    8. Студент получает зачет по предмету после зачета всех лабораторных работ.