microbik.ru
  1 ... 5 6 7 8 9

Введем обозначения:

  • текущие координаты курсора

STR - номер строки, STB - номер столбика;

  • граничные координаты курсора

STRN - минимальный номер строки,

STRK - максимальный номер строки,

STBN - минимальный номер столбика,

STBK - максимальный номер столбика.


Текст фрагмента программы

Комментарий

STR = 10: STB = 35

STRN = 5: STRK = 25

STBN = 20: STBK = 60
DO


LOCATE STR, STB: PRINT "▓"


DO: A$ = INKEY$: LOOP WHILE A$ = ""
LOCATE STR, STB: PRINT " "

IF A$ = CHR$(0) + CHR$(80) THEN STR = STR + 1

IF A$ = CHR$(0) + CHR$(72) THEN STR = STR - 1

IF A$ = CHR$(0) + CHR$(77) THEN STB = STB + 1

IF A$ = CHR$(0) + CHR$(75) THEN STB = STB - 1
IF STR > STRK THEN STR = STRN

IF STR < STRN THEN STR = STRK
IF STB > STBK THEN STB = STBN
IF STB < STBN THEN STB = STBK

LOOP WHILE A$ <> CHR$(13)



Ввод исходных данных.


Открыть цикл по перемещению курсора.
Вывести на экран символ курсора в позиции STR, STB.
Ожидать нажатие клавиши.
Стереть символ курсора в позиции STR, STB (символом ПРОБЕЛ).
Если нажата клавиша , то увеличить текущий номер строки на 1.
Если нажата клавиша , то уменьшить текущий номер строки на 1.
Если нажата клавиша , то увеличить текущий номер столбика на 1.
Если нажата клавиша , то уменьшить текущий номер столбика на 1.
Если текущий номер строки превышает максимальный номер строки, то текущему номеру строки присвоить минимальный номер.
Если текущий номер строки становится меньше минимального номера, то текущему номеру строки присвоить максимальный номер.
Если текущий номер столбика

превышает максимальный номер, то текущему номеру столбика присвоить минимальный номер.
Если текущий номер столбика становится меньше минимального номера, то текущему номеру столбика присвоить максимальный номер.
При нажатии клавиши ВВОД (ENTER) закончить цикл.


Организация меню
Предположим, что меню состоит из пяти пунктов (см. рисунок). Каждый пункт меню размещается в отдельной строке таблицы. Слева указаны номера строк для каждого пункта меню (10, 12, 14, 16, 18). В верхней части меню указаны номера столбиков (30, 60), ограничивающих пункты меню слева и справа. Перемещение по пунктам меню осуществляется с помощью клавиш , . В процессе перемещения изменяется цвет соответствующего пункта меню. Для выбора пункта меню используется клавиша ВВОД (ENTER). Выбор пункта меню сопровождается переходом к подпрограмме обработки этого пункта меню.
30 60










10

Полное условие




12

Математическое решение




14

Демонстрация




16

Краткое условие




18

Выход






Введем обозначения:

STR - текущий номер строки, STB - текущий номер столбика.

Считаем, что меню создано и выведено на экран. Рассмотрим фрагмент программы, обеспечивающий перемещение по меню и выбор пункта меню.


Текст фрагмента программы

Комментарий

STR = 10: STB = 30: STRN = 10: STRK = 18
DO
DO: A$ = INKEY$: LOOP WHILE A$ = ""
IF A$ = CHR$(0) + CHR$(80) THEN STR = STR + 2


IF A$ = CHR$(0) + CHR$(72) THEN STR = STR - 2

IF STR > STRK THEN STR = STRN


IF STR < STRN THEN STR = STRK

IF STR = 10 THEN

LOCATE STR,STB

COLOR 2

PRINT "ПОЛНОЕ УСЛОВИЕ"

ELSE

LOCATE 10,STB

COLOR 15

PRINT "ПОЛНОЕ УСЛОВИЕ"

END IF
IF STR = 12 THEN

LOCATE STR,STB

COLOR 2

PRINT "КРАТКОЕ УСЛОВИЕ"

ELSE

LOCATE 12,STB

COLOR 15

PRINT "КРАТКОЕ УСЛОВИЕ"

END IF
IF STR = 14 THEN …
IF STR = 16 THEN …
IF STR = 18 THEN …
LOOP WHILE A$ <> CHR$(13)


IF STR = 10 AND A$ = CHR$(13) THEN

CALL FULL

END IF

IF STR = 12 AND A$ = CHR$(13) THEN

CALL SHORT

END IF

…….
…….

Ввод исходных данных.
Открыть цикл.
Ожидать нажатие клавиши.
Если нажата клавиша , то увеличить текущий номер строки на 2.
Если нажата клавиша , то уменьшить текущий номер строки на 2.
Если текущий номер строки превышает максимальный номер строки, то текущему номеру строки присвоить минимальный номер.
Если текущий номер строки становится меньше минимального номера, то текущему номеру строки присвоить максимальный номер.
Если номер строки равен 10, тогда установить цвет символов 2 и вывести в этой строке название пункта меню "ПОЛНОЕ УСЛОВИЕ", иначе установить цвет символов 15 и вывести в этой строке название пункта меню "ПОЛНОЕ УСЛОВИЕ"


Если номер строки равен 12, тогда установить цвет символов 2 и вывести в этой строке название пункта меню "КРАТКОЕ УСЛОВИЕ", иначе установить цвет символов 15 и вывести в этой строке название пункта меню "КРАТКОЕ УСЛОВИЕ"


Аналогично для других пунктов меню.
При нажатии клавиши ВВОД (ENTER) закончить цикл.

Если выбрана строка с номером 10 и нажата клавиша ВВОД (ENTER), тогда перейти к подпрограмме обработки полного условия - FULL.
Если выбрана строка с номером 12 и нажата клавиша ВВОД (ENTER), тогда перейти к подпрограмме обработки краткого условия - SHORT.
Аналогично для других пунктов меню.



<< предыдущая страница   следующая страница >>