Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Locate 1,55




END IF

SLEEP

DO

LINE (0, 0)-(300, 200),, B

SCREEN 12

NEXT

SCREEN 12

CIRCLE (320,240),205 'рисование окружности

'число секунд от 0 часов до пуска программы

s=VAL(MID$(TIME$,1,2))*360 +

VAL(MID$(TIME$,4,2))*60+VAL(MID$(TIME$,7,2))

ds=0 ‘число секунд

LOCATE 3, 2: PRINT "Секунд: "

FOR i = s TO s+180 'цикл на три минуты (i – секунды)

LOCATE 2, 2: PRINT TIME$ 'вывод текущего времени

LOCATE 4, 2: PRINT USING "###"; ds 'вывод числа секунд

t$ = TIME$ 'запоминание времени

g=(i*6-90) MOD 360 'преобразование числа секунд в угол поворота

'рисование стрелки

DRAW "c7ta-"+STR$(g)+"r200 nh30 ng30 bm320,240"

WHILE t$ = TIME$: WEND 'пауза до изменения времени

ds=VAL(MID$(TIME$, 1,2))*360+VAL(MID$(TIME$,4,2))*60

+VAL(MID$(TIME$, 7, 2)) - s

'стирание старой стрелки

DRAW "c0ta-"+STR$(g)+"r200 nh30 ng30 bm320,240"

Пример. Составить программу вычерчивания линии при нажатии соответствующих навигационных клавиш (клавиш со стрелками и диагональных клавиш – Home, End, PgUp, PgDn). Кроме того, в правой части экрана следует отобразить текущие координаты точки. Для выхода из программы использовать клавишу Enter. Результат работы программы может быть например таким, как показано на рис.2.10.12.

Программа приведена ниже. Сначала здесь изображается прямоугольник, в котором разрешено двигаться точке, и курсор устанавливается в исходное положение. Затем организуется цикл вывода. Внутри него командой SLEEP создается состояние ожидания для фиксации нажатия клавиш. Если нажатие произошло, проверяется длина кода. Если она равна двум (LEN(a$)=2), значит была использована управляющая клавиша. Далее выясняется ее код. Если это клавиша Enter (код 13), осуществляется выход из цикла и работа программы прекращается. Если это клавиша со стрелкой, например стрелкой вниз (код 80), соответствующая координата (Y) увеличивается на 1 пиксель и формируется новое значение команды перемещения (переменная z$). Однако, прежде чем выполнить графическую операцию, проверяется положение но­вых координат относительно установленных пределов вывода (здесь для Y это 0-200, для Х – 0-300). Если новая точка находится внутри прямоуголь­ника, выполняется команда рисования (DRAW z$), иначе возвращаются старые координаты. В конце цикла в позиции 1,55 выводятся текущие координаты точки.

x=10: y=100: PSET(x y) 'переход в начальную точку рисования

a$=INKEY$ 'запоминание кода нажатой клавиши

IF LEN(a$) = 2 THEN 'если нажата управляющая клавиша

IF ASC(a$) = 13 THEN EXIT DO 'если нажата Enter – выход

'проверка нажатия навигационных клавиш

k = ASC(RIGHT$(a$, 1)) 'выявление кода второго символа

y1 = y: x1 = x 'запоминание старых координат

'в зависимости от кода клавиши формируются новые координаты

IF k=80 THEN y=y+1: z$="d" 'движение вниз

IF k=72 THEN y=y-1: z$="u" 'движение вверх

IF k=75 THEN x=x-1: z$="l" 'движение влево

IF k=77 THEN x=x+1: z$="r" 'движение вправо

IF k=73 THEN x=x+1: y=y-1: z$="e" 'движение вверх вправо

IF k=81 THEN x=x+1: y=y+1: z$="f" 'движение вниз вправо

IF k=71 THEN x=x-1: y=y-1: z$="h" 'движение вверх влево

IF k=79 THEN x=x-1: y=y+1: z$="g" 'движение вниз влево

'проверка выхода за установленные пределы

IF y>0 AND y<200 AND x>0 AND x<300 THEN

DRAW z$ 'точка внутри области - вывод прямой

ELSE 'иначе

y=y1: x=x1: 'возврат к старым координатам и сигнал

PRINT "X=";x;"Y=";y 'вывод текущих координат




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 392; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.