Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[23]

TextColor(14); GotoXY(1, M+1); Write(ТУПИК); readln; Halt;

Metka:GotoXY(i, j); Write();delay(10)

until keypressed; END.

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

Задать движение "десантника" только вдоль осей X и Y, либо по диагоналям.

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. Разделить экран на четыре равные части. Создать в первой части окно и ввести с клавиатуры надпись: Программу разработал "Фамилия". Создать окно 4 и скопировать эту надпись в окно 4.

1 2

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(l); Clrscr; TextColor(14); repeat delay(500); GotoXY(1, 5);

write(BceM большой привет !); gotoXY(1, 1);

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

delay(300); delLine end

until keyPressed ;

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

1.В режиме TextMode(l); создать в центре экрана окно размером 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;

c:=readKey;{ ввод символа с клавиатуры }

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;

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);

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 Breakend { досрочный выход из цикла "for. . . " }

until cha=#27;{ выход при нажатии ESC }

textMode(3)END.

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

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

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



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53]