Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Турбо Паскаль.doc
Скачиваний:
789
Добавлен:
10.04.2015
Размер:
1.84 Mб
Скачать

1. 14. 3. Работа с символьными переменными

Следующие операторы позволяют выводить на экран символы, набираемые на клавиатуре, до нажатия клавиши Enter (код #13):

Repeat c:= readKey; Write(c) until c=#13;

здесь "с" -переменная типа Char,#13 - код клавиши Enter.

Часто используются клавиши с кодами: #32 - SpaceBar, #27 - Esc.

Для запоминания вводимых символов можно использовать операторы:

i:=0; repeat i:=i+1; ch[i]:=readKey; write(ch[i]) until ch[i]=#13;

Здесь ch[i] -элемент массива ch типа Char.

Практическое задание N 1. 38

1. Разделить экран на четыре равные части. 1 2

Создать в первой части окно и ввести с клавиатуры надпись:

Программу разработал "Фамилия". 3 4

Создать окно 4 и скопировать эту надпись в окно 4.

2. Аналогично п. 1 создать окно 2, ввести с клавиатуры надпись и скопировать ее в окно 3.

Примечание: копирование заключается в выводе массива символов.

3. Создать четыре окна в порядке 1, 2, 3, 4 . В центре первого окна ввести с клавиатуры свою фамилию, в других -любые надписи, введенные с клавиатуры в позициях, определяемых функцией Random (без использования массивов).

4. Аналогично п. 3 создать четыре окна в порядке 4, 3, 2, 1. Выводить мерцающие символы.

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

Процедуры DelLine;, InsLine; позволяют прокручивать надписи в окне по аналогии с прокруткой текста, не вмещающегося на экране. ПроцедураDelay(M);-задерживает выполнение программы на M миллисекунд ( N и M- тип Word).

Приведем пример операторов, прокручивающих текст в окне:

Window(5,5,30,9); TextBackGround(1); Clrscr; TextColor(14);

repeat delay(500); GotoXY(1, 5);

write('Всем большой привет !');

gotoXY(1, 1);

for k:=1 to 5 do begin { прокрутка вверх }

delay(300); delLine end

until keyPressed ;

73

Практическое задание 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, имеющих кода

74

c номерами от 48 до 57. При нажатии на клавишу с “падающей цифрой”, генерируется другая “падающая цифра” и т. д. до нажатия клавиши ESC.

PROGRAM PULL_CH;

Uses CRT, DOS;