Язык программирования С, лабораторная работа 3

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

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

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

Задания

  1. Решить задачи 63 (с проверкой исходных данных), 68б, 74, 76г из задачника.
  2. Дополнить программу-диспетчер из прошлой ЛР возможностью конфигурирования. Файл конфигурации имеет то-же имя, что и программа, расширение - .conf, находится в каталоге программы. Обеспечить корректность работы программы при смене ее имени и местоположения. Файл конфигурации состоит из строк, каждая из которых является парой имя=значение. Обеспечить поддержку двух конфигурационных директив:
    verboseTask=0|1
     0 - условие задачи не выводится.
     1 - условие задачи выводится (по умолчанию)
    allTasks=список номеров поддерживаемых задач через пробел
     по умолчанию - все задачи
    
    Файл конфигурации может отсутствовать, как и конфигурационные директивы. В таком случае используются значения по умолчанию.

Для целочисленных переменных использовать тип 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.

Для поиска нужной функции использовать утилиту man, которая обеспечивает доступ из консоли к системе помощи linux, в том числе - к описаниям системных библиотек и функций на языке С. Например man stdlib.h возвратит описание содержимого библиотеки stdlib, в том числе - заголовки всех функций библиотеки. Найдя требуемую функцию, ее описание можно получить, например, так: man abs, где abs - имя функции.