Передовица » Макулатура » ИиО » Упражнения по графике ПЭВМ АГАТ

Упражнения по графике ПЭВМ АГАТ (N4/1987)

Несколько заданий для школьников, связанных с разработкой программ построения изображений как в текстовых так и в графических режимах. Немного смущает в этом тексте оператор "TEXT=0"... Может я чего-то не знаю, но на знакомых мне версиях бейсика эта команда обоснованно и намертво может завесить систему (это не ошибка транслятора, а универсализм, возведенный в абсолют).

Н.Антипов, М.Степанов. Группа сайта просит вас связаться с нами! (ЗАЧЕМ ЭТО?)

НИИ школ Минпроса РСФСР

Практика показывает, что учащихся любого возраста увлекает работа на персональных ЭВМ. Особый интерес вызывают игровые программы, а также богатые графические возможности компьютера. При изучении учащимися старших классов основ информатики можно наблюдать творческий подъём, когда они занимаются машинной графикой. Цветовые и динамические возможности графического дисплея ПЭВМ «Агат» позволяют реализовать содержательные задачи по обработке графической информации. Чтобы дисплей не превращался в обычный экран для демонстрации мультфильмов, чтобы учащиеся не были пассивны и не ограничивались примитивными действиями, нажимая на отдельные клавиши, необходимо систематически давать им задания для самостоятельной работы, постепенно знакомить с графическими возможностями компьютера. Важно, чтобы они сами создавали сюжеты изображений, управляли цветом и движением объектов.

В основу статьи положены учебные материалы, которые были использованы в экспериментальной работе в школе N502 Пролетарского района Москвы. Работа проводилась на ПЭВМ «Агат». Предлагаемая здесь система упражнений может быть использована в курсе информатики в IX-X классах, её можно рекомендовать для факультативных и внеклассных занятий с учащимися других классов. Эта система (порядок и постановка задач) не связана с конкретной ЭВМ и успешно используется, в частности, при работе с ПЭВМ «Ямаха» в школах Ждановского района Москвы. Вообще, работать с ней можно на любой ЭВМ с графическим (и особенно с цветным) дисплеем.

Экран дисплея содержит 32 строки, в каждой из которых можно разместить по 32 символа. Режим принято называть нормальным, когда на чёрном фоне экрана высвечиваются белые символы. Если же, наоборот, фон экрана белый, а символы - чёрные, то режим называют инверсным. Каждый режим задаётся соответствующим оператором. Заметим, что клавиша ввод (изогнутая стрелка) означает ввод информации или перевод строки. Её нажатие приводит к исполнению оператора. Так, исполнение оператора NORMAL устанавливает нормальный режим, а исполнение оператора INVERSE - инверсный режим. Для очистки экрана служит оператор HOME.

   Пример 1. Выполнение операторов
INVERSE
НОМЕ
очищает экран (экран белого цвета).
   Пример 2. Выполнение операторов
NORMAL
НОМЕ
очищает экран (экран чёрного цвета).

Замена белого цвета на другой осуществляется с помощью оператора RIBBON с указанием номера цвета, а именно:

	 0 чёрный
	 1 красный
	 2 зелёный
RIBBON = 3 жёлтый
	 4 синий
	 5 фиолетовый
	 6 голубой
	 7 белый
Операторы INVERSE и NORMAL отменяют цвет.
Пример 3. Установка красного, а затем жёлтого цвета экрана:
INVERSE
RIBBON = 1
HOME
RIBBON = 3
HOME
Далее выполним несколько операторов (они записаны в одной строке)
INVERSE : RIBBON = 4 : HOME
В результате экран станет синего цвета. Запишем короткую программу, при выполнении которой экран окрасится зелёным цветом.
10 INVERSE
20 RIBBON = 2
30 HOME

Отметим, что при выводе текста программы на экран командой LIST автоматически устанавливается нормальный режим. Перед началом новой программы, как правило, предыдущую уничтожают с помощью команды NEW.

Упражнение 1. Напечатать (вывести) в центре экрана слово АГАТ разноцветными буквами (крс., злн., жлт., син.).

При составлении программ воспользуемся операторами VTAB X и НТАВ X, где X указывает номер строки для VTAB и номер позиции в строке для НТАВ при выводе очередного символа.

Программа:
5 HOME : VTAB 16 : НТАВ 15
10 RIBBON = 1
15 PRINT "А";
20 RIBBON = 2
25 PRINT "Г";
30 RIBBON = 3
35 PRINT "А";
40 RIBBON = 4
45 PRINT "Т"

Видоизмените программу так, чтобы слово АГАТ располагалось в самой верхней строке экрана; буквы были одного цвета; буква А - красного цвета, а другие - синего цвета.

Составьте программу для записи в центре экрана слов ПЭВМ АГАТ, причём ПЭВМ - зелёного цвета, АГАТ - красного цвета.

Упражнение 2. Составить программу, которая запрашивает фамилию и номер цвета. Напомним, что строковые переменные отмечаются символом ¤. В программе для фамилии воспользуемся переменной F¤. Пусть печать будет в строке 16 с позиции 10 (не забудьте очистить экран!). Подсказка выдаётся в виде текста зелёным цветом.


Программа:	             Пояснения:
10 НОМЕ	                     очистка экрана;
20 RIBBON = 2	             включение зелёного цвета;
30 INPUT "ФАМИЛИЯ?"; F¤	     запрос и ввод фамилии;
40 PRINT	             пропуск экранной строки;
50 INPUT "НОМЕР ЦВЕТА"; С    запрос и ввод номера цвета;
60 НОМЕ	                     очистка экрана перед печатью фамилии;
70 RIBBON = С	             включение нужного цвета;
80 VTAB 16	             установка курсора в строке 16;
90 НТАВ 10	             перевод курсора в позицию 10;
100 PRINT F¤	             печать фамилии.

Исполните данную программу, чтобы на экран вывести свою фамилию.

Упражнение 3. Составить программу, которая напечатает слово АГАТ лесенкой:

АГАТ
 АГАТ
  АГАТ
   ...

Программа:
10 HOME : RIBBON = 1
20 FOR I = 1 ТО 29
30 НТАВ I
40 PRINT <АГАТ>
50 NEXT I

Упражнение 4. Закрасив экран зелёным цветом, изобразить на нём вложенных друг в друга два прямоугольника: внешний - красный, внутренний - жёлтый. Координаты вершин указаны на рис. 1. В программе предусмотрим следующий порядок «рисования»: по зелёному фону с помощью оператора цикла нарисуем красный прямоугольник, а затем внутри его - жёлтый.

Программа:
10 INVERSE : RIBBON = 2 : HOME
20 F¤="_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _"
30 S¤="_ _ _ _ _ _ _ _ _ _"
40 VTAB 8 : RIBBON=1
50 FOR I=8 TO 25
60 HTAB 8 : ? F¤
70 NEXT I
80 VTAB 12 : RIBBON = 3
90 FOR I=12 TO 21
100 HTAB 12 : ? S¤
110 NEXT I

Пояснения: Пробел - это «пустой символ», прямоугольник, заполненный фоновым цветом. F¤ содержит набор пробелов для закраски внешнего прямоугольника (полоса состоит из 18 символов); содержит набор из 10 пробелов - полоса для закраски внутреннего прямоугольника. Первый цикл (строки 50-70 программы) закрашивает внешний прямоугольник, второй цикл (строки 90-110 программы) закрашивает внутренний прямоугольник. С помощью НТАВ устанавливается начало полосы пробелов.

В качестве дополнительных упражнений могут быть задания различных размеров и цветов окраски указанных прямоугольников, а также различное расположение внутреннего прямоугольника по отношению к внешнему прямоугольнику.

Упражнение 5. По синему фону в диагональных позициях экрана напечатать красные прямоугольники.

Программа:
10 INVERSE
20 RIBBON = 4
30 НОМЕ
40 RIBBON =1
50 FOR I=1 ТО 30
60 НТАВ I
70 PRINT"_"
80 NEXT I

Программу можно записать с помощью меньшего числа строк (объединяя несколько операторов в одну строку):

10 INVERSE : RIBBON=4 : HOME : RIBBON = 1
20 FOR I=1 ТО 30
30 НТАВ I : PRINT "_"
40 NEXT I

Выполнить то же упражнение, но изменить цвет экрана и диагональных прямоугольников. Что надо сделать в программе (какие внести изменения), чтобы получить диагональные прямоугольники синего цвета по красному фону?

Упражнение 6. Получить изображение красного прямоугольника по синему фону. Рассмотрим программу:


10 INVERSE : RIBBON=4 : HOME
20 RIBBON = 1 : VTAB 8
30 FOR I=1 TO 18
40 НТАВ 8 : PRINT SPC(17); "_"
50 NEXT I

SPC - сдвиг курсора от исходной позиции на указанное число и при этом меняется фон.

Нарисовать изображение, получаемое на экране по данной программе (рисунок выполнить на клетчатой бумаге и указать координаты прямоугольника). Как изменить цвет фона или прямоугольника, расположение и размеры прямоугольника?

Работа в графическом режиме

В рассмотренных упражнениях графические объекты складывались из «мозаики» символов (в первую очередь пробелов). Когда изображение строится из пробелов, минимальным его элементом является одна позиция строки (экрана), представляющая собой прямоугольник, в котором может разместиться один символ. Тем не менее прямоугольники-позиции слишком велики, чтобы из них можно было составлять линии, ограничивающие контуры фигуры. До сих пор выполнялись упражнения в режиме символьного отображения информации. Далее мы перейдём к работе в графическом режиме. В графическом режиме позицию называют точкой. Различают несколько графических режимов. Приведём таблицу, в которой даны различные режимы работы и приведены основные их характеристики (табл. 1).

Таблица 1
Назначение режимаЦветностьКоличество позицийСпособ включения
СимвольныйЦветной32х32 прямоугольникаTEXT=0
Графический низкого рарешения (ГНР)»64х64 точкиGR=2
Графический среднего рарешения (ГСР)»128х128 точекMGR=1
Графический высокого рарешения (ГВР)Чёрно-белый256х256 точекHGR=1

Точка ГНР получается из позиции символьного режима делением той на 4 части. Таким же образом из точки ГНР получается точка ГСР, а из точки ГСР - точка ГВР (рис. 2).

В символьном режиме нумерация строк и позиций в строчке начинается с единицы, а в графическом режиме - с нуля. Обозначим X - номер позиции в строке, a Y - номер строки. На рис. 3 на экранной графической странице отмечены точки с начальными координатами 0,0, с текущими координатами X,Y и наибольшими координатами Xmax, Ymax (в правом нижнем углу экрана). В табл. 2 приведены значения Xmax и Ymax в зависимости от типа графического режима.

Таблица 2
РежимГНРГСРГВР
Xmax63127255
Ymax63127255

Работа в графическом режиме предусматривает:
1. Включение режима.
2. Задание цвета. Оператор COLOR (обязателен в графическом режиме).
3. Создание графического объекта (производится оператором PLOT). Оператор PLOT имеет следующие модификации:

1) установка точки
PLOT X,Y

2) проведение отрезка от точки X1,Y1 к точке X2,Y2
PLOT X1,Y1 TO X2,Y2

3) проведение отрезка от последней точки, установленной на экране оператором PLOT до точки с координатами X,Y
PLOT ТО X,Y

4) проведение ломаной с координатами вершин X1,Y1; X2,Y2; ... Xn,Yn
PLOT X1,Y1 ТО X2,Y2 ... ТО Xn,Yn
Координатами точек могут быть константы, переменные или арифметические выражения (дробная часть координаты отбрасывается).

Работать с графикой можно в программном режиме и в прямом диалоге. После включения графического режима набираемые с клавиатуры символы на экран не высвечиваются. По звуковому сигналу об ошибке «бип» надо снова набрать команду. Заметим, что работать «вслепую» достаточно сложно. Выход из графического режима в символьный: TEXT=0, или одновременно нажать клавиши УПР и СБР.

Упражнение 7. Установить точку на экране в заданном месте.

а) Установим точку с координатами Х=32 и Y=32 в графическом режиме низкого разрешения ГНР. Работа ведётся в прямом диалоге.
GR=2 - установка режима,
COLOR=1 - установка цвета,
PLOT 32,32 - установка точки.
Заметим, что две последние команды выполняются «вслепую» (набираемые символы не выдаются на экран). Лучше воспользоваться другим вариантом, когда эти операторы расположены в одной строке. Для их исполнения будет только один раз нажата клавиша ввод.
GR=2 : COLOR=1 : PLOT 32,32

