Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_OT-1.doc
Скачиваний:
16
Добавлен:
17.03.2016
Размер:
1.15 Mб
Скачать

SetTextStyle (0,0,0);

Вирівнювання тексту на екрані відносно позиції вказівника СР (точки виводу) здійснюється процедурою

SetTextJustify (<по горизонталі, по вертикалі:word>);

Вирівнювання задається командами у вигляді слів чи еквівалентних цифр відповідно до табл.1.5.

Табл.1.5.

Вирівнювання

Примітка

По горизонталі

LeftText (або цифра 0)

Вказівник ліворуч тексту

CenterText (або цифра 1)

Вказівник по центру тексту

RightText (або цифра 2)

Вказівник праворуч тексту

По вертикалі

BottomText (або цифра 0)

Вказівник вище тексту

CenterText (або цифра 1)

Вказівник по центру тексту

TopText (або цифра 2)

Вказівник нище тексту

За згодою встановлено вирівнювання по центру, тобто

SetTextJustify (1,1);

1.11. Для ефективної роботи програми з будь-яким драйвером та роздільністю екрана необхідно обчислювати координати точок на екрані відносно поточної роздільності. Для цього використовуються функції

GetMaxX та GetMaxY

цілочисленого типу word, які повертають роздільність екрана по координаті X та Y відповідно.

1.12. На екран можна виводити точку заданого кольору в задану позицію, що інколи використовується для побудови графіка. Наприклад, вивід зеленої точки в позицію з координатами (х=150, у=50) виконується командою

PutPixel (150,50,green);

1.13. Очистка екрана у графічному режимі здійснюється командою

ClearDevice;

1.14. При побудові графіків потрібно враховувати протилежний до математичного напрямок осі Y на екрані, рис. 1.1. Позиція точки по осі Y визначається різницею між максимальним розмахом координатної сітки графіка та обчисленою координатою точки Y0. Наприклад, якщо координатна сітка займає весь екран по осі Y, то координата дорівнює

Y:= GetMaxY – Y0;

Обчислення координат точок для виводу графіків на основі реальних координат Xd та Yd здійснюється з урахуванням їх цілочисленого типу й масштабів по осях X та Y

X0:= Round(Xd*Mx);

Y0:= Round(Yd*My);

Масштаби визначаються максимальним реальним значенням функції Ymax й аргументу Xmax, а також максимальним розмахом координатної сітки графіка по осях. Наприклад, якщо координатна сітка займає весь екран, то масштаби дорівнюють

Mx:= GetMaxX/Xmax;

My:= GetMaxY/Ymax;

1.15. Приклад 1. Розрахувати значення та побудувати графік функції при зміні аргументуt від нуля до 2 з кроком 0,01 для наступних значень параметрів: А=5; =-1,5; =30; =1,8. Програма складається з двох підпрограм-процедур: Function_W та Graphic. Підпрограма Function_W обчислює значення заданої функції й визначає її максимальне та мінімальне значення, які потім використовуються для визначення масштабу по осі Y при побудові графіка функції. Обчислені значення функції та аргументу виводяться на екран та записуються до файлу. Друга підпрограма Graphic будує на екрані координатну сітку та графік на основі значень функції записаних у файл. На екран виводяться також екстремальні значення функції та аргументу для чого використовується підпрограма-функція RealToStr, що перетворює дані дійсного типу в рядкові.

Program Graphica;

Uses Graph, Crt;

Const

Tend=2; t:real=0;

Var

W, Wmax, Wmin :real;

f :text;

grDriver, grMode, errCode :integer;

Procedure Function_W;

Const

A=5;

alpha=-1.5;

omega=30;

ksi=1.8;

dt=0.01;

Begin

TextBackGround (lightgray);

ClrScr;

TextColor (red);

Writeln ('РОЗРАХУНОК ЗНАЧЕНЬ ФУНКЦІЇ');

Writeln;

TextColor (black);

Writeln (' ':2,'Аргумент',' ':6,'Функція');

Window (1,4,80,25);

TextColor (white);

Assign (f,'F:\TP\Data.Out');

Rewrite (f);

Wmax:=-10E10;

Wmin:=10E10;

Repeat

W:=A*Exp(alpha*t)*Sin(omega*t+ksi);

Writeln (' ':3, t:5:2,' ':7,W:7:2);

Writeln (f, t:5:2,W:7:2);

