Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Вывод текста в графическом режиме





Вывод текста на экран выполняется с помощью двух процедур:

1) Procedure OutText (Txt: string); - выводит строку Txt, начиная с текущей позиции указателя;

2) Procedure OutTextXY (X,Y: integer; Txt: string); - выводит строку, начиная с позиции, задаваемой координатами X,Y.

Примечание. Для вывода численных данных необходимо предварительно перевести численную константу в строковую с помощью процедуры Str, например:

 

Var f,a:real;

Fst: string; {Fst - строковое представление

…………………… числа f}

f:=sin(a)+cos(a);

str(f,Fst);

OutTextXY(250,100,'f= '+Fst);

……………………

 

 

Размещение выводимого текста относительно графического указателя – юстировка – определяется с помощью процедуры

Procedure SetTextJustify (Horiz, Vert: word);

где Horiz – метод выравнивания по горизонтали, задаваемый тремя константами:

LeftText = 0 – выравнивание по левому краю (указатель находится слева от текста);

CenterText = 1 – выравнивание по центру;

RightText = 2 – выравнивание по правому краю (указатель – справа от текста);

Vert – метод выравнивания по вертикали, который также можно задать тремя константами:

BottomText = 0 – выравнивание по нижнему краю (указатель ­– внизу текста);

CenterText = 1 – выравнивание по центру;

TopText = 2 – выравнивание по верхнему краю (указатель ­– сверху текста).

По умолчанию действуют установки Horiz = LeftText и

Vert = TopText.

 

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

Procedure SetTextStyle (Font, Direct, Size: word);

где Font - код (номер) шрифта.

По умолчанию после инициализации устанавливается матричный шрифт 8х8 (единственный шрифт для вывода кириллицы). Этому шрифту соответствует константа DefaultFont = 0.

Direct - код направления (HorizDir = 0 - горизонтальное, VertDir = 1 - вертикальное);

Size - коэффициент увеличения размера букв (до 32).

 

Пример. Составить программу расчета и вывода графика функции a = tg b в области -1,5 ≤ b ≤ 1,5; -15 ≤ a ≤ 15. Цвета фона, выводимых символов, линий и точек задать самостоятельно.

При этом в программе необходимо осуществить масштабирование координат a и b по соотношениям

, ,

где Δa, Δb – цены делений реальных координат;

ΔY, ΔX – число пиксел в одном делении ординаты Y и абсциссы Х;

Ma, Mb – масштабные коэффициенты, определяющие цену одного пиксела.

В результате координаты а и b можно записать в виде , , а функцию представить следующим образом:

,

где Y, X – координаты a и b, выраженные в пикселах.

 

Текст программы

Program Tangens;

Uses Graph,crt,printer;

Var Gd, Gm,X0,Y0,Xmax,Xmin,X1,Y1,Lx,Ly,

x,y,i,Dx,Dy:Integer;

Bmin,Bmax,Amin,Amax,Mx,My,Da,Db,f:real;

Begin

writeln('Введите исходные данные');

write('Минимальное значение аргумента Bmin:'); readln(Bmin);

write('Максимальное значение аргумента Bmax:'); readln(Bmax);

write('Минимальное значение функции Amin:'); readln(Amin);

write('Максимальное значение функции Amax:'); readln(Amax);

{Задание масштаба по координатным осям X и Y}

Da:=5; Db:=Pi/4; {Выбор цены деления реальных координат}

Dx:=50; Dy:=60; {Dx,Dy - число пиксел, содержащихся в одном делении}

Mx:=Db/Dx; My:=Da/Dy; {Mx-масштаб по оси Х, My-по оси Y}

 

{Инициализация графического режима}

Gd:=Detect;

InitGraph(Gd, Gm, 'c:\pascal\turbo\bgi'); { Путь к BGI

драйверам }

If GraphResult <> grOk Then Halt(1);

 

SetBkColor(7); {Установка цвета фона экрана - серый}

SetFillStyle(1,15); {Установка стиля заливки - сплошной белый}

 

X1:=200; Y1:=80; {Задание координат верхнего левого угла

координатной сетки}

Lx:=Dx*4; Ly:=Dy*6; {Задание длины координатной сетки по осям X и Y}

bar(X1,Y1,X1+Lx,Y1+Ly); {Формирование прямоугольника

координатной сетки}

X0:=X1+2*Dx; Y0:=Y1+3*Dy; {задание начала координат}

 

{формирование координатной сетки}

SetLineStyle(3,0,1); {Задание стиля для внутренних линий - пунктир}

SetColor(7); {Задание цвета для внутренних линий}

For i:=0 to 6 do {Формирование горизонтальных линий}

Line(X1,Y1+i*Dy,X1+Lx,Y1+i*Dy);

For i:=0 to 4 do {Формирование вертикальных линий}

Line(X1+i*Dx,Y1,X1+i*Dx,Y1+Ly);

SetLineStyle(0,0,1); {Смена стиля линий на сплошной}

Line(X0,Y1,X0,Y1+Ly); {Формирование линий, проходящих через

Line(X1,Y0,X1+Lx,Y0); начало координат}

 

SetColor(1); {Установка синего цвета выводимых элементов}


RectAngle(X1,Y1,X1+Lx,Y1+Ly); {Формирование внешних границ

коорд. сетки}

 

{Формирование надписей}

{Вдоль оси Y} SetTextJustify(2,1); {Установка выравни-

OutTextXY(X1-5,Y1+Dy, '10'); вания текста}

OutTextXY(X1-5,Y1+2*Dy, '5');

OutTextXY(X1-5,Y1+3*Dy, '0');

OutTextXY(X1-5,Y1+4*Dy, '-5');

OutTextXY(X1-5,Y1+5*Dy, '-10');

OutTextXY(X1-5,Y1, 'a');

{Вдоль оси Х} SetTextJustify(1,2);

OutTextXY(X1,Y1+Ly+6, '-Pi/2');

OutTextXY(X1+Dx,Y1+Ly+6, '-Pi/4');

OutTextXY(X1+2*Dx,Y1+Ly+6, '0');

OutTextXY(X1+3*Dx,Y1+Ly+6, 'Pi/4');

OutTextXY(X1+4*Dx,Y1+Ly+6, 'b');

{Заголовок} SetTextJustify(1,2);

SetColor(11);

SetTextStyle(0,0,2);

OutTextXY(X1+2*Dx,Y1-40, 'График функции a=tg(b)');

 

{Вывод графика функции}

Xmin:=Round(Bmin/Mx); {определение минимального и максималь-

Xmax:=Round(Bmax/Mx); { ного значений аргумента в пикселах}

 

SetColor(4);

SetLineStyle(0,0,1);

For x:=Xmin to Xmax do

Begin

f:=sin(Mx*x)/cos(Mx*x)/My; {f - значение, принимаемое функцией,

y:=round(f); в пикселах}

if (y>=-3*Dy) and (y<=3*Dy) then

PutPixel(X0+x,Y0-y,4); {Вывод пиксела с учетом переноса начала

координат}

delay(1000);

end;

ReadLn;

CloseGraph; {Завершение работы с графическим режимом}

End.

Результат выполнения программы представлен на рис. 13.4.

 

 

 

Рис. 13.4. Результат выполнения программы Tangens

 

 

!! Проанализируйте программу tangens, введите ее текст в компьютер, откомпилируйте ее, запустите на счет, введите запрашиваемые данные и просмотрите результаты.

 

 







Date: 2016-02-19; view: 487; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.012 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию