Хрестоматия по программированию на Си в Unix



Хрестоматия по программированию на Си в Unix - стр. 4


Compile Edit Run program

Напишите на curses-е функцию, реализующую выбор в меню - прямоугольной таблице:

слово1 слово4 слово7 слово2 *слово5 слово8 слово3 слово6

Строки - элементы меню - передаются в функцию выбора в виде массива строк. Число элементов меню заранее неизвестно и должно подсчитываться внутри функции. Учтите, что все строки могут не поместиться в таблице, поэтому надо предусмотреть "прокручивание" строк через таблицу при достижении края меню (т.е. таблица служит как бы "окошком" через которое мы обозреваем таблицу большего размера, возможно перемещая окно над ней). Предусмотрите также случай, когда таблица оказывается заполненной не полностью (как на рисунке).

Используя библиотеку curses, напишите программу, реализующую клеточный автомат Конвея "Жизнь". Правила: есть прямоугольное поле (вообще говоря бесконечное, но принято в конечной модели замыкать края в кольцо), в котором живут "клетки" некоторого организма. Каждая имеет 8 соседних полей. Следующее поколение "клеток" образуется по таким правилам:

  • если "клетка" имеет 2 или 3 соседей - она выживает.
  • если "клетка" имеет меньше 2 или больше 3 соседей - она погибает.
  • в пустом поле, имеющем ровно 3х живых соседей, рождается новая "клетка".

Предусмотрите: редактирование поля, случайное заполнение поля, останов при смерти всех "клеток", останов при стабилизации колонии.

При помощи curses-а напишите экранный редактор кодов доступа к файлу (в форме rwxrwxrwx). Расширьте программу, позволяя редактировать коды доступа у группы файлов, изображая имена файлов и коды доступа в виде таблицы:

НАЗВАНИЕ КОДЫ ДОСТУПА
файл1 rwxrw-r-
файл3 rwxrwxr-
файл2 rw-r-xr-x

Имена файлов задавайте как аргументы для main(). Указание: используйте для получения текущих кодов доступа системный вызов stat(), а для их изменения - системный вызов chmod().

* Пиксел (pixel, pel) - picture element, в машинной графике - точка растра на экране.

© Copyright А. Богатырев, 1992-95
Си в UNIX

| |




Содержание  Назад