Библиотеки (модули) CRT и Graph в Turbo Pascal.

Библиотека (модуль) CRT в Turbo Pascal.

 

Библиотека CRT позволяет менять цвета и яркость экрана, производить

его очистку, управлять звуковым генератором компьютера.

Подключение модуля CRT производится директивой USES CRT, которая

указывается в разделе описаний. CRT - аббревиатура, означающая

"Электронно-лучевая трубка".

 


Таблица настройки цветов в модуле CRT Turbo Pascal

Константа Число Цвет Процедуры
    Black
    0
    Черный
    TextColor, TextBackGround
    Blue
    1
    Синий
    TextColor, TextBackGround
    Green
    2
    Зеленый
    TextColor, TextBackGround
    Cyan
    3
    Голубой
    TextColor, TextBackGround
    Red
    4
    Красный
    TextColor, TextBackGround
    Magenta
    5
    Фиолетовый
    TextColor, TextBackGround
    Brown
    6
    Коричневый
    TextColor, TextBackGround
    LightGray
    7
    Ярко-серый
    TextColor, TextBackGround
    DarkGray
    8
    Темно-серый
    TextColor
    LightBlue
    9
    Ярко-синий
    TextColor
    LightGreen
    10
    Ярко-зеленый
    TextColor
    LightCyan
    11
    Ярко-голубой
    TextColor
    LightRed
    12
    Ярко-красный
    TextColor
    LightMagenta
    13
    Ярко-фиолетовый
    TextColor
    Yellow
    14
    Желтый
    TextColor
    White
    15
    Белый
    TextColor
    Blink
    128
    Мерцание
    TextColor (как слогаемое)

 

Основные директивы модуля CRT

Uses CRT - подключение модуля CRT.

TextColor - устанавливает цвет символов.

TextBackGround - устанавливает цвет фона (только 8 неярких цветов).

HighVideo - устанавливает включение яркости.

LowVideo - устанавливает выбор низкой яркости.

NormVideo - восстановление того цветового оформления, которое было

на момент начала работы программы.

ClrScr - производит очистку экрана.

ReadKey - обеспечивает задержку изображения и выход из программы при

нажатии любой клавиши, например Esc, Enter, Пробел.

Sound(1000) - включение звукового сигнала частотой 1000 Гц.

Sound(1500) - включение звукового сигнала частотой 1500 Гц.

Delay(1000) - установка (задержка) звучания на время 1 с (1000 мс).

Delay(2000) - установка (задержка) звучания на время 2 с.

NoSound - отключение звукового сигнала.

Пример подключения модуля CRT:

USES CRT;

BEGIN

TextColor(14); {Задаёт желтые символы текста}

TextBackGround(5); {Задаёт фиолетовый фон}

HighVideo; {Устанавливает включение яркости}

ClrScr; {Очищает экран}

 

Пример: TextColor(14+128); {Задаёт мерцание символов желтого цвета}

 

Пример программы, использующей модуль CRT:

 

Program Gas;

uses CRT;

var N:integer;

begin

TextColor(14);

TextBackGround(1);

highvideo;

clrscr;

writeln('Законы состояния идеального газа.');

writeln;

writeln('Рассмотрим случаи (здесь число N - номер случая), когда:');

writeln('1) T=const, N=1.');

writeln('2) V=const, N=2.');

writeln('3) P=const, N=3.');

writeln('4) P,V,T=varia, N=4.');

writeln('5) Быстрое сжатие или расширение');

writeln('в теплоизолированном сосуде Q=0, N=5.');

write('Введите число N=');

read(N);

writeln;

if N=1 then

writeln('Изотерм. процесс, T=const, PV=const-закон Бойля-Мариотта.');

if N=2 then

writeln('Изохорный процесс, V=const, P/T=const-закон Шарля.');

if N=3 then

writeln('Изобарный процесс, P=const, V/T=const-закон Гей-Люсака.');

if N=4 then

