18. Проверочная работа#
Проверочная работа для учащихся представляет собой экзамен. Он охватывает пройденные темы. Экзамен длится 90 минут. Необходимо написать программу на Си. Техническое задание на программу будет предоставлено за 24 часа до экзамена. Техническое задание будет один на всех.
Требования к результату#
В результате выполнения задания в файловой системе должен появиться архив с именем ~/<your-last-name>/exam.tgz, где <your-last-name> – фамилия учащегося.
Содержимое архива размещается в каталоге exam и состоит из файлов:
файл
main.cс исходными кодами и основной функциейmain;файл со сценарием сборки
build-gcc.sh;файлы с тестовыми сценариями и исходными данными к тестам;
В техническом задании перечислены названия тестов и список содержащихся в них команд.
Далее вместо <name> подставляется имя теста.
Для каждого теста создайте сценарий test-<name>.sh.
В тесте вызываются команды, вывод которых перенаправляется в файл output-<name>.txt
your-last-name
├─> main.c
├─> build-gcc.sh
├─> test-version.sh
├─> test-help.sh
└─> test-cutline.sh
Проверка результата#
Учащийся распаковывает архив, переходит в каталог exam и создает в нем подкаталог output.
Содержимое архива копируется в output.
Запускаются сборочный и тестовые сценарии и анализируются выходные файлы на предмет соответствия требованиям технического задания.
Оценка результата#
Оценки:
удовлетворительно, получить хотя бы запускаемый файл;
хорошо, завершить успешно два и более тестов;
отлично, собрать программу без предупреждений (warning’ов), завершить успешно все тесты и соответствовать пунктам технического задания.
Примеры технических заданий#
enumerate, утилита нумерования строк#
Написать программу на языке программирования Си.
Программа называется enumerate.
Программа принимает из командной строки имена файлов и выводит их содержимое на экран, нумеруя каждую строку.
Нумерация сквозная и начинается с 1.
Программа поддерживает следующие опции:
-h,--helpвыводит следующее сообщение на экран:
Usage: enumerate [-h | --help] [-v | --version] ...
Display the contents of line-numbered files.
Options:
-h, --help
display this help and exit
-v, --version
output version information and exit
-v,--versionвыводит номер версии, в нашем случае0.0.1.
Список тестов:
versionзапускает командыenumerate -vиenumerate --version.helpзапускает командыenumerate -hиenumerate --help.mixзапускает командыenumerate -h -vиenumerate -v -h; должна отработать первая опция в списке.enumerateзапускает командыenumerate test-*.shиenumerate output-*.txt.
cutline, утилита отсекания строк#
Написать программу на языке программирования Си.
Программа называется cutline.
Программа принимает из командной строки имена файлов и выводит строки, отсекая до 30 символов.
Программа поддерживает следующие опции:
-h,--helpвыводит следующее сообщение на экран:
Usage: enumerate [-h | --help] [-v | --version] ...
Cut lines to 30 characters.
Options:
-h, --help
display this help and exit
-v, --version
output version information and exit
-v,--versionвыводит номер версии, в нашем случае0.0.1.
Список тестов:
versionзапускает последовательно командыcutline -vиcutline --version.helpзапускает последовательно командыcutline -hиcutline --help.cutlineзапускает последовательно командыcutline test-*.shиcutline output-*.txt.