Студопедия — Лабораторна робота №15
Студопедия Главная Случайная страница Обратная связь

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

Лабораторна робота №15






 

Побудова графіків функцій в декартових координатах

 

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

 

Теоретична частина

 

Про функції

 

Площа S кола радіуса R визначається за формулою S=PI*R*R. Кожному значенню R відповідає деяке значення S. Ми говоримо, що S є функція аргументу R.

Ви вже зустрічали вирази вигляду:

Y=X*X, Y=SIN (X), Y= SQR(X), …

Все це приклади функцій. У кожному випадку Y є функція X. Вводиться значення X і на виході одержується значення Y. Зазначимо, що для деяких функцій не всі значення Х можна вводити. Наприклад, для функції Y= SQR(X) не можна вводити від’ємні числа. Не має значення, які букви використовувати для позначення функції та аргументу. Але, як правило, використовують букви Y і X.

Представлення функції у вигляді формули саме по собі не дуже наглядне. Наприклад, функція Y=X*X*SIN(1/X). Що можна сказати про її поведінку при великих значеннях Х? А при малих Х? «Краще один раз побачити, ніж сто раз почути», тому для кращого розуміння функцій ми часто малюємо «картинку» - графік функції.

 

Графіки та координати.

 

Точку на площині представляють парою чисел (X,Y). Ця пара означає відстань точки від деяких осей. Число Х задає відстань по горизонталі, а Y - по вертикалі.

Побудувати графік функції це значить, що для кожного значення Х з деякої заданої області визначення необхідно обчислити відповідне значення Y та побудувати точку з координатами (X,Y).

Досить цікаво поводить себе функція Y=X*X*SIN(1/X). Якщо побудувати графік для значень Х, між -10 та 10, то він буде дуже схожий на пряму, проведену під лінійку (рис. 15.1а), однак поблизу 0 складається враження, що лінійка трохи змістилась. На наступному (рис.15.1б) зроблено збільшення та побудовано графік для Х між -1 та 1. Тут вже починає прояснятися, що відбувається в околі Х=0. Подальше збільшення дають (рис.15.1в) та (рис15.1г), на яких зображено відповідно області від -0.1 до 0.1 і від -0.025 до 0.025.

 

а) б)

 

 

в) г)

Рис. 15.1. Графік функції з різними параметрами

 


Чому при великих значеннях Х графік функції X*X*SIN(1/X) виглядає майже як пряма? Щоб відповісти на це запитання, представимо нашу функцію у вигляді X*SIN(1/X)/(1/X) та позначимо 1/X літерою U. Тепер ми маємо справу з функцією X*SIN(U)/U, а при великих Х величина 1/X (або U) мала. Пригадаємо, що при малих значеннях U значення SIN(U)/U приблизно рівне 1, так що X*SIN(U)/U приблизно рівне Х. Таким чином, при великих значеннях Х отримуємо (приблизно) графік функції Y=X, тобто пряму лінію.

Якщо поглянути на графіки для малих значень Х, то побачимо цікаву особливість. Верхні точки графіка розташовуються в лінію Х*Х, нижчі — в лінію –(Х*Х), а весь інший графік пульсує вгору-вниз між цими кривими. Справа в тому, що наближуючись до нуля, Х проходить через точки -1/ , -1/(2 ), -1/(3 ) і т.д. В цих точках функція X*X*SIN(1/X) приймає значення або Х*Х, або -Х*Х. Простежити поведінку функцій можна, будуючи їх графіки. За допомогою комп’ютера можна ефективно малювати графіки функцій.

При запуску QBASIC екран комп’ютера автоматично готовий для виводу тексту. QBASIC вибирає режим екрана, що вміщує 25 рядків та 80 символів у кожному рядку. Однак, якщо ви хочете малювати, то повинні встановити один з графічних режимів екрану. Зробити це можна, використавши оператор SCREEN. Щоб повернутися у текстовий режим, ви застосовуєте оператор SCREEN 0.

Оператор SCREEN, таким чином, дозволяє вам включати та виключати обидва типи екранного режиму роботи. Загальна форма даного оператора наступна:

 

SCREEN номер режиму,

де номер режиму — ціле число.

 

При цьому можна вибирати тільки з тих режимів, які доступні для відеоадаптера конкретного комп’ютера.

Графічні режими характеризуються кількістю точок по вертикальній та горизонтальній осях екрану. Наприклад:

 

SCREEN 2

 

Ця команда встановлює графічний режим екрана, що містить 640 точок по горизонтальній осі та 200 точок по вертикальній. Зображення створюється точками, а його положення на екрані визначається координатною системою. Початок координат, тобто точка з координатами (0,0), розміщена у верхньому лівому кутку екрану. Остання точка в цьому графічному режимі має координати (639,199) і знаходиться в нижньому правому кутку. Таким чином, середина екрана визначається як точка з координатами (320,100). Рисунок 15.2. демонструє параметри даного графічного режиму.

 

Для малювання картинки знадобляться точки, лінії та кола. В QBASIC для зображення цих графічних примітивів використовуються відповідні оператори:

  • PSET, PRESET - малювання точки;
  • LINE - малювання відрізку;
  • CIRCLE - малювання кола.

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

Існує три різних типи координат графічного екрана в QBASIC:

  • абсолютні координати;
  • координати на основі Точки Останньої Вказівки, у скороченні — ТОВ (на англ. Last Point Referenced - LPR);
  • відносні координати.

Абсолютні координати — враховуючи систему координат екрана, ви просто вказуєте місце, в якому хочете намалювати точку, наприклад:

PSET (100, 120)

Значення (100, 120) вказують на розміщення точки по осях X та Y відповідно.

Точка Останньої Вказівки (ТОВ) — координати точки, яка була намальована останньою, зберігаються в пам’яті комп’ютера. Ця точка й називається Точкою Останньої Вказівки та часто використовується в графічних операторах. Наприклад, при малюванні лінії за допомогою оператора

LINE (300, 120)

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

Відносні координати — ці координати показують величину переміщення відносного положення ТОВ. Щоб намалювати нову точку, використовуючи відносні координати, вам потрібне ключове слово STEP, наприклад:

PSET STEP (-5, 8)

При цьому з’явиться точка, положення якої буде лівіше на 5 і нижче на 8 точок відносно ТОВ. Інакше кажучи, якщо ТОВ має координати (100, 100), то даний оператор означає малювання точки з координатами (95, 108).

Абсолютні координати повинні бути завжди додатними, а відносні можуть бути як додатними, так і від’ємними.

Оператор LOCATE має п’ять різних параметрів, які забезпечують повну владу над курсором. Курсор існує тільки в текстовому режимі, його ширина завжди рівна ширині символу, а висота може регулюватися. Загальна форма оператора LOCATE виглядає наступним чином:

 

LOCATE рядок, стовпчик, прапорець, початок, кінець,

 

де рядок — номер рядка, в якому буде розміщено курсор. Це значення повинно бути від 1 до значення максимально можливої кількості рядків;

стовпчик — номер стовпчика (значення може бути від 1 до 80);

прапорець — робить курсор видимим або невидимим;

початок — номер першого сегмента курсору;

кінець — номер останнього сегмента курсору.

Всі ці значення, що присвоюються цим параметрам, повинні бути цілого типу.

Оператор PSET використовується для малювання точки на екрані шляхом зміни її кольору з фонового (чорного) на білий. Оператор може мати наступні форми:

PSET (X, Y), С — абсолютна форма;

PSET STEP (X, Y), С — відносна форма,

де X,Y — абсолютні координати або зміщення точки відносно ТОВ, С - колір

Крім того, в QBASIC існує оператор PRESET, що має повністю аналогічну форму запису. Цей оператор застосовується для зміни кольору відповідної точки на фоновий. Він також може використовувати абсолютні та відносні координати. Отже, оператор PRESET виконує дію, протилежну оператору PSET.

Програмуючи в QBASIC, можна малювати не тільки білі зображення на чорному фоні. Існують різні кольори, які можна використати як для фона, так і для малюнка. При виведенні зображення на екран можна задавати колір фону - FON та колір переднього плану - С. FON та С позначають цілим числом, якому відповідає певний колір. Колір фону можна задати командою COLOR. Колір зображення або визначається командою COLOR, або задається у команді його виводу на екран (команда виводу точки, команда виводу лінії та ін.)

SCREEN 1

COLOR FON, палітра,

де FON — ціле число 0...15; палітра — число 0 або 1. При запису команд виводу зображень С — ціле число 0...3.

Колір відповідний цим значенням С буде залежати від номера палітри у команді COLOR (номер палітри приймає значення 0 або 1) (табл. 15.1).


Таблиця 15.1.


Колір зобра- жен­- ня Палітра          
  Зелений Червоний Коричневий Колір фону
  Синій Фіолетовий Ярко-білий  

 

Режим SCREEN 7 має 16 кольорів (табл. 15. 2.)

 

Таблиця 15.2.

 

С Колір С   Колір
  Чорний   Сірий
  Голубий   Світло-голубий
  Зелений   Світло-зелений
  Бірюзовий   Світло-бірюзовий
  Червоний   Світло-червоний
  Бузковий   Світло-бузковий
  Коричневий   Жовтий
  Білий   Ярко-жовтий

 

Приклад роботи команди COLOR.

 

REM Робота с кольором

SCREEN 1: sc = 1: t1$ = "Фон": t2$ = "Палітра";

FOR cl = 0 TO 15

FOR c2 = 0 TO 1

COLOR cl,c2

GOSUB 1000

NEXT c2, cl

SCREEN 0: CLS

PRINT "Закінчена демонстрація роботи режиму SCREEN1";

PRINT "Натисніть клавішу для продовження"

WHILE INKEY$ = ""

WEND

SCREEN 7: sc=7

t1$="Передний план": t2$="Фон";

FOR cl = 0 TO 15

FOR c2 = 0 1

COLOR cl,c2

GOSUB 1000

NEXT c2, cl

SCREEN 0: CLS

PRINT "Закінчена демонстрація роботи режиму SCREEN7"

END

1000 CLS

FOR k = I TO 1000

xt = INT(RND(1) * 320)

yt=INT(RND(l) * 200)

PSET (xt, yt)

NEXT k

VIEW PRINT 22 TO 24

PRINT "SCREEN"; sc; t1$; cl; t2$; c2

PRINT "Натисніть клавішу для продовження"

WHILE INKEY$ = ""

WEND

RETURN

 

Завдання. Побудувати точковий графік функції Y=X*X*SIN(1/X) при зміні аргументу Х:

1. Від -10 до 10

2. Від -1 до 1

3. Від - 0.1 до 0.1

4. Від -0.025 до 0.025.

Передбачити перед виводом графіка вивід найбільшого та найменшого значення функції.

Розв’язання.

Виберемо графічний режим SCREEN 7. Діапазон зміни аргументу Х відомий. Виберемо абсцису Х0 початку системи координат в точці 80. Масштабний коефіцієнт Мх по осі Х визначається як

Мх =320/(b-a).