If W>Wmax then Wmax:=W;

If W<Wmin then Wmin:=W;

t:=t+dt;

Delay (5);

Until t>Tend+dt;

Readln;

Window (1,1,80,25);

Close (f);

End;

Procedure Graphic (x1,y1,x2,y2:word);

Const

N=4;

M=4;

Var

X, Yw, X0, Yw0, J :integer;

Mt, Mw, Wmod :real;

Function RealToStr (R :real) :string;

Var

S :string;

Begin

Str (R:7:2, S);

RealToStr:= S;

End;

Begin

SetBkColor(red);

SetFillStyle (1, lightgray);

Bar (x1, y1, x2, y2);

For J:=0 to N do Line (((x2-x1) div N+1)*J+x1, y1,

((x2-x1) div N+1)*J+x1, y2);

For J:=0 to M do Line (x1, ((y2-y1) div M+1)*J+y1,

x2, ((y2-y1) div M+1)*J+y1);

SetTextJustify (CenterText, CenterText);

SetTextStyle (SmallFont, HorizDir, 5);

OutTextXY (x1-5, ((y2-y1) div 2)+y1, '0');

OutTextXY (x2+7, ((y2-y1) div 2)+y1, 'T');

OutTextXY (x1-5, y1, 'W');

SetColor (yellow);

SetLineStyle (0,0,3);

If (Wmax>=0) and (Wmin<0) then Wmod:=Wmax+Abs(Wmin);

If (Wmax>=0) and (Wmin>0) then Wmod:=Wmax;

If (Wmax<0) and (Wmin<=0) then Wmod:=Abs(Wmin);

Mt:=(x2-x1)/Tend;

Mw:=(y2-y1)/Wmod;

Assign (f, 'F:\TP\Data.out');

Reset (f);

Readln (f, t,W);

X0:=x1+Round (t*Mt);

Yw0:=y2-((y2-y1) div 2)-Round (W*Mw);

While Not Eof (f) do

begin

Readln (f, t,W);

X:=x1+Round (t*Mt);

Yw:=Y2-((Y2-Y1) div 2)-Round (W*Mw);

Line (X0,Yw0,X,Yw);

X0:=X;

Yw0:=Yw;

end;

Close (f);

SetColor (red);

OutTextXY (x2-210, y2-80, 'Tend='+RealToStr(t));

SetColor (green);

OutTextXY (x2-210, y2-60, 'Wmax='+RealToStr (Wmax));

SetColor (magenta);

OutTextXY (x2-210, y2-40, 'Wmin='+RealToStr (Wmin));

Repeat until KeyPressed;

end;

BEGIN

Function_W;

grDriver:= Detect;

InitGraph (grDriver, grMode,'F:\TP\BGI');

errCode:= GraphResult;

if errCode <> grOk then

begin

Writeln (GraphErrorMsg(ErrCode));

Halt;

end;

Graphic (30, 30, GetMaxX-30, GetMaxY-30);

CloseGraph;

END.

  1. ЗАВДАННЯ НА РОБОТУ

Розробити та запустити у роботу програму на мові програмування "Паскаль", яка вирішує задачу відповідно до заданого нижче варіанта.

2.1. Обчислити значення та побудувати графіки функцій Y1=А*sin(В*х+рі/3) та Y2=С*(1-е-x) при зміні аргументу Х від нуля до 5 з кроком 0,05. Значення коефіцієнтів А, В, С ввести з клавіатури. Значення аргументу та функцій вивести в три стовпці на екран із відповідними заголовками та записати у файл. Графіки вивести в першу четверть екрана на одну координатну сітку різним кольором. Підписати координатні осі та вивести максимальні значення функцій та аргументу.

2.2. Обчислити значення та побудувати графіки функцій Y=С*e-x +А*(1-е) та Z=В*соs(х+рі/4) при зміні аргументу Х від нуля до 3 з кроком 0,01. Значення коефіцієнтів А, В, С задати у вигляді констант. Значення аргументу та функцій вивести в три стовпці на екран з відповідними заголовками та записати у файл. Графіки вивести в третю четверть екрана на одну координатну сітку різним кольором. Підписати координатні осі та вивести максимальні значення функцій.

