Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Лекции по Паскалю2 / Иллюстрации к Лекции 7 по информатике.doc
Скачиваний:
34
Добавлен:
02.05.2014
Размер:
153.6 Кб
Скачать
        1. Управление клавиатурой

KeyPressed; - возвращает значение True (тип Boolean) - если была нажата любая клавиша (кроме Ctrl, Alt, NumLock и т. п. ), иначе - False.

ReadKey; - возвращает символ нажатой клавиши (тип Char).

Repeat Writeln('Нажмите скорее любую клавишу') until KeyPressed;

Repeat Writeln('Нажмите клавишу "А"'); c:=ReadKey until c='А';

Для очистки буфера клавиатуры применяются операторы:

While KeyPressed Do c:=ReadKey;

Фрагмент 3.

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

PROGRAM FAM;

Uses CRT;

var N : word; f, dx, x, y, i, j, xm, ym : byte;

BEGIN

for i:=0 to 9 do begin {режимы работы монитора }

if i<4 then N:=i else N:=256+i-4; if i=9 then N:=7;

textMode(N);

xm:=lo(WindMax)+1; ym:=hi(WindMax)+1;

write('xm=',xm, '_ym=',ym, '_N=',N, '_Нажмите Enter');readln;

TextBackGround(1);clrscr;TextColor(14);x:=1;

f:=8; dx:=3; { f - длина фамилии + курсор, dx - приращение отступа}

for j:=1 to ym-1 do begin y:=j;

if (xm-x-f)<0 then x:=1; { контроль выхода надписи за экран }

gotoXY(x, y); write('ФАМИЛИЯ'); x:= x + dx; end;

Writeln; write('Нажмите Enter'); readln end;

TextMode(3)

END.

Фрагмент 4. Пример операторов для создания окон.

При регулярном размещении нескольких рядов одинаковых окон на экране можно использовать двойной цикл для раздельного изменения номера строки и столбца:

textmode(258);xm:=lo(windmax);ym:=hi(windmax);{размеры экрана}

Nx:= 4; Ny:= 4; { Nx, Ny - число окон }

hx:= xm div Nx; hy:= ym div Ny; {hx, hy - размер окна по X и по Y}

for i:= 0 to Nx-1 do { чередование столбцов }

for j:= 0 to Ny-1 do begin { наращивание строк }

x1:= 1+hx*i; x2:=x1+hx-1;

y1:= 1+hy*j; y2:=y1+hy-1;

window(x1, y1, x2, y2); TextBackGroung(i+j); ClrScr;

end;

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

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.

DelLine; InsLine;

Delay(M);

Фрагмент 5. Пример операторов, прокручивающих текст в окне.

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 ;

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

C:= chr(N); write(C);

где N - номер кода символа (тип Byte),

chr - функция преобразования целого типа в символьный.

        1. Работа со строковыми переменными

s1:='Hello!'

s2:='Привет!'

s3:=s1+'_'+s2; присвоится значение: "Hello! Привет!".

s1[1]:='H' , s1[2]:='e'; и т. д. (см. 5.1)

L:=Ord(s1[0]);

L:=Length(s1);

Copy(S,L1,L2);.

где L1 - номер индекса первого копируемого символа,

L2 - число копируемых символов.

Sc:=Copy(s1,1,5); примет значение "Hello".

Delete(S,L1,L2);

где L1 -номер индекса первого удаляемого символа,

L2 - число удаляемых символов.

Delete(s1,6,1); переменная "s1" примет значение "Hello".

Insert(Si, S, L1); здесь переменные L1, L2 - типа Integer.