Діапазон зміни аргументу Y невідомий. Тому в програмі необхідно визначити найбільше Ymax та найменше Ymin значення серед тих значень Yi, які обчислюються. Вибір ординати Y0 початку систем координат проведемо з умови максимального використання поля, виділеного під графік:

  • якщо Ymax > 0 і Ymin > 0, то Y0 =200 — це номер нижньої точки по вертикалі, виділеної під графік;
  • якщо Ymax < 0 і Ymin < 0, то Y0 =0 — це номер верхньої точки по вертикалі, виділеної під графік;
  • якщо Ymax > 0 і Ymin < 0, то Y0 = ]My * Ymax + 0.5[.

Масштабний коефіцієнт My вертикальної осі Y рівний My = 200/(Ymax - Ymin).

Для побудови графіка необхідно виконати перетворення координати точки (X, Y) вибраної системи координат з центром (X0, Y0) в координати екрана (Xе, Yе):

Xe = ] x*Mx + 0.5 [ + X0. Ye = Y0 - ]y*My + 0.5[.

Значення 0,5 взяте для округлення. Знак “-“ при обчисленні Ye означає зміну напрямку осі ординат.

 

Програма

 

BEGIN1:

CLS

'Побудова графіка функції

DIM Y(600)

COLOR 1, 10

PRINT "Введіть початкове значення Х ";

INPUT A

PRINT "Введіть кінцеве значення X ";

INPUT B

CLS

N = 500

HX = (B - A) / N

LOCATE 5, 15

PRINT "Область зміни Х";

PRINT

PRINT "Початкове значення Х="; A

PRINT "Кінцеве значення Х="; B

PRINT "Крок HX="; HX

' Знаходження областей значень Y(I), YMAX, YMIN

YMAX = -1E+10: YMIN = 1E+10: I = 0

FOR X = A TO B STEP HX

I = I + 1

Y(I) = X ^ 2 * SIN(1 / X)

IF Y(I) > YMAX THEN YMAX = Y(I)

IF Y(I) < YMIN THEN YMIN = Y(I)

NEXT X

PRINT "YMIN="; YMIN, "YMAX="; YMAX

'Знаходження масштабів MX,MY, координати Y0

MX = 320 / (B - A)

MY = 200 / ABS(YMAX - YMIN)

IF (YMAX > 0) AND (YMIN >= 0) THEN Y0 = 200

IF (YMAX = 0) AND (YMIN < 0) THEN Y0 = 0

IF (YMAX > 0) AND (YMIN < 0) THEN Y0 = INT(MY * YMAX + 0. 5)

LOCATE 24, 1

PRINT "Для побудови графіка функцій натисніть";

LOCATE 25, 1

PRINT "будь-яку клавішу";

WHILE INKEY$ = "" 'Зупинка виконання програми до натиснення будь-якої клавіші

WEND

CLS

SCREEN 7

COLOR 5, 0

I = 0

'Побудова графіку з точок

COL = 2 'Колір точки зелений

X0 = 80

FOR X = A TO B STEP HX

I = I + 1

XE = INT(X * MX + 0. 5) + X0 'Перетворення (X,Y)

YE = Y0 - INT(Y(I) * MY + 0. 5) 'в координати екрану

PSET (80 + XE, 110 + YE), COL 'відображення точки

NEXT X

’Закінчення і запит на повторне виконання програми

LOCATE 1, 2

PRINT " Якщо потрібно повторити виконання програми";

PRINT " натисніть (Y), інакше - (N)";

BEGIN2:

G$ = INKEY$

IF G$ <> LCASE$("Y") AND G$ <> LCASE$("N") THEN GOTO BEGIN2

IF G$ = LCASE$("Y") THEN GOTO BEGIN1

END

 

Результат виконання програми:

 

 

 

 

 

Контрольні запитання

 

  1. Координати точки.
  2. Як побудувати графік функції?
  3. Які ви знаєте режими роботи з екраном?
  4. Оператор SCREEN.
  5. Призначення операторів PSET та PRESET.
  6. Оператор COLOR.

 

 

Варіанти завдань

 

Вивести на екран графік функції, наведеної в таблиці 15. 3, у заданому діапазоні зміни аргумента х від a до b. Передбачити перед виводом графіку вивід найбільшого та найменшого значення функції.

 


Таблиця 15.3.

 

№ варіанту Вид функції Діапазон зміни аргументу
[0.1; 3]
[1; 5]
[-4; 4]
[-4; 0.5]
[-3.14; 3.14]
[-3.14; 3.14]
[-3; 3]
[0.2; 6]
[-3.14; 3.14]
[-3.14; 3.14]
[1; 10]
[-3.14; 3.14]
[0.2; 5]
[-3; 5]
[0; 10]

 

 








Дата добавления: 2015-09-07; просмотров: 560. Нарушение авторских прав; Мы поможем в написании вашей работы!



Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

Алгоритм выполнения манипуляции Приемы наружного акушерского исследования. Приемы Леопольда – Левицкого. Цель...

ИГРЫ НА ТАКТИЛЬНОЕ ВЗАИМОДЕЙСТВИЕ Методические рекомендации по проведению игр на тактильное взаимодействие...

Реформы П.А.Столыпина Сегодня уже никто не сомневается в том, что экономическая политика П...

Анализ микросреды предприятия Анализ микросреды направлен на анализ состояния тех со­ставляющих внешней среды, с которыми предприятие нахо­дится в непосредственном взаимодействии...

Типы конфликтных личностей (Дж. Скотт) Дж. Г. Скотт опирается на типологию Р. М. Брансом, но дополняет её. Они убеждены в своей абсолютной правоте и хотят, чтобы...

Гносеологический оптимизм, скептицизм, агностицизм.разновидности агностицизма Позицию Агностицизм защищает и критический реализм. Один из главных представителей этого направления...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия