Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль / sidorov / Сидоров.DOC
Скачиваний:
30
Добавлен:
10.12.2013
Размер:
1.68 Mб
Скачать

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 }

textMode(3) END.

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

1. Создать "падающие символы" для прописных букв латинского алфавита с номерами кодов от 65 до 90.

2. Создать "падающие символы" для строчных букв латинского алфавита с номерами кодов от 97 до 122.

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

Рассмотрим последовательность операторов, позволяющих создать на экране "бегущую строку" символов. Введем с клавиатуры надпись с выводом на экран и запомним строку символов в массиве cha.

i:=0; repeat i:=i+1; read(cha[i]) until cha[i]=#13; n:=i-1;

Ввод надписи заканчивается нажатием клавиши SpaceBar (последним символом надписи должен быть пробел), затем Enter. Число символов в надписи запоминается в переменной "n", символ с кодом #13 не включается.

Принцип создания "бегущей строки" символов заключается в выводе групп симво

75

лов строки с позиции от 1 до "n" (первый символ, два первых символа строки и т. д. ) и смещением влево позиции вывода первого символа группы. Затем выводятся группы символов от "n-1" до 1 (строка без первого символа, строка без второго символа и т. д.) без изменения места вывода первого символа группы. После вывода каждой группы символов следует задержка программы, позволяющая "увидеть" группу символов. При выводе каждая новая группа символов затирает предыдущую, причем последний символ (SpaceBar) затирает символы при уменьшении группы выводимых символов. Приведем пример операторов для создания "бегущей строки" символов.

Здесь n1 - номер первого выводимого символа, n2 - номер последнего выводимого символа.

repeat

for i:=1 to 2*n-1 do begin

if i<=n then begin n1:=1; n2:=i; gotoXY(n-i+1,5) end

else begin n1:=i-n+1; n2:=n; gotoXY(1,5) end;

for j:=n1 to n2 do write(cha[j]); { вывод группы символов }

delay(200); end

until keyPressed ;

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

1. Создать "бегущую строку". Строку выводить в окне, размером n+1 (n - число символов).

2. Создать "бегущую строку". Выводить одновременно две надписи одинаковой длины в разных строках одного окна.

Примечание: цвет окна и символов изменять после каждого вывода строки. Режим монитора TextMode(1);