Студопедия — Лабораторна робота №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; просмотров: 566. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Метод архитекторов Этот метод является наиболее часто используемым и может применяться в трех модификациях: способ с двумя точками схода, способ с одной точкой схода, способ вертикальной плоскости и опущенного плана...

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

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

Характерные черты немецкой классической философии 1. Особое понимание роли философии в истории человечества, в развитии мировой культуры. Классические немецкие философы полагали, что философия призвана быть критической совестью культуры, «душой» культуры. 2. Исследовались не только человеческая...

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

Кран машиниста усл. № 394 – назначение и устройство Кран машиниста условный номер 394 предназначен для управления тормозами поезда...

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