Міністерство освіти та науки України
Національний університет «Львівська політехніка»
Інститут телекомунікацій, радіоелектроніки та електронної техніки
Кафедра теоретичної радіотехніки та радіовимірювань
Звіт з лабораторної роботи №12
Тема «Побудова графічних позначень елементів радіоелектронних схем»
з дисципліни «Інформатика та обчислювальна техніка»
Мета роботи - засвоїти методику та виробити практичні навики застосування засобів графічного виводу інформації на прикладі побудови графічних позначень елементів радіоелектронних схем.
Варіант 10
ЗАВДАННЯ.
Розробити підпрограму-процедуру для побудови графічного позначення електрорадіоелемента, вибраного з табл. 12.a згідно з варіантом, і викликаючу її головну програму. В якості параметрів процедура повинна отримувати координати точки з’єднання елемента А у вигляді запису з полями X,Y. В головній програмі необхідно проініціалізувати графічний режим і побудувати зображення елемента в різних частинах екрану. Побудувати позначення елемента з різними орієнтаціями і передачею процедурі орієнтації в якості параметру послідовного типу.
№
Назва
Позначення
10
Польовий транзис-тор з каналом
р-типу
МЕТОДИЧНІ ВКАЗІВКИ ДО ВИКОНАННЯ РОБОТИ
Перед написанням програми треба намалювати необхідне зображення на міліметрівці у збільшеному масштабі і відмітити координати характерних точок.
З метою полегшення налагодження програми треба описати ці координати як змінні типу word або integer. Порівняймо, наприклад, два способи креслення обкладок конденсатора в варіанті 12:
Moveto(XA,YA); Moverel(20,0); Linerel(0,(10); Linerel(0,20); Moverel(5,0); Linerel(0,(20);
Y1:=10; DX:=5; XV:=20; Moveto(XA,YA); Moverel(XV,(Y1); Linerel(0,2*Y1); Moverel(DX,0); Linerel(0,(2*Y1);
При необхідності змінити розмір пластин в першій програмі необхідно виконати три виправлення (причому взаємопов’язаних), а в другій ( лише одне, значення Y1.
Особливо важливою ця вимога стає при необхідності пересування деякого обє’кта, наприклад стрілок у варіантах 2,5..10,12,13. Якщо креслити стрілки операторами
Line(XA+10,YA,XA+20,YA);
Line(XA+15,YA(3,XA+20,YA);
Line(XA+15,YA+3,XA+20,YA);
то зміщення її вимагатиме 12 узгоджених виправлень, інакше стрілка “розпадеться”. Якщо ж впровадити додаткові змінні і описати стрілку так:
XN:=XA+10; YN:=YA; XK:=XN+10; DX:=5; DY:=3;
Moveto(XN,YN); Lineto(XK,YN);
Moverel((DX,(DY); Linerel(DX,DY); Linerel((DX,DY);
то зміна її положення і розмірів вимагатиме виправлення лише одного значення змінної, причому стрілка завжди лишатиметься стрілкою.
ВИКОНАННЯ ЗАВДАННЯ.
ТЕКСТ ПРОГРАМИ.
Program L12;
uses Crt, Graph;
Var GraphDriver,GraphMode,ErrorCode:Integer;
a,X,Y,XA,YA,X1,Y1,DX,DY,XV,YV,XN,YN,XK,YK:Integer;
procedure tranzystor1(XA,YA:integer);
begin
OuttextXY(XA-5,YA-20,'A');
Moveto(XA,YA);
pieslice(XA,YA,0,360,2); Lineto(XA+30,YA);
Moverel(5,3); Linerel(-5,-3); Linerel(5,-3);
Moveto(XA,YA); Lineto(XA+60,YA);
Linerel(0,10); Linerel(0,-60);Linerel(0,10);Linerel(100,0);
Moverel(0,40);Linerel(-100,0);
Circle(XA+80,YA-30,60);
end;
procedure tranzystor2(XA,YA:integer);
begin
OuttextXY(XA-5,YA-20,'A');
Moveto(XA,YA);
pieslice(XA,YA,0,360,2); Lineto(XA-30,YA);
Moverel(-5,-3); Linerel(5,3); Linerel(-5,3);
Moveto(XA,YA); Lineto(XA-60,YA);
Linerel(0,10); Linerel(0,-60);Linerel(0,10);Linerel(-100,0);
Moverel(0,40);Linerel(100,0);
Circle(XA-80,YA-30,60);
end;
procedure tranzystor3(XA,YA:integer);
begin
OuttextXY(XA-5,YA-20,'A');
Moveto(XA,YA);
pieslice(XA,YA,0,360,2); Lineto(XA,YA+30);
Moverel(3,5); Linerel(-3,-5); Linerel(-3,5);
Moveto(XA,YA); Lineto(XA,YA+50);
Linerel(10,0); Linerel(-60,0);Linerel(10,0);Linerel(0,100);
Moverel(40,0);Linerel(0,-100);
Circle(XA-30,YA+80,60);
end;
procedure tranzystor4(XA,YA:integer);
begin
OuttextXY(XA-5,YA+20,'A');
Moveto(XA,YA);
pieslice(XA,YA,0,360,2); Lineto(XA,YA-30);
Moverel(3,-5); Linerel(-3,5); Linerel(-3,-5);
Moveto(XA,YA); Lineto(XA,YA-60);
Linerel(10,0); Linerel(-60,0);Linerel(10,0);Linerel(0,-100);
Moverel(40,0);Linerel(0,100);
Circle(XA-30,YA-80,60);
end;
Begin
WRITELN('VVEDIT KOORDYNATY TOCHKY');
READLN(X,Y);
writeln('jaka orientacija? vpravo-1, vlivo-2, vverx-3, vnyz-4');
readln(a);
GraphDriver:=Detect;
InitGraph(GraphDriver,GraphMode,'C:\BP\BGI');
ErrorCode:=GraphResult;
if ErrorCode<> grOK then begin
Writeln('pomylka',GraphErrorMsg(ErrorCode));
Writeln('vychid'); Halt(1)
end;
case a of
1:tranzystor1(X,Y);
2:tranzystor2(X,Y);
3:tranzystor3(X,Y);
4:tranzystor4(X,Y);
end;
Readln;
CloseGraph;
End.
НАЛАГОДЖЕННЯ ТА РЕЗУЛЬТАТИ ТЕСТУВАННЯ.
Висновок: - на лабораторній роботі я засвоїв та виробив практичні навики застосування засобів графічного виводу інформації на прикладі побудови графічних позначень елементів радіоелектронних схем.