ЛР1. Компиляция и сборка, форматированный ввод-вывод, простейшая математика

Задания

  1. (20) Данное задание следует выполнять в терминале ОС Linux, на узле с архитектурой x86-64, с установленым пакетом GCC, содержащим компилятор языка Си.

    Cоздать программу вывода на экран константной строки (5-10 символов). Создать исполняемый файл из программы консольным компилятором cc в один этап, запустить и проверить корректность работы. Быть готовым продемонстрировать одноэтапный процесс создания исполняемого файла.

    Создать исполняемый файл из программы в 3 отдельных этапа: препроцессинг, компиляция, сборка. Каждый последующий этап должен использовать результаты работы предыдущего. Препроцессор cpp получает на вход файл с исходным кодом программы, на выходе генерирует исходный код с раскрытыми директивами препроцессора. Компилятор cc получает на вход результат работы препроцессора и генерирует объектный файл с машинным кодом и расширением .o. Сборщик ld получает на вход результат работы компилятора, вспомогательные объектные файлы, генерирующие точку входа в программу (/usr/lib64/crt1.o), секцию инициализации (/usr/lib64/crti.o) и секцию завершения (/usr/lib64/crtn.o) программы, подключает стандартную библиотеку Си libc.so опцией -lc и применяет механизм динамической сборки опцией -I/lib64/ld-linux-x86-64.so.2. Результат работы сборщика - исполняемый файл, которые следует запустить и убедится в корректности его работы. Быть готовым продемонстрировать трехэтапный процесс создания исполняемого файла.

  2. (30) Решить задачи под указанными номерами. Задачник доступен в разделе документации.

    2 (дополнительно получить решение без модулей),
    3 (дополнительно получить максимальное расстояние между углами куба),
    6 (дополнительно получить величины углов в градусах),
    8 (дополнительно получить периметр вписанного n-угольника),
    9 (дополнительно получить сопротивление последовательного соединения)

  3. (30+20) Решить задачи под указанными номерами. Задачник доступен в разделе документации.

    11aг,
    15 (дополнительно найти радиус описаной окружности),
    25,
    29