2.З. Обчислити значення та побудувати графіки функцій Y=А*sin(В*х) та F=С+(1-е-x) при зміні аргументу Х від нуля до 7 із кроком 0,05. Значення коефіцієнтів А, В, С ввести з клавіатури. Значення аргументу та функцій вивести в три стовпці на екран з відповідними заголовками та записати у файл. Графіки вивести в другу четверть екрана на одну координатну сітку різним кольором. Підписати координатні осі та вивести максимальні значення функцій та аргументу.

2.4. Обчислити значення та побудувати графіки функцій Z=А –B*(1-е-x) та Y=С*соs(х-рі/6) при зміні аргументу Х від нуля до 10 з кроком 0,04. Значення коефіцієнтів А, В, С задати у вигляді констант. Значення аргументу та функцій вивести в три стовпці на екран з відповідними заголовками та записати у файл. Графіки вивести в другу четверть екрана на одну координатну сітку різним кольором. Підписати координатні осі та вивести максимальні значення функцій та аргументу.

2.5. Обчислити значення та побудувати графіки функцій Y2=А*(1-е-x) та Z3=В*sin(С*х-рі/3) при зміні аргументу Х від нуля до 6 з кроком 0,01. Значення коефіцієнтів А, В, С задати у вигляді констант. Значення аргументу та функцій вивести в три стовпці на екран з відповідними заголовками та записати у файл. Графіки вивести на весь екран на одну координатну сітку різним кольором. Підписати координатні осі та вивести максимальні значення функцій.

2.6. Обчислити значення та побудувати графіки функцій Y1=А*e-x +В*(1-е-x) та Z=С*cos(х+рі/З) при зміні аргументу Х від нуля до 8 з кроком 0,02. Значення коефіцієнтів А, В, С задати у вигляді констант. Значення аргументу та функцій вивести в три стовпці на екран з відповідними заголовками та записати у файл. Графіки вивести в третю четверть екрана на одну координатну сітку різним кольором. Підписати координатні осі та вивести максимальні значення функцій.

2.7. Обчислити значення та побудувати графіки функцій Y=А*sin(В*х+рі/5) та Z=C*(1-е-x) при зміні аргументу Х від нуля до 6 з кроком 0,02. Значення коефіцієнтів А, В, С ввести з клавіатури. Значення аргументу та функцій вивести в три стовпці на екран з відповідними заголовками та записати у файл. Графіки вивести в другу четверть екрана на одну координатну сітку різним кольором. Підписати координатні осі та вивести максимальні значення функцій та аргументу.

2.8. Обчислити значення та побудувати графіки функцій Z1=А –В*(1-е-x) та Z2=С*соs(х+рі/4) при зміні аргументу Х від нуля до 5 з кроком 0,01. Значення коефіцієнтів А, В, С задати у вигляді констант. Значення аргументу та функцій вивести в три стовпці на екран з відповідними заголовками та записати у файл. Графіки вивести в другу четверть екрана на одну координатну сітку різним кольором. Підписати координатні осі та вивести максимальні значення функцій та аргументу.

2.9. Обчислити значення та побудувати графіки функцій Y2=А*(1-е)+В та Z1=С*sin(х-рі/3) при зміні аргументу Х від нуля до 6 з кроком 0,01. Значення коефіцієнтів А, В, С задати у вигляді констант. Значення аргументу та функцій вивести в три стовпці на екран з відповідними заголовками та записати у файл. Графіки вивести на весь екран на одну координатну сітку різним кольором. Підписати координатні осі та вивести максимальні значення функцій.

2.10. Обчислити значення та побудувати графіки функцій Y=А*(1-е) та Z=В*соs(С*х-рі/3) при зміні аргументу Х від нуля до 5 з кроком 0,01. Значення коефіцієнтів А, В, С задати у вигляді констант. Значення аргументу та функцій вивести в три стовпці на екран з відповідними заголовками та записати у файл. Графіки вивести на весь екран на одну координатну сітку різним кольором. Підписати координатні осі та вивести максимальні значення функцій.

  1. КОНТРОЛЬНІ ЗАПИТАННЯ

3.1. Як відкрити графічний режим дисплея.

3.2. За допомогою яких команд можна будувати графіки функцій.

3.3. Як змінити тип, товщину та колір лінії.

3.4. За допомогою яких команд виводиться на екран текстова інформація у графічному режимі роботи.

3.5. Як змінити шрифт, розмір та напрямок виводу тексту.

3.6. Чим визначаються масштаби по координатних осям.

Комп'ютерний практикум № 7

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]