В течение семестра необходимо выполнить пять заданий не считая вводных задач, предназначенных для освоения среды. Задачи должны быть сданы в сроки, указанные ниже. Только тогда они могут быть оценены положительно. Если срок пропущен, то задача все равно должна быть сдана, но положительной оценки за нее не выставляется.
Вводные задачи 01 и 02 зачитываются без оценки. Сданная в срок основная задача оценивается от 0 до 5 баллов. Оценка выставляется на основании требований протокола в бланк (который должен принести студент).
Сдача работы подразумевает:
- предоставление файла с исходным кодом программы и сопутствующих файлов (Makefile и т. п.)
- презентацию исходного кода (демонстрация, пояснение, ответы на вопросы преподавателя)
- презентацию программы (демонстрация сборки и исполнения программы, ответы на вопросы преподавателя)
- предоставление отчёта о разработке
- предоставление протокола оценки задачи преподавателем
- предоставление других документов, указанных в условии задачи
Задача 01. Набрать и запустить в emacs программу "Hello world". При сдаче необходимо продемонстрировать умение транслировать и запускать программу.
Задача 02. Набрать и запустить в emacs программу подсчета числа слов в тексте. Модифицировать эту программу для подсчета символов буквы 'A' (латинской) в тексте. При сдаче необходимо продемонстрировать умение работать в отладчике gdb.
Список практических заданий и соответствующих зачетных сроков
Задача 1. Найти в тексте номер строки, содержащей самое длинное слово. Текст определяется перенаправлением стандартного ввода.
Срок сдачи 19.10
Задача 2. Найти в тексте номер строки, содержащей самое длинное слово, в котором использована заданная комбинация символов. Комбинация должна быть указана в первой строке текста и завершается символом конца строки. Текст определяется перенаправлением стандартного ввода.
Срок сдачи 02.11
Задача 3. Модернизировать задачу 2 так, чтобы имя файла, содержащего текст, передавалось в программу из командной строки при запуске программы.
Срок сдачи 16.11
Задача 4. Модернизировать задачу 3. Новая реализация должна содержать не менее трех отдельных функций, не считая функции main(). Каждая функция должна быть содержательной, независимой, иметь параметры и возвращаемое значение. При разработке использовать передачу параметров как по значению, так и по адресу. По крайней мере один параметр и одно возвращаемое значение должны быть массивами. Комбинация для поиска должна передаваться из командной строки.
Срок сдачи 07.12
Бонусное задание (3 балла). Реализовать возможности анализировать несколько текстов в разных файлах и использовать ключи в командной строке для задания файлов и комбинации поиска.
Задача 5. Разработать тестовую оснастку для задачи 4. Использовать интерпретатор shell и, в частности, команду grep.
Срок сдачи 21.12
Бонусное задание (3 балла). Генерировать автоматический отчет о результатах тестирования.
Задача 6 (для успевающих). Собрать, запустить и разобраться в коде программы gtk-first. Данная программа написана с использованием графической библиотеки элементов интерфейса GTK+. Программа работает следующим образом: при нажатии на кнопку "Say", текст из поля ввода выводится в стандартный поток вывода.
Необходимо модифицировать код программы таким образом, чтобы интерфейс содержал два поля ввода, а при нажатии на кнопку "Say", текст из первого поля ввода записывался в файл с именем, введенным в другое поле ввода.
Список студентов, которым рекомендуется решить 6-ю задачу (по результатам работы на практике):
- гр. 22103
- В.А. Басунков
- А.Ю. Макаров
- А.А. Федулин
- А.В. Хитрый
- гр. 22104
- Н.В. Архипова
- В.А. Васильев
- А.В. Ковальчук
- гр. 22105
- Л.А. Терентьев
- гр. 22106
- М.Ю. Ломакина
Сроки сдачи бонусных задач совпадают со сроками сдачи основных заданий.
Студенты, набравшие в течение семестра 31 балл получат привилегии при выполнении письменной экзаменационной работы при наличии рекоммендации инструктора. О видах привилегий будет объявлено дополнительно.