Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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; a=-1,5; w=30; y=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.

 

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

 

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

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. Значення коефіцієнтів А, В, С задати у вигляді констант. Значення аргументу та функцій вивести в три стовпці на екран з відповідними заголовками та записати у файл. Графіки вивести на весь екран на одну координатну сітку різним кольором. Підписати координатні осі та вивести максимальні значення функцій.

 

 

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

 

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

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

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

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

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

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


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

БІБЛІОТЕЧНИЙ МОДУЛЬ НА МОВІ "ПАСКАЛЬ"

Мета практикуму – розробка програмного забезпечення на мові програмування "Паскаль" з використанням створених бібліотечних модулів програміста.

 

1. ТЕОРЕТИЧНІ ВІДОМОСТІ

 

1.1. Створення та використання бібліотечного модуля програміста на мові "Паскаль" здійснюється в такій послідовності:

1) Відповідно до вимог записується текст програми бібліотечного модуля;

2) Текст програми компілюється звичайним способом шляхом натискання комбінації клавіш Alt-F9. Попередньо перед компіляцією за допомогою меню Compile\Destination\Disk задається місце розміщення модуля у файлі на диску. Після компіляції створюється файл модуля з розширенням .TPU, наприклад, файл BIBLIO.TPU;

3) В основній програмі для використання команд бібліотечного модуля він підключається у розділі Uses, наприклад, Uses BIBLIO;

4) В обов’язковому порядку створюється опис використання команд модуля.

1.2. Текст програми бібліотечного модуля записується відповідно до наступної структури модуля:

 

Unit <ім”я модуля>;

{$ глобальні директиви компілятора}




Поделиться с друзьями:


Дата добавления: 2014-12-25; Просмотров: 358; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.