Передовица » Макулатура » ИиО » Использование экранных страниц для активной работы с большими объёмами информации

Использование экранных страниц для активной работы с большими объёмами информации (N1/1993)

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

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

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

1. Распечатайте таблицу значений функции с большим количеством строк и организуйте просмотр этой таблицы по желанию пользователя.

Решение. Будем печатать значения функции через строку для лучшего восприятия информации. Как только очередная страница заполнится числовой информацией, производится переход на следующую страницу, которая предварительно очищается. После того как таблица напечатана, начинает действовать та часть программы, которая представляет собой блок управления отображением страниц на экран. Нажатие на клавишу "стрелка вниз" вызывает переход к следующей странице, на клавишу "стрелка вверх" - к предыдущей, ‹BK› - окончание программы. Страницы замкнуты в кольцо, т.е. за последней страницей следует первая, а первой предшествует последняя.

10 REM ПЕЧАТЬ ТАБЛИЦЫ
20 K=1: NS=12: TEXT=12: HOME
30 FOR X=0 TO 6.28 STEP 6.28/60
40 HTAB 0: VTAB K
50 RIBBON=1: PRINT X;: HTAB 16
60 RIBBON=6: PRINT SIN(X)
70 K=K+2: IF K>29 AND NS<15 THEN GOSUB 1000
80 NEXT X
90 REM УПРАВЛЕНИЕ СТРАНИЦАМИ
100 GOSUB 2000
110 TEXT=0: HOME
120 END
1000 REM ПЕРЕХОД НА НОВУЮ СТРАНИЦУ
1010 K=1: NS=NS+1
1020 TEXT=NS
1030 HOME
1040 RETURN
2000 REM БЛОК УПРАВЛЕНИЯ
2010 NS=12
2020 TEXT=NS
2030 GET S$: KD=ASC(S$)
2040 IF KD=26 THEN NS=NS+1: IF NS>15 THEN NS=12
2050 IF KD=25 THEN NS=NS-1: IF NS>12 THEN NS=15
2060 IF KD=13 THEN RETURN
2070 GOTO 2020

2. Организуйте меню с большим числом предлагаемых вариантов. Перемещение указателя по меню осуществляйте клавишами-стрелками, а выбор варианта - нажатием на ‹BK›.

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

3. Расположите связный текст на нескольких текстовых страницах, перемежая его иллюстрациями, расположенными на графических страницах.

Решение. Для переключения графических страниц следует использовать оператор POKE, что позволяет избежать очистки этих страниц.

10 REM ИНФОРМАЦИЯ О ПОРЯДКЕ СЛЕДОВАНИЯ СТРАНИЦ
20 DATA T,8
30 DATA T,9
40 DATA G,10
50 DATA T,11
60 DATA M,3
70 DIM TP$(4),NM(4)
80 FOR I=0 TO 4
90 READ TP$(I),NM(I)
100 NEXT I
110 REM ЗАПОЛНЕНИЕ СТРАНИЦ
120 FOR I=0 TO 4
130 IF TP$(I)="T" THEN GOSUB 1000
140 IF TP$(I)="G" THEN GOSUB 1500
150 IF TP$(I)="M" THEN GOSUB 2000
160 NEXT I
170 REM БЛОК УПРАВЛЕНИЯ ПЕРЕКЛЮЧЕНИЕМ СТРАНИЦ
180 GOSUB 2500
190 TEXT=0: HOME: END
1000 TEXT=NM(I): HOME
1010 FOR K=1 TO 29 STEP 2
1020 VTAB K: PRINT "ОЧЕНЬ СВЯЗНЫЙ ТЕКСТ НА СТР. ";NM(I)
1030 NEXT K
1040 RETURN
1500 GR=NM(I): COLOR=1
1510 FOR X=0 TO 62 STEP 2
1520 PLOT X,0 TO X,63
1530 NEXT X
1540 RETURN
2000 MGR=NM(I): COLOR=5
2010 FOR X=0 TO 126 STEP 2
2020 PLOT X,0 TO X,127
2030 NEXT X
2040 RETURN
2500 I=0
2510 IF TP$(I)="T" THEN TEXT=NM(I)
2520 IF TP$(I)="G" THEN POKE $C700+NM(I)*4,0
2530 IF TP$(I)="M" THEN POKE $C701+NM(I)*16,0
2540 GET S$: KD=ASC(S$)
2550 IF KD=13 THEN RETURN
2560 IF KD=25 THEN I=I-1: GOTO 2590
2570 IF KD=26 THEN I=I+1: GOTO 2590
2580 GOTO 2540
2590 IF I<0 THEN I=4
2600 IF I>4 THEN I=0
2610 GOTO 2510

* * *

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


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


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


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


© 2004-2024 agatcomp.su / agatcomp.ru

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