DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

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

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІТРЕ
Факультет:
УІ
Кафедра:
Кафедра теоретичної радіотехніки та радіовимірювань

Інформація про роботу

Рік:
2014
Тип роботи:
Лабораторна робота
Предмет:
Програмування
Група:
РТ-11
Варіант:
4 14 1
Коротко про документ

Про що ця робота

У документі наведено звіт з лабораторної роботи щодо програмної побудови графіків функції однієї змінної в середовищі Pascal. Розглянуто реалізацію алгоритму масштабування, побудову сітки та осей координат.

У роботі розглядаються

  • Графічний режим в програмуванні
  • Масштабування графіків
  • Функції однієї змінної
  • Алгоритми побудови графіків
  • Мова програмування Pascal
  • Побудова координатних осей

Зміст і розділи

  1. Постановка задачі
  2. Розробка структури даних
  3. Розробка блок-схеми алгоритму
  4. Запис тексту програми
  5. Тестування та налагодження
Для кого:Студенти технічних спеціальностей, викладачі програмування та обчислювальної техніки.
Викладачі:Нестор М. І.

Ключові поняття

графічний режиммасштабуванняфункціяалгоритмвікнокоординатна сіткавісь абсцисвісь ординатпрограмаPascal

Частина тексту файла (без зображень, графіків і формул):

ЗАВДАННЯ: Розробити алгоритм побудови графіка функції однієї змінної. Розроблений алгоритм реалізувати програмно. Реалізувати вказаний в таблиці спосіб масштабування графіка та прив’язки вікна. Вікно - (10,10)–(150,150); Тест функції: Y(x)=sin(x)(x+1 ; X( [1,9]. 1.ПОСТАНОВКА ЗАДАЧІ. Cпочатку ініціалізуємо графічний режим. Утворюємо вікно за допомогою SetViewPort. Вираховуємо масштаб маючи границі для функції та аргумента. Враховуємо яким повинен бути масштаб – логарифмічний чи рівномірний. Для визначення логарифму скористаємося функцією – function lgn(x:real):real; begin if x<0 then begin lgn:=ln(abs(x));end else lgn:=ln(abs(x)) end; Для утворення графіка потрібно з’єднати лініями всі значення функції та аргумента на координатній площині.Кожну точку з’єднумо з наступною лінією. Для цього використовуємо цикл. Утворюємо вісь абсцис та ординат, а також сітку. 2.РОЗРОБКА СТРУКТУРИ ДАНИХ. №п(п Позначення Ім’я( Тип Призначення, опис  1  gd,gm, patpatpatpathtodriver  gd,gm, patpatpatpathtodriver - Змінні необхідні для реалізації графічного режиму  2 s1,s2,s3,s4,s5,s6 s1,s2,s3,s4 ціла Необхідні для утворення сітки  3 х1,х2,х3,х4 w1,w2,w3,w4 ціла Координати вікна  4 Z, Z3 z ціла Значення функції, вихідна визначає нулі х,у  5 і і ціла Слугує для утворення сітки і графіка  6 x1,y1,x2,y2 x1,y1,x2,y2 ціла Значення х та у між якими проводиться лінія  7 Ymin,Ymax z1,z2 дійсна Межі «у» в яких Буде виводитись графік  8 С1,С2  - дійсна Діапазон значень  8 Xmin,Xmax b,a дійсна Межі «x» в яких Буде виводитись графік  9 D d дійсна крок   3.РОЗРОБКА БЛОК-СХЕМИ АЛГОРИТМУ.   4.Запис тексту програми. program Project1;uses graph,keyboard; var b,a,d:real; gd,gm:smallint; s1,s2,s3,s4,s5,s6,h1,h2, w1,w2,w3,w4, z3,z,n,i, x1,y1,x2,y2 :integer; c,c1,my,mx,z1,z2:real; patpatpatpathtodriver:string; function y(x:real):real; begin y:=sin(x)/x+1; end; function lgn(x:real):real; begin if x<0 then begin lgn:=-ln(abs(x)+1); end else lgn:=ln(abs(x)+1) end; begin a:=1;d:=0.01;b:=9;{znahsennja x}z1:=0;z2:=3;{mashtab}w1:=10;w2:=10;w3:=150;w4:=150;{koord vikna} h1:=round((w3-w1)/20){sitka goruzontalna};h2:=round((w4-w2)/6){sitka vertukalna}; n:=round((b-a)/(d)+1); if (z2-z1>=abs(z1)) and (z2-z1>=abs(z2))then c:=abs(lgn(z2))+abs(lgn(z1)) else c:=abs(lgn(z2)-lgn(z1)); my:=(w4-w2)/c; if (z1>=0) and (z2>0) then z3:=w4-w2+round(lgn(z1)*my); if (z1<0) and (z2<=0) then z3:=round(lgn(z2)*my); if (z1<0) and (z2>0) then z3:=round((w4-w2)* lgn(z2)/c); if (b-a>=abs(a)) and (b-a>=abs(b))then c1:=abs(lgn(b))+abs(lgn(a)) else c1:=abs(lgn(b)-lgn(a)); mx:=(w3-w1)/c1; if (a>=0) and (b>0) then z:=-round(lgn(a)*mx); if (a<0) and (b<=0) then z:=w3-w1+round(lgn(b)*mx); if (a<0) and (b>0) then z:=w3-w1+round((w3-w1)*lgn(b)/c1); x2:=z+round(lgn(a)*mx); y2:=z3-round(lgn(y(a))*mx); x2:=z+round(lgn(a)*mx); y2:=z3-round(lgn(y(a))*my); s1:=z; s2:=z3; s3:=z+round(lgn(a)*mx);s4:=z+round(lgn(b)*mx); s5:=z3-round(lgn(z1)*my);s6:=z3-round(lgn(z2)*my);{dlja sitku} begin gd:=0;initkeyboard;initkeyboard;initgraph(gd,gm,''); SetViewPort(w1, w2, w3,w4,ClipOn ); setbkcolor(8);clearviewport; setcolor(6); for i:=1 to 200 do begin line(s3,s2+h1*i,s4,s2+h1*i); line(s3,s2-h1*i,s4,s2-h1*i); end; for i:=1 to 200 do begin line(s1+h2*i,s5,s1+h2*i,s6); line(s1-h2*i,s5,s1-h2*i,s6); end; setcolor(4); line(s1,s5, s1,s6);line(s3,s2,s4,s2); setcolor(3); for i:=1 to n do begin {delaje liniji} x1:=z+round(lgn(a)*mx); y1:=z3-round(lgn(y(a))*my); a:=a+d; x2:=z+round(lgn(a)*mx); y2:=z3-round(lgn(y(a))*my); line(x1,y1,x2,y2);end; repeat until keyboard.getkeyeventchar(keyboard.getkeyevent())='g'; closegraph(); donekeyboard; end;end. 5.ТЕСТУВАННЯ ТА НАЛАГОДЖЕННЯ.  Висновок: я навчився створювати програми які будують графіки. Ознайомився з оператиром SetViewPort ознайомився з видами масштабу рівномірним та логарифмічним, кольора задані для того щоб відрізнити графік від сітки, вісі абсцис та ординат. Міністерство освіти і науки україни НУ «Львівська Політехніка» Кафедра теоретичної радіотехніки та радіовимірювань  ЗВІТ З ЛАБОРАТОРНОЇ РОБОТИ №14 НА ТЕМУ: «ПОБУДОВА ГРАФІКІВ ФУНКЦІЙ ОДНОГО АРГУМЕНТУ» Прийняв: Нестор Н. І. Львів 2010р.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!