б) Установим точку в режиме среднего разрешения. Какие при этом должны быть значения X и Y, чтобы точка была в той же части экрана, что и для случая а)? После сброса набрать и исполнить:
MGR=1 : COLOR=1 : PLOT 64,64
Далее выполните те же задания (а,б), но меняя цвет и расположение точки на экране.

Упражнение 8. Провести диагонали экранного прямоугольника в режиме ГСР. Заметим, что левая диагональ соединяет точки с координатами 0,0 и 127,127, а правая - точки с координатами 0, 127 и 127,0. Пусть диагонали будут зелёного цвета: MGR=1 : COLOR=2 : PLOT 0,0 ТО 127,127 : PLOT 0,127 ТО 127,0

Выполните то же задание, но в режиме ГНР. Какие при этом будут координаты вершин прямоугольника (через которые надо проводить диагонали)?

Упражнение 9. Разделите экранный прямоугольник на 4 части с помощью горизонтальной и вертикальной прямых, соединяющих середины противоположных сторон экранного прямоугольника. Какие координаты имеют середины сторон прямоугольника для режимов ГНР, ГСР, ГВР?

Упражнение 10. Получите на экране изображение, данное на рис. 4,а. Выполните данное задание в режиме ГНР и ГСР.

Упражнение 11. Выполните следующие действия:
GR=2 : COLOR=4 : PLOT 10,10 ТО 53,10 ТО 53,53 ТО 10,53 ТО 10,10
В результате должен получиться прямоугольник синего цвета (координаты вершин синего прямоугольника и направление его вычерчивания стрелками изображены на рис. 4,б). Запишите последовательность операторов, при которой внутри синего прямоугольника будет нарисован красный, с вершинами и направлением вычерчивания, отмеченным на рис. 4,б. Заметим, что указаны противоположные направления вычерчивания прямоугольников.

Упражнение 12. В режиме диалога «вслепую» выполнить следующие команды:

Команды:	                Пояснения:
MGR=1 : COLOR=1 : PLOT 40,64	режим ГСР, цвет красный, точка 40, 64;
PLOT 80,64	                установка точки	X=80, Y=64;
PLOT ТО 40,64	                проведение 1-го	отрезка (красный);
COLOR=2	                        зелёный цвет;
PLOT 80,32	                установка точки	X=80, Y=32;
PLOT ТО 40,64	                проведение 2-го	отрезка (зелёный);
COLOR=3	                        цвет жёлтый;
PLOT 80,96	                установка точки	X=80, Y=96;
PLOT ТО 40,64	                проведение 3-го	отрезка (жёлтый);
TEXT 0	                        выход из графического в символьный режим.

Для получения того же изображения (рис. 4,в) без учёта направления вычерчивания отрезков выполните действия с использованием меньшего числа операторов PLOT.

Далее рассмотрим упражнения для построения изображений в программном режиме.

Упражнение 13. Вычерчивание контура параллелепипеда (рис. 5). Нарисуйте на бумаге контур параллелепипеда. Проставьте координаты его вершин (в предположении работы в графическом режиме среднего разрешения ГСР). Продумайте порядок обхода. Рассмотрите разные варианты обхода. Необходимо выбрать рациональный способ (с меньшим числом разрывов и без повтора обвода).

Выполнить следующую программу для получения изображения на рис. 5.

Программа:	                        Пояснения:
10 MGR=1	                        режим ГСР;
20 GOLOR=2	                        цвет зелёный;
30 PLOT 105,15 ТО 75,45 ТО 75,105	построение ломаной от точки X=105, Y=15 ТО 15,105 ТО 15,45 ТО 75,45 к точке X=75, Y=45;
40 PLOT 15,45 ТО 45,15 TO 105,15	построение ломаной от 15,45 до 75,105; ТО 105,75 ТО 75,105
50 GET F¤:TEXT=0                        оператор GET ставится здесь для задержки изображения на экране.

С помощью оператора GET запрашивается значение символьной переменной F¤. После нажатия клавиши (введения любого символа) сработает оператор TEXT и произойдёт переход в символьный режим (изображение исчезнет с экрана).

