Модуль crt
Приведенные ниже процедуры и функции, расширяющие возможности текстового режима экрана, находятся в станндартном модуле crt.tpu и будут доступны в программе понсле объявления uses crt.
I. Функция без параметров keypressed возвращает true, если на клавиатуре была нажата любая символьная клавиша, и false Ч в противном случае. Не задерживанет выполнение программы.
II. Функция без параметров readkey возвращает символ нажатой клавиши без эха повтора на экране. Приостаннавливает выполнение программы до нажатия на люнбую клавишу.
III. Функции без параметров wherex, wherey возвращают горизонтальную или вертикальную координату текущей позиции курсора относительно текущего окна.
IV. Процедура без параметров cireol удаляет все символы от текущей позиции курсора до конца строки без пенремещения курсора.
V. Процедура без параметров delline удаляет строку, на которой находится курсор, и перемещает все стронки ниже этой строки на строку вверх. Нижняя строка очищается.
VI. Процедура без параметров clrscr очищает экран и понмещает курсор в верхний левый угол.
VII. Процедура delay приостанавливает работу программы на указанное число миллисекунд (t): delay(t);
VIII. Процедура gotoxy перемещает курсор в точку с заданнными координатами х,у текстового экрана или окна, если оно задано: gotoxy(x,y);
IX. Процедура без параметров insline вставляет пустую строку в позицию курсора.
X. Процедуры без параметров highvideo, lowvideo, norm-video устанавливают высокую, низкую, нормальную ярнкость символов.
XI. Процедура sound включает звуковой генератор с часнтотой hz, заданной в герцах: sound(hz);
XII. Процедура без параметров nosound выключает звуконвой генератор. Обязательная последовательность действий для вклюнчения звука: ...sound(...);delay(...); nosound;...
XIII. Процедуры textcolor, textbackground устанавливают цвет символов и цвет фона в текстовом режиме:
textcolor(цвет); textbackground(цвет);
Допустимые значения для цвета приведены в пункте 3.11.5(1).
XIV. Процедура window определяет текстовое окно на экнране:
window(x1,y1,x2,y2); где х1 ,у1 ,х2,у2 Ч координаты левого верхнего угла и правого нижнего угла экрана 0< = х< = 80,0< = у< = 25.
Пример 1
В случайных точках экрана появляется по десять окружнонстей, закрашенных случайным цветом сначала радиуса 30, потом 40 и 50 точек. Затем по очищенному экрану переменщается огненный шар из верхнего левого в нижний правый угол экрана.
program P11а;
uses graph,crt;
var x,y,r,c,dr,mo,i,b: integer;
uk: ^integer;
begin
randomize;
dr:= detect;
initgraph(dr,mo,'c:\tp7\bgi');
r:=30;
while r< = 50 do
begin
cleardevice;
for i:=1 to 10 do
begin
x: = random(getmaxx- 2*r) + r; y:= random(getmaxy- 2*r) + r;
c:=random(getmaxcolor) + 1; setcolor(c); setfillstyle(8,c);
circle(x,y,r); floodfill(x,y,c); delay(SOO);
end;
delay(IOOO); inc(r,10)
end;
cleardevice;
setbkcolor(BLUE); {заглавные буквы Ч для вашего вниманния!}
setcolor(YELLOW); setfillstyle(1,RED);
circle(r,r,r); floodfill(r,r,YELLOW);
b:=imagesize(0,0,2*r,2*r); getmem(uk,b);
getimage(0,0,2*r,2*r, ukA);
cleardevice;
x:=0; y:=0;
while(x< = getmaxx-2*r) and (y< = getmaxy-2*r) do
begin
putimage(x,y,uk^,0); delay(500); putimage(x,y,uk^,1);
inc(x,10); inc(y,10);
end;
closegraph;
end.
Пример 2
Построение графика функции у=1/(х2-х+1) для 1<=х< = 3 (а< = х< = Ь) не более чем в п< = 40 точках текстового экрана. От левого края отступаем на m позиций, ось х направлена сверху вниз (если точек много, то можно выполнять задержку экрана либо выводить график во внешний файл), ось у направлена слева направо; на значения функции от минимума до максимума отводится w позиций (m + w<80 позиций). Переменная k определяет положение оси х относительно отступа m, a L Ч положение *, для значения функции.
program P11Ь;
uses crt;
const m = 10; w = 61 ;
var y: array[1..41] of real;
c: string[71];
i,k,L,n: integer;
a,b,x,h,ymax,ymin,my: real;
begin
clrscr;
readln(a,b,n); ymax:=-maxint; ymin:=maxint; h:=(b-a)/n;
x: = a;
for i:=1 to n do
begin
y[i]:=1/(x*x-x+1);
if y[i]>ymax then ymax:=y[i];
if y[i]<ymin then ymin:=y[i]; x:=x + h;
end;
my:=(ymax-ymin)/(w- 1); {масштаб по оси у}
k:=round(abs(ymin)/my) + m; {положение оси х}
writeln(СГрафик функции':35);
writeln(' .................................................... ЦxТ:71
for i:=1 to m + w do
c[i]:=' '; {строка из 71 пробела}
c[k]:=T;
for i:=1 to n do
begin
if(i-1) mod 20 = 0 then begin
writeln('После анализа нажми клавишу ENTER');
readln
end;
L:=round((y[i]-ymin)/my) + m;
c[L]:='*'; writeln(c);
c[L]:=' '; {пробел убирает * в позиции L}
if k = L then c[k]:=T;
end;
c[k]:='V; writeln(c);
c[k]:='Y'; writeln(c);
end.
Пример 3
Для построения графика в графическом режиме используется весь экран за исключением отступов в 20 точек слева и снизу. Ось х идет слева направо, а ось у Ч снизу вверх.
program P11с;
uses graph, crt;
var y: array[1..101] of real;
i,k,L,n,mx,dr,mo: integer;
a,b,x,h,ymax,ymin,my: real;
xs: string[5];
begin
clrscr;
readln(a,b,n);
ymax:=-maxint; ymin:=maxint; h:=(b-a)/n;
x:=a;
for i:=1 to n do
begin
if y[i]>ymax then ymax:=y[i];
if y[i]<ymin then ymin:=y[i];
x: = x + h;
end;
dr:= detect; initgraph(dr,mo, 'c:\tp7\bgi');
mx:=round((getmaxx-50)/n); {масштаб по оси х}
my:=(ymax-ymin)/(getmaxy-20); {масштаб по оси у}
k:=round(abs(ymin)/my); {положение оси х}
line(20,20,20,getmaxy-20);
outtextxy(18,20,Т^Т); outtextxy(10,10,'Y');
line(20,getmaxy - 20 - k.getmaxx- 20,getmaxy - 20 - k);
outtextxy(getmaxx-20,getmaxy-22-k,'>');
outtextxy(getmaxx - 20,getmaxy - 1 5- k, 'X' );
outtextxy(getmaxx Ц 100,getmaxy- 1 0, 'Y=xA2 - x + 1 '); x:= a;
for i:= 1 to n do
begin
str(x.xs); L:= round((y[i]-ymin)/my);
if (i-1) mod 5 =0 then outtextxy((i-1)*mx+20,getmaxy-15-k,xs);
outtextxy((i-1)*mx+20,getmaxy-20-L,'*'); x:=x + h
end;
repeat until keypressed;
closegraph
end.
Пример 4
На экране организованы два окна: одно для ввода, другое для вывода данных. program P11d; uses crt;
var a,b,c: integer;
begin
textbackground(white); textcolor(black); clrscr;
window(1,20,30,25); textbackground(green); clrscr; read(a,b,c);
window(1,1,30,15); textbackground(blue); clrscr;
writeln(a:5, b:5,c:5);
end.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.