writeln('P,V,T=varia, PV=(M/Mo)RT-уравнение Менделеева-Клайперона.');

if N=5 then

writeln('Адиабатный процесс, Q=0, (PV)Г-уравнение Пуассона.');

if N>5 then writeln('Другие случаи здесь не рассматриваются.')

else

writeln;

writeln('Выход - любая клавиша.');

readkey;

TextColor(7);

TextBackGround(0);

clrscr;

end.

 

Библиотека (модуль) Graph в Turbo Pascal 7.0.

Модуль Graph представляет собой библиотеку подпрограмм Turbo

Pascal, обеспечивающих полное управление графическими режимами

различных мониторов - CGA, EGA, VGA, SVGA. Библиотека содержит

более 50 графических процедур и функций, как базовых (рисование

точек, линий, окружностей и т.п.), так и расширяющих возможностей

базовых (многоугольники, закрашивание фигур, вывод текста и др.).

Для запуска программ, использующих модуль Graph, должен быть

доступен драйвер egavga.bgi. Для компиляции программ должен быть

доступен модуль GRAPH.TPU.

 

Основные директивы модуля GRAPH

Uses GRAPH - подключение модуля GRAPH.

InitGraph(gd,gm,'c:\tp7\') - инициирование графического режима,

указываем gd-графический драйвер, gm-графическую мода и полный

путь файла поддержки графики egavga.bgi: c:\tp7\.

ClearDevice - очистка экрана в графическом режиме.

SetColor(14) - установка цвета рисуемых линий.

SetBkColor(1) - установка цвета фона.

SetLineStyle(0,0,3) - установка толщины линий.

SetFillStyle(5,11) - установка стиля и цвета закраски. Число сти-

лей закраски = 0-11.

PutPixel(300,250,15) - рисование точки (X, Y, C), где X, Y -коор-

динаты точки, C - цвет точки. С=0-15.

Line(25,100,100,200) - рисование отрезка прямой линии

(X1,Y1,X2,Y2), где X1,Y1-координаты начала отрезка; X2,Y2-коор-

динаты конца отрезка прямой линии.

Rectangle(25,100,100,200) - рисование прямоугольной рамки

(X1,Y1,X2,Y2), где X1,Y1 и X2,Y2 - координаты соответственно

начала и конца диагонали левого верхнего угла.

Bar(20,70,210,50) - рисование закрашеннго прямоугольника

(X1,Y1,X2,Y2), где X1,Y1 и X2,Y2 - координаты соответственно

начала и конца диагонали левого верхнего угла.

Circle(300,250,80) - рисование окружности (X, Y, R), где X, Y -

координаты центра окружности, R - радиус окружности.

Arc(300,250,135,45,60) - рисование дуги окружности (X,Y,Ф1,Ф2,R),

где Ф1,Ф2 - начальный и конечный углы дуги. X,Y,R - см. выше.

PieSlice(100,100,30,120,70) - рисование сектора окружности

(X,Y,Ф1,Ф2,R).

Ellipse(300,250,0,360,95,40)-рисование эллипса (X,Y,Ф1,Ф2,R1,R2).

Ф1,Ф2 - начальный и конечный углы. R1, R2 - радиусы эллипса.

Sector(400,100,90,290,200,80)- рисование сектора эллипса

(X,Y,Ф1,Ф2,R1,R2).

FillEllipse(X,Y,R1,R2) - рисование закрашенного эллипса

(или окружности при R1=R2).

OutTextXY(25,30,'Текст.') - вывод текста (X, Y, 'Текст').

CloseGraph - закрытие графического режима.

 

Ниже приведены примеры программ, использующих модуль Graph и

Graph0 (модуль Graph0 - графика для начинающих, упрощенный модуль

Graph). Из комментариев к ним можно узнать о конкретном использо-

вании основных директив модуля Graph при создании простейших гра-

фических изображений.

 

Пример 1.

 

Program Ris1;

uses Crt,Graph;

var gd,gm:integer; {gd-графический драйвер, gm-графическая мода}

begin

gd:=detect; {Автоматически определяем графический драйвер}

InitGraph(gd,gm,'c:\tp7\'); {Инициируем графический режим, указы-

ваем полный путь файла egavga.bgi}

SetLineStyle(0,0,3); {Задаем толщину линии}

SetColor(LightMagenta); {Задаем цвет линии}

SetFillStyle(1,LightGreen); {Задаем стиль и цвет закраски}

PieSlice(100,100,30,120,70); {Рисуем сектор окружности, X,Y,Ф1,Ф2,R}

SetColor(White); {Задаем цвет линии}

SetFillStyle(5,11); {Задаем стиль и цвет закраски}

Sector(400,100,90,290,200,80); {Рисуем сектор эллипса, X,Y,Ф1,Ф2,R1,R2}

Readkey; {Обеспечиваем задержку изображения и выход из программы при

нажатии любой клавиши, например Esc, Enter, Пробела}

CloseGraph {Закрываем графический режим}

end.

 

Пример 2.

 

Program Grafika;

uses Crt,Graph,Graph0; {Подключаем модули CRT, GRAPH, GRAPH0}

begin

Init('c:\tp7\'); {Указываем полный путь файла egavga.bgi}

SetColor(14); {Задаем цвет рисуемых линий}

SetLineStyle(1,0,ThickWidth); {Задаем тройную толщину линии}

SetBkColor(1); {Задаем цвет фона}

Circle(300,250,120); {Рисуем окружность, X, Y, R}

SetColor(11);

Circle(300,250,100);

SetColor(13);

Circle(300,250,80);

SetColor(10);

Arc(300,250,135,45,60); {Рисуем дугу, X, Y, Ф1, Ф2, R}

SetColor(12);

Ellipse(300,250,0,360,95,40); {Рисуем эллипс, X, Y, Ф1, Ф2, R1, R2}

PutPixel(300,250,15); {Рисуем точку, X, Y, C}

SetColor(15);

OutTextXY(25,30,'Графика в Turbo Pascal.'); {Вывод текста, X, Y, 'Текст'}

SetColor(11);

OutTextXY(160,450,'Для выхода из программы нажмите Esc.');

SetFillStyle(1,14); {Задаем вид закраски (0-11) и цвет закраски С}

Bar(20,70,210,50); {Рисуем закрашенный прямоугольник, X1,Y1,X2,Y2}

SetColor(11);

Rectangle(25,100,100,200); {Рисуем прямоугольную рамку, X1,Y1,X2,Y2}

SetColor(14);

Line(25,100,100,200); {Рисуем прямую линию, X1,Y1,X2,Y2}

Readkey;

CloseGraph;

end.

 

Здесь X, Y, X1, Y1, X2, Y2 - координаты основных точек на экране;

Ф1, Ф2 - углы дуг, круговых и эллиптических секторов;

R, R1, R2 - радиусы окружностей, эллипсов, дуг и секторов.

С - цвет линий (0-15).

 

Пример 3. Флаг России.

 

program Flag_RUS;

uses CRT,Graph,Graph0;

begin

Init('c:\tp7\');

SetFillStyle(1,15);

Bar(0,0,320,50);

SetFillStyle(1,1);

Bar(0,51,320,101);

SetFillStyle(1,4);

Bar(0,102,320,152);

ReadKey;

CloseGraph;

end.

 

Примеры программ построения графиков функций:

 

1. Построение графика параболы в декартовых координатах (путь

S(t)=gt2/2 при свободном падении тела). Построение производится

по точкам.

 

Program Put3;

uses Crt,Graph,Graph0;

var t1,S,H,n:integer;Y,g,dt,t:real;

begin

Init('c:\tp7\');

SetColor(14);

OutTextXY(25,30,'Путь S(t)=gt2/2 при свободном падении.');

OutTextXY(25,50,'Выход - любая клавиша.');

SetColor(10);

Line(0,470,550,470);

Line(0,0,0,470);

g:=9.81;

t:=0;

n:=100;

repeat

Y:=g*t*t/2;

dt:=1/(n+1);

t:=t+dt;

t1:=round(6*t);

S:=round(Y);

H:=round(470-S/70);

PutPixel(t1,H,11);

until t>80;

Readkey;

CloseGraph;

end.

 

2. Построение графика функции (улитки Паскаля) в полярных коорди-

натах. Если в прямоугольных (декартовых) кординатах задают точку

A на плоскости по её координатам x, y, то в полярных координатах

точку задают по её радиус-вектору R и углу fi между вектором R и

осью X (смотрите чертёж на рисунке). Функция в декартовых коорди-

натах имеет вид y=f(x), в полярных координатах R=F(fi). Связь

между декартовыми и полярными координатами: x=R*cos(fi),

y=R*sin(fi), R=SQRT(x*x+y*y).


Полярные координаты

 

Program Ulitka;

uses crt, graph, graph0;

const xc=320; yc=175; k=0.775;

var fi,dfi,R,a:real; x1,y1,x2,y2,n:integer;

Function F(fi:real):real;

begin F:=a/2+a*cos(fi);

end;

begin

clrscr;

writeln('Улитка Паскаля: R=1+a*cos(fi).');

write('Введите коэффициент a=0.5-2; a=');

read(a);

a:=100*a;

write('Введите число точек n>=100; n=');

read(n);

init('C:\TP7\');

cleardevice;

outtextxy(10,10,'Улитка Паскаля: R=1+a*cos(fi).');

setcolor(10);

line(xc,0,xc,349);

line(0,yc,639,yc);

dfi:=2*pi/n;

x1:=xc; y1:=yc; fi:=0;

while fi<2*pi+dfi do

begin

R:=F(fi);

x2:=xc+round(R*cos(fi));

y2:=yc+round(k*R*sin(fi));

setcolor(11);

line(x1,y1,x2,y2);

x1:=x2; y1:=y2; fi:=fi+dfi;

end;

outtextxy(10,30,'Выход - любая клавиша.');

readkey;

closegraph;

end.

 

Здесь построение графика функции производится с помощью отрезков

прямых линий, которые при большом их числе превращаются в кривую

линию. В программе для построения графика функции используется

процедура Function, что позволяет строить графики других функций,

не меняя программы (универсальный алгоритм), а заменив только вид

самой функции R=F(fi). Например, если подставить R=a*(1-cos(fi)),

то мы получим кардиоиду. Аналогично можно построить график спира-

ли Архимеда R=a*fi и т.д.

Другие записи

10.06.2016. Работа с файлами в Turbo Pascal. Численные методы и связанные с ними задачи.
Работа с файлами в Turbo Pascal При работе с файлами в TP используются следующие процедуры: assign(var F; name: string); - устанавливает соответствие между файлом и файловой переменной, окрывает…
10.06.2016. Основы программирования на QBasic
Среда программирования QBasic. Бейсик (Basic) - диалоговый учебный язык программирования для персональных компьютеров. На современных компьютерах используется следующие версии Basic: GWBasic, QBasic…
10.06.2016. МАССИВЫ
С понятием "массив" приходится сталкиваться при решении науч- но-технических и экономических задач обработки совокупностей большого количества значений. Массив - это множество однотипных элементов,…
10.06.2016. Основы программирования в среде Visual Basic 3.0.
Среда программирования Visual Basic (VB) используется для созда- ния программ, работающих в Windows. Версии VB 1.0-3.0 работают в Windows 3.1, VB 4.0-6.0 в Windows 95. В основе VB лежат идеи объектно-ориентированного…
10.06.2016. Графические редакторы
Технологии получения графических изображений Графические редакторы - это инструменты компьютера для получения графических изображений: рисунков, картинок, чертежей, диаграмм, графиков и т.д.,…