Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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; Нарушение авторских прав |