|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Delay(300); delLine end
until keyPressed; Практическое задание N 1. 39
1. В режиме ТextMode(1); создать в центре экрана окно размером 6 строк и 30 колонок. Вывести в нижней строке окна надпись и сделать прокрутку надписи вверх, меняя яркость символов (нормальная, повышенная, пониженная) и цвет фона (без оператора ClrScr;) после каждой прокрутки.
2. Аналогично п. 1 вывести в верхней строке окна надпись, сделать прокрутку надписи вниз.
Для вывода на экран символа по номеру его кода можно использовать операторы: C:= chr(N); write(C); где N - номер кода символа (тип Byte), chr - функция преобразования целого типа в символьный. Напомним, что символы, используемые в MS-DOS, имеют коды с номерами от 0 до 255. Некоторые управляющие символы при выводе производят определенные действия, например: #7 - звуковой сигнал, #13 - перевод курсора на новую строку.
В рекламных надписях применяется прием "бегающих" символов. Заставить бегать символ по строке можно с помощью следующих операторов:
y:=5; Xm:=lo(WindMax)+1; с:=readKey; { ввод символа с клавиатуры } Repeat for i:=1 to Xm-1 do begin { i - номер позиции в строке } gotoXY(i, y); write(c); { вывести на экран символ } delay(100); gotoXY(i,y); write('_') end { вывести на экран пробел } until keyPressed;
Практическое задание N 1. 40
1. Разделить экран по горизонтали на две части. В первой части создать окно и вывести все символы от 0 до 255 с указанием номеров, во втором окне в двух строчках вывести два символа, бегающих в противоположные стороны.
2. Разделить экран по вертикали на две части. В первой части создать окно и вывести все символы от 0 до 255 с указанием номеров, во втором окне в двух колонках вывести два символа, бегающих в противоположных направлениях.
Примечание: номера символов выбрать из первого окна.
При выводе "бегающих" символов изображение курсора портит картинку. Избавиться от курсора можно, поместив его в "дальний угол" перед задержкой программы, например: GotoXY(1, 1); delay(100); Можно также изменить размер курсора до нуля с помощью следующих операторов:
В разделе описания программы: Uses DOS; Var r: registers; B разделе выполнения программы: r.ah:=1; r.ch:=$20; intr(16,r); Приведем пример программы "падающие символы" для цифр от 0 до 9, имеющих кода
c номерами от 48 до 57. При нажатии на клавишу с “падающей цифрой”, генерируется другая “падающая цифра” и т. д. до нажатия клавиши ESC.
PROGRAM PULL_CH; Uses CRT, DOS; var r: registers; x, y, i, xm, ym: byte; c: array [41..57] of char; cha:char; BEGIN randomize; textMode(3); xm:=lo(WindMax)+1; ym:=hi(WindMax)+1; textBackGround(blue); ClrScr; TextColor(14); r.ah:=1; r.ch:=$20; intr(16,r); for i:=48 to 57 do begin c[i]:=chr(i); write(c[i]) end; { вывод символов с позиции (1, 1) }
repeat gotoXY(10, 10); Write('ПРИГОТОВЬТЕСЬ -нажмите ENTER'); cha:= readKey until cha=#13; { вывод надписи } delay(500); gotoxy(10, 10); clreol; { стирание надписи } GOTOXY(1, YM); Write('НАЖМИТЕ КЛАВИШУ С ПАДАЮЩИМ СИМВОЛОМ'); Write(' ДЛЯ ОКОНЧАНИЯ -нажмите ESC'); Repeat i:= random(10)+48; c[i]:=chr(i); { выбор случайной цифры } x:= i-48+1; for y:= 2 to ym-1 do begin gotoXY(x,y); write(c[i]); delay(200); { вывод цифры } gotoXY(x,y); write('_'); { стирание цифры } if keypressed then cha:=readkey; { при нажатии клавиши - считать цифру } if cha=#27 then Break; if cha=c[i] then Break end { досрочный выход из цикла "for... " } until cha=#27; { выход при нажатии ESC } Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |