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

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

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

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

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

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

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

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

Рік:
2014
Тип роботи:
Лабораторна робота
Предмет:
Інформатика та обчислювальна техніка
Група:
РТ-12
Варіант:
2 11
Коротко про документ

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

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

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

  • Програмування
  • Графічний режим
  • Побудова графіків
  • Мова Pascal
  • Масштабування

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

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

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

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

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

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 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:=exp(-x)*sin(8*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:=0.1;d:=0.01;b:=2.1;{znahsennja x}z1:=0;z2:=1;{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(z2)+abs(z1) else c:=abs(z2-z1); my:=(w4-w2)/c; if (z1>=0) and (z2>0) then z3:=w4-w2+round(z1*my); if (z1<0) and (z2<=0) then z3:=round(z2*my); if (z1<0) and (z2>0) then z3:=round((w4-w2)* 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(y(a)*my); s1:=z; s2:=z3; s3:=z+round(lgn(a)*mx);s4:=z+round(lgn(b)*mx); s5:=z3-round(z1*my);s6:=z3-round(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(y(a)*my); a:=a+d; x2:=z+round(lgn(a)*mx); y2:=z3-round(y(a)*my); line(x1,y1,x2,y2);end; repeat until keyboard.getkeyeventchar(keyboard.getkeyevent())='g'; closegraph(); donekeyboard; end;end. 5.ТЕСТУВАННЯ ТА НАЛАГОДЖЕННЯ.  Висновок: я навчився створювати програми які будують графіки. Ознайомився з оператиром SetViewPort ознайомився з видами масштабу рівномірним та логарифмічним, кольора задані для того щоб відрізнити графік від сітки, вісі абсцис та ординат. Міністерство освіти і науки україни НУ «Львівська Політехніка» Кафедра інформатики. ЛАБОРАТОРНА РОБОТА №14 ПОБУДОВА ГРАФІКІВ ФУНКЦІЙ ОДНОГО АРГУМЕНТУ Стефанишин Ігор
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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