Написать макроопределения SCREEN(имя, ширина, высота), FILL(имя, символ), DOT(имя, x, y, символ) и DISPLAY(имя). SCREEN(имя, ширина, высота) задаёт «текстовый экран» — двумерный массив имя типа char; FILL(имя, символ) заполняет весь этот экран точками; DOT(x, y, символ) помещает символ на «экран» имя по координатам x, y (координаты начинаются с 0 в левом нижнем углу); DISPLAY(имя) выводит экран построчно.
- Тестирующая программа может выглядеть так:
.
Подсказка 1: в моём решении экран — это двумерный символьный массив шириной на 1 больше и заполненный нулями. Его удобно выводить с помощью puts() в цикле
Подсказка 2. В FILL(screen, символ) как бы не хватает параметров «ширина» и «высота». Откуда их взять? В моём решении «Ширина» — это sizeof нулевого элемента экрана (только -1), а высота получается делением на неё sizeof всего экрана. То же и для DISPLAY.
Подсказка 3. В тестах будет FILL(screen, getchar()) — при этом getchar() должен срабатывать однократно
Необязательная подсказка. Я написал вспомогательный макрос BYLINE(экран, оператор), который применяет оператор к каждой строке экрана. И с его помощью уже реализовал FILL и DISPLAY
......................** ....................**.. ..................**.... ................**...... ..............**........ ............**.......... ..........**............ ........**.............. ......**................ ....**.................. ..**.................... **......................