Можно видоизменить программу так, чтобы менялась окраска прямоугольника (изображение переливается различными цветами)

15 FOR I=1 ТО 7	        начало оператора цикла;
20 COLOR=I	        номер цвета - значение I;
50 NEXT I : GOTO 15	конец цикла, переход к строке 15.

Остальные операторы без изменения. Программа зацикливается (для завершения необходимо сделать сброс). Можно ещё усовершенствовать программу (с целью задержки изображения в очередном цвете):

50 NEXT I : GET F¤ : GOTO 15

Упражнение 14. Закрасить экран.

10 HOME : VTAB 15 : ?"HOMEP ЦВЕТА"	печать слов НОМЕР ЦВЕТА;
20 GET X	                        запрос значения для цвета;
30 GR=2	                                режим ГНР;
40 COLOR=X	                        установка цвета (по X);
50 FOR Y=0 ТО 63	                цикл с параметром Y;
60 PLOT 0, Y ТО 63,Y	                проведение горизонтальной прямой (внутри цикла);
70 NEXT Y	                        конец цикла.

Далее в режиме диалога можно рисовать на цветном экране. Осуществить закраску экрана путём проведения вертикальных линий (как при этом изменится строка 60?). Выполнить то же упражнение в режиме ГСР (как при этом изменятся строки 30, 50, 60?).

Упражнение 15. Провести горизонтальные линии на экране. Рассмотрим режим ГВР и построение линий с шагом 10. В этом режиме оператор COLOR задаёт не цвет, а плотность точек на экране.

10 HGR=1	                режим ГВР;
20 FOR I=0 ТО 15	        цикл (от 0 до 15);
30 COLOR=I	                установка плотности точек;
40 PLOT 0,10*I TO 255,10*I	горизонтальная линия;
50 NEXT I	                конец цикла;
60 GET F¤ : TEXT=0	        запрос значения.

Провести таким же образом вертикальные линии. Выполнить упражнение для режима ГСР и для режима ГНР.

Упражнение 16. В режиме ГСР нарисовать сетку (решётку) с шагом в 10 позиций (рис. 6).

10 MGR=1:COLOR=3	        режим ГСР, цвет жёлтый;
20 FOR I=0 ТО 127 STEP 10	цикл от 0 до 127 с шагом 10;
30 PLOT 0,I ТО 127,I	        горизонтальная линия;
40 PLOT I,0 ТО I,127	        вертикальная линия;
50 NEXT I	                конец цикла;
60 GET F¤ :TEXT=0	        запрос значения.

Упражнение 17. Закрасить экран или его части, проводя всевозможные прямые, проходящие через центр.

Рассмотрим работу программы (построение в режиме ГНР).

10 GR=2	                        режим ГНР;
20 COLOR=2	                цвет зелёный;
30 FOR Х=0 ТО 63	        цикл по X;
40 PLOT X, 0 ТО 63-X, 63        концы отрезка «скользят» по горизонтали;
50 NEXT X	                конец 1-го цикла;
60 FOR Y=0 ТО 63	        цикл по Y;
70 PLOT 63,Y ТО 0, 63-Y	        концы отрезка «скользят» по вертикали;
80 NEXT Y	                конец 2-го цикла.

В результате работы 1-го цикла будут закрашены верхний и нижний треугольники экрана, а 2-й цикл произведёт закраску левого и правого треугольников (полученных проведением диагоналей) (рис. 7, а).

Если изменить строку 10, т.е.

10 MGR=1

то аналогичная работа произойдёт с закраской прямоугольника, расположенного в левой верхней четверти экрана (рис. 7, б).

Переделать программу, чтобы она закрашивала аналогичным образом каждую четверть экрана. Выполнить следующую программу:

10 MGR=1
20 COLOR=2
30 FOR X=0 ТО 63
40 PLOT X,0 ТО 63-X,63	       конец отрезка скользит по горизонтали в левой верхней четверти;
50 PLOT X+64,0 ТО 127-Х,63     в правой верхней четверти;
60 PLOT X,64 ТО 63-X,127       в левой нижней четверти;
70 PLOT X+64,64 ТО 127-X,127   в правой нижней четверти;
80 NEXT X	               конец цикла по X.
. . . 

По этой части программы получится рис. 7,в. Далее будет оператор цикла по Y (допишите программу).

Упражнение 18. Рассмотреть программу, что происходит при её работе:

10 MGR=1 : COLOR=4
20 FOR I=0 ТО 127
30 PLOT 0,I ТО I,127
40 NEXT I

Работа программы будет более наглядной, если в заголовке цикла вставить шаг, например, 10, т.е. записать строку 20 в виде:

20 FOR I=0 ТО 127 STEP 10

На рис. 8 даётся изображение, полученное по рассматриваемой программе. Какие изображения будут получены на экране для следующих модификаций строки 30:

30 PLOT 0,0 ТО I,127
30 PLOT 0,0 ТО 127,I
30 PLOT I,0 ТО 127,I

Упражнение 19. Разобрать работу программы, в которой использованы вложенные циклы.

10 INVERSE : RIBBON=3 : HOME
20 RIBBON=1
30 FOR Y=3 ТО 29 STEP 2
40 FOR X=3 TO 29 STEP 2
50 VTAB Y : HTAB X
60 PRINT "_"
70 NEXT X : NEXT Y

На экране прямоугольники бегут по строкам, и поэтому заполнение экрана происходит по строкам сверху вниз. Переставим циклы:

30 FOR Х=3 ТО 29 STEP 2
40 FOR Y=3 ТО 29 STEP 2
70 NEXT Y : NEXT X

В этом случае прямоугольники бегут по столбцам. Изображение заполняет экран по столбцам слева направо.

Упражнение 20. В режиме ГСР нарисовать прямоугольники размеров 5x5 и шагом 10 по осям X и Y.

10 MGR=1 : COLOR=1
20 FOR X=10 ТО 110 STEP 10	                  внешний цикл;
30 FOR Y=10 ТО 110 STEP 10	                  внутренний цикл;
40 PLOT X,Y ТО X+4,Y ТО X+4,Y+4 ТО X,Y+4 ТО X,Y   построение прямоугольника (проведение ломаной);
50 NEXT Y : NEXT X	                          окончание циклов.

Чтобы целиком закрасить каждый прямоугольник, надо воспользоваться новым циклом и расположить его внутри имеющихся, а именно (вместо построения ломаной - прямоугольника будет его заполнение):

40 FOR I=0 ТО 4:PLOT X,Y+I ТО X+4,Y+I : NEXT I

На рис. 9 дано изображение экрана, порядок обхода прямоугольника и его заполнения. Выполните аналогичное упражнение с иными размерами прямоугольников и другими шагами по X и Y.

Дополнительные упражнения

Упражнение 21. Для задержки графической картинки на определённое время можно воспользоваться «пустым» оператором цикла (заголовок и конец цикла). Наибольшее значение для параметра цикла можно запрашивать (им определяется время задержки рисунка на экране).

Программа	Пояснения:
10 INPUT "ВВЕДИТЕ Р"; Р	     запрос значения Р;
20 GR=2 : COLOR=6	     режим ГНР, цвет голубой;
30 FOR X=1 ТО 63 STEP 2	     внешний цикл;
40 FOR Y=1 ТО 63 STEP 2	     внутренний цикл;
50 PLOT X,Y	             установка точки X,Y;
60 NEXT Y : NEXT X	     конец циклов;
70 FOR I= 1 ТО P : NEXT I    пустой цикл для задержки изображения (по значению Р);
80 TEXT=0	             выход в символьный режим.

Поработать с программой для разных значений Р.

Упражнение 22. Составить программу для изображения на экране шахматной доски. Выполнить построения в режимах ГНР и ГСР. В режиме ГСР построить изображение шахматной доски во весь экран, затем в ¼ экрана, расположив при этом в центре экрана или в одной из четвертей экрана.

Упражнение 23. Движение символа по диагонали экранного прямоугольника.

10 INVERSE : RIBBON=1 : HOME   красный экран;
20 INPUT А,B,С	               ввод значений А,B,С;
30 FOR Т=A ТО В STEP С	       цикл по параметру Т;
40 RIBBON = 4	               синий цвет;
50 VTAB T : HTAB T	       строка Т, позиция T;
60 ? "_"	               печать пробела (синего квадрата);
70 FOR К=1 ТО 100	       пустой цикл для замедления скорости;
80 NEXT К	               конец пустого цикла.

В строке 70 вместо числа 100 можно взять число 20 (работа будет быстрее, задержка в 5 раз меньше), если взять число 200, то задержка увеличится в 2 раза. Вообще, можно запрашивать значение Р для интервала задержки изображения, это можно предусмотреть в строке 20. Если убрать строки 70-80, задержки не будет, символ - квадратик быстро движется. Продолжим работу по написанию программы:

90 RIBBON=1	       красный цвет;
100 VTAB T : HTAB Т
110 ? "_"	       печать красного квадрата;
120 NEXT Т	       конец цикла по Т.

При этом синий квадрат (см. строки 40-60) становится красным и не виден на красном фоне (закрашивается). Так как предыдущее положение не видно, то наблюдается движение вперёд (вниз) по главной диагонали.

Если изъять строку 110, то не будет печать «закраски» и все первоначальные положения видны; будет строится ступенька. В строке 120 завершается цикл, организующий продвижение вперёд. Без строк 90-100-110 нет закраски предыдущего квадрата, и поэтому эффект: все синие диагональные элементы видны.

Упражнение 24. Продолжить работу с программой из предыдущего упражнения (23). Организовать движение назад. Для этого заменим границы изменения параметра цикла и шаг (умножим его на -1). Таким образом подготовим к работе цикл для рисования квадратов в обратную сторону - снизу вверх по главной диагонали. Продолжим написание программы:

130 R=A : A=B : B=R	         замена значений А и В;
140 С=-С	                 изменение знака шага С;
150 GET F¤	                 остановка перед сменой направления движения, требуется ввод символа;
160 IF F¤ < > "Е" THEN 30	 проверка на конец работы;
170 END	                         конец программы.

Условились, что при введённом символе Е будет заканчиваться работа (условно считаем Е - сокращение слова END). Если вместо строк 150 и 160 оставить лишь строку 160, в которой произойдёт переход на строку 30, то после работы циклов остановки не будет; направление движения будет периодически меняться на противоположное.

Упражнение 25. Организация рисования по контурам.

Коды стрелок    ←8    ↑25
                →21   ↓26

Рассмотреть и выполнить программу:

10 INVERSE : RIBBON=1 : HOME	цвет красный;
20 INPUT X,Y	                ввод X и Y для установки квадрата;
30 RIBBON=4	                синий цвет;
40 VTAB Y : HTAB X : ?"_"       печать квадрата по X и Y;
50 GET F¤	                остановка для запроса N кода, надо ввести код стрелки;
60 K=ASC(F¤)	                переменная К - число - код;
70 IF K=8 THEN Х=Х-1	        одна позиция влево;
80 IF K=21 THEN	X=X+1	        одна позиция вправо;
90 IF K=26 THEN	Y=Y+1	        одна строка вниз;
100 IF K=25 THEN Y=Y-1	        одна строка вверх;
110 VTAB Y:HTAB X	        установка точки по X и Y;
120 ? "_"	                для печати пробела;
130 GOTO 50	                переход на запрос кода.

В строках 70-80-90 можно добавить операторы GOTO 110. Так как работа производится быстро, то нажатие на клавишу со стрелкой приводит к рисованию квадрата в нужном месте (смещённому от предыдущего положения на одну позицию в указанном стрелкой направлении).

На этом можно завершить упражнения для начального этапа изучения графических возможностей ПЭВМ «Агат». Как видно, для выполнения разнообразных графических работ потребовался небольшой набор средств Бейсика в системе «Агат». Выполнение упражнений позволяет учащимся освоить работу с графикой в режиме диалога. Освоив простейшие, но основные элементы, они могут в дальнейшем изучить и другие графические возможности персонального компьютера - вычерчивание кривых линий, построение графиков функций, создание более сложных графических изображений.

* * *

Использование материалов проекта agatcomp без получения предварительного письменного разрешения agatcomp запрещено.


Почта для обратной связи: mail@agatcomp.ru


Живое общение по теме Агата: Telegram группа Agatcomp.


Накопленные знания и проекты: тематический ФОРУМ.


© 2004-2024 agatcomp.su / agatcomp.ru

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *