|
|
Занятие 1
Основы Linux и языков программирования C/C++. Использование GCC и Make.
|
- Файловая система Linux.
- Оболочки bash и
tcsh,
автоматическая настройка переменных окружения, цепочки и последовательности команд, управление задачами
(bg, fg, ps, jobs, kill).
- Основные команды Linux (ls, rm, mkdir, rmdir, pwd, cd, cp, mv, du, df, cat, more,
less, grep, sort, tail, head, w, who, man, passwd, chmod, file, diff,...),
перенаправление стандартного ввода-вывода.
- Интерактивная оболочка mc.
- Основные текстовые редакторы (vi,
pico/nano, jed, joe, mcedit).
- Утилиты tar,
gzip и
bzip2.
- Cетевые утилиты ssh, scp, ping, traceroute, finger.
- Препроцессор С/С++ [ BOOK ]
- Указатели на функции.
- Классы в С++. Наследование. Полиморфизм.
- Стандартный ввод-вывод в С++.
- Области видимости. Обработка исключений. Шаблоны.
- Коллекция компиляторов GCC.
- Структура проекта. Использование утилиты make [ BOOK ]
- Написание Makefile-а проекта [ manual ].
|
Задачи
- Настроить автоматическую установку переменных окружения PATH и LD_LIBRARY_PATH в
конфигурационных файлах bash/tcsh.
- Выделить строку с Вашим login-ом в файле /etc/passwd и перенаправить ее в локальный файл одной командой.
- Запустить на фон выполнение задачи 'cat /dev/zero > /dev/null' (что она делает?), определить ее PID и jobid,
определить среднюю загрузку процессора для Вашей задачи, остановить ее выполнение двумя способами.
- Запаковать любую директорию последовательностью 'tar; gzip' c максимальным коэффициентом сжатия (одной командой двумя способами),
переименовать исходную директорию, распаковать архив (одной командой двумя способами) и проверить идентичность распакованных и исходных файлов
используя diff (одной командой).
- Написать простой С++ проект со следующей иерархией классов: базовый класс - абстрактная элементарная частица с чисто
виртуальным методом 'const std::string GetID() const throw()' с несколькими наследниками, перегружающими этот метод.
Написать функцию, принимающую указатель на базовый класс и ссылку на std::ostream, выводящую идентификационную строку частицы с
помощью метода GetID() в указанный стандартный поток вывода. Вынести описания классов в отдельные файлы, написать Makefile
проекта, собрать и протестировать проект.
|
Задачи повышенной сложности
- Закачать с помощью wget исходный код пакета doxygen,
установить его в домашней директории
.
Реализовать класс "комплексное число" с перегруженными операциями +-*/=, !<>== и обработкой
исключений, снабдить класс коментариями в формате doxygen. Создать тестовое приложение, написать для него Doxyfile.
Сгенерить документацию в формате HTML для всего проекта.
|
Полезные ресурсы
|