Здавалка
Главная | Обратная связь

Індивідуальні завдання.



Скласти алгоритм i програму розв’язання задач, використовуючи лише процедури і функції текстового режиму

 

1. Написати програму переміщення символу по екрану при натисканні клавіш керування курсором.

 

2. Намалювати 15 білих і 15 чорних вертикальних смуг, що чергуються. Здійснити імітацію їхнього руху.

 

3. Написати програму «більярд»: уведений користувачем довільний символ, після натискання клавіші Enter, повинен рухатися по горизонталі екрана, відбиваючись від його границь.

 

4. Намалювати вікно. При натисканні на клавішу Enter здійснити переміщення вікна по екрані в горизонтальному напрямку.

 

5. Написати програму яка б виводила латинські символи в довільному порядку випадковими кольорами в межах усього екрана.

 

6. Намалювати вікно в центрі екрана. Здійснити зміну розмірів вікна при натисканні на клавішу Enter.

 

7. Ввести довільний символ із клавіатури. Здійснити переміщення цього символу по спіралі починаючи з лівого верхнього кута екрана.

 

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

 

9. Увести довільний рядок із клавіатури. При натисканні на клавішу Enter здійснити рух цього рядка по діагоналі екрана, змінюючи при цьому колір цього рядка від 0 до 15.

 

10. Увести довільний символ у центрі екрана. При натисканні на клавішу Enter здійснити рух цього символу по колу радіусом 4.

 

11. Написати програму «піаніно»: при натисканні на клавіші С, D, E, F, G, A, H програма повинна видавати відповідно звуки «До», «Ре», «Мі», «Фа», «Соль», «Ля», «Сі» 1-й октави. При написанні програми використати формулу для генерації частот відповідних нот:

де

Hz - змінна типу Word, частота ноти в Гц;

Okt - змінна типу Integer, приймає значення від -3 до 4;

Nota - змінна типу Byte, приймає значення від 1 до 12.

 

12. Написати програму, що при натисканні клавіші друкувала символ і видавала при цьому звуковий сигнал різної частоти і різної тривалості.

 

13. Вивести різними кольорами посимвольно вміст довільного текстового файлу на екран.

 

14. Увести довільний символ із клавіатури в центрі екрана. При натисканні на клавішу Enter здійснити переміщення цього символу одночасно по двох діагоналях у напрямку від центра екрана до його кутів.

 

15. Увести довільний рядок із клавіатури. Використовуючи змінну TextAttr вивести уведений рядок посимвольно яскравими символами на чорному тлі.

 

16. Написати програму яка б друкувала символи на екрані починаючи з верхнього правого кута в напрямку зверху вниз (імітувати перевернений монітор праворуч ліворуч).

 

17. Увести довільний символ із клавіатури. Здійснити переміщення цього символу по лівій спіралі починаючи із центра екрану.

 

18. Написати програму «більярд»: уведений користувачем довільний символ, після натискання клавіші Enter, повинен рухатися по вертикалі екрана, відбиваючись від його границь.

 

19. Використовуючи формулу для генерації звуків у завданні №11 написати програму «піаніно» у повному обсязі, тобто реалізувати звучання всіх нот у межах однієї октави. При цьому передбачити можливість зміни октави і тривалості, а також відображення на екрані монітора номера октави і назви ноти.

 

20. Написати програму яка б друкувала символи на екрані починаючи з нижнього лівого кута в напрямку знизу нагору (імітувати перевернений монітор ліворуч праворуч).

 

21. За допомогою процедури Window намалювати шахівницю розміром на весь екран.

 

22. Здійснити заповнення екрана квадратними вікнами кольорами, що чергуються, по спіралі, починаючи з верхнього лівого кута екрана.

 

23. Здійснити заповнення екрана квадратними вікнами кольорами, що чергуються, по спіралі, починаючи з нижнього правого кута екрана.

 

24. Увести довільний символ із клавіатури. Здійснити переміщення цього символу по правій спіралі починаючи із центра екрана.

 

25. Написати програму «більярд»: уведений користувачем довільний символ, після натискання клавіші Enter, повинен рухатися по діагоналі екрана, відбиваючись від його границь.

 

26. Намалювати 4 білих і 4 чорних горизонтальних смуг, що чергуються. Здійснити імітацію їхнього руху.

 

27. Написати програму переміщення вікна довільного розміру по екрані при натисканні клавіш керування курсором.

 

28. Намалювати вікно. При натисканні на клавіші керування курсором здійснити переміщення вікна по екрані у відповідному напрямку.

 

29. Намалювати «мотрійку» з вікон різних кольорів, починаючи з найбільшого вікна (розмір екрана) і закінчуючи вікном у центрі екрана.

 

30. Намалювати «вежу» з вікон різних кольорів.

 

 


 

10. Лабораторна робота №10.
Бібліотека Graph. Графічний режим.

10.1. Графічний режим.

Графічний відеорежим – відрізняється від текстового тим, що за одиницю відображення обирається не символ, а крапка (або піксель), яка має свій колір та координати на екрані. Для роботи в графічному режимі в Турбо Паскалі створена бібліотека процедур та функцій – Graph. До складу бібліотеки входять понад п’ятдесят різноманітних процедур та функцій.

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

· Для запуску графічного драйверу в бібліотеці Graph – використовується процедура - InitGraph(Var GraphDriver, GraphMode: integer, Path: string), де GraphDriver – змінна, що визначає тип графічного драйверу, і приймає значення однієї з констант:

Const

Detect =0; {Режим авто визначення типу}

CGA =1;

MCGA =2;

EGA =3;

…….

VGA =9;

Серед яких нам можуть знадобитися Detect або VGA які підтримуються майже всіма сучасними відеоадаптерами;

GraphMode- додаткова змінна, яка визначає режим роботи графічного адаптеру, для VGA приймає наступні значення:

Const

VGALo =0; {640x200 – крапок на екрані}

VGAMed =1; {640x350 – крапок на екрані}

VGAHi =2; {640x480 – крапок на екрані}

Path- вказує шлях, де знаходиться графічний драйвер, при стандартній установці Турбо Паскалю, всі графічні драйвери знаходяться в папці TP\BGI, на диску С.

Наприклад для встановлення режиму VGА високої якості зображення, можна використати наступний код:

ProgramName_101;

UsesGraph;

Var

Diver, Mode : integer;

Begin

Diver := VGA;

Mode := VGAHi;

InitGraph(Diver, Mode, ’C:\TP\BGI’);

{…}

End.

Або скористатися можливостями автовизначення:

ProgramName_102;

UsesGraph;

Var

Diver, Mode : integer;

Begin

Diver := Detect;

InitGraph(Diver, Mode, ’C:\TP\BGI’);

{…}

End.

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

· Функція GraphResult –повертає значення типу integer, в якому закодовано результат останнього звернення до графічних процедур. Якщо не виявлено помилку, то функція поверне нуль, у випадку помилки – від’ємне число.

· По завершені роботи в графічному режимі, необхідно повернутися до текстового режиму за допомогою процедури CloseGraph.

ProgramName_103;

UsesGraph;

Var

Diver, Mode: integer;

Begin

Diver := Detect;

InitGraph(Diver, Mode, ’C:\TP\BGI’);{відкриваємо граф. режим}

 

{тепер можна працювати з графічними процедурами}

{та фукціями …}

 

CloseGraph;{закриваємо графічний режим}

End.

 

10.2. Система координат. Лінії та крапки.

Як вже згадувалося, будь-яка інформація на екрані монітора в графічному режимі є сукупністю точок – пікселей, вони вирізняються кольором, яскравістю та координатами - положенням відносно лівого верхнього кута екрана, який має координати (0, 0).

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

· Для визначення максимальних координат екрану в поточному графічному режимі використовуються функції GetMaxX і GetMaxY, які повертають максимальні значення висоти та ширини, відповідно. Наприклад для режиму VGА високої якості зображення (640x480), GetMaxX –поверне значення 639, а GetMaxY – 479(обидва значення беруться на одиницю менше, бо нумерація координат починається з 0).

 

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

· MoveTo (X, Y : integer) – переводить курсор в точку з координатами (X, Y).

· MoveRel (dX, dY : integer) – змінює поточне положення курсору на відстань рівну dX піксклям по горизонталі, та dY – по вертикалі, причому dX та dY можуть приймати, як додатні так і від’ємні значення.

· GetX, GetY –функції, які визначають поточне положення графічного курсору.

 

Процедури для відображення точок та ліній:

· PutPixel(X, Y: integer; Color : Word) – виводить крапку заданого кольору Color в точку з координатами X та Y. Параметр Color може приймати одне з значень:

Const

Black =0; {Чорний}

Blue =1; {Синій}

Green =2; {Зелений}

Cyan =3; {Синьо-зелений}

Red =4; {Червоний}

Magenta =5; {Фіолетовий}

Brown =6; {Коричньовий}

LightGray =7; {Сірий}

DarkGray =8; {Темно-сірий}

LightBlue =9; {Яскраво-синій}

LightGreen =10; {Яскраво-зелений}

LightCyan =11; {Яскраво-синьо-зелений}

LightRed =12; {Яскраво-червоний}

LightMagenta =13; {Малиновий}

Yellow =14; {Жовтий}

White =15; {Білий}

· Line (X1, Y1, X2, Y2: integer) – малює лінію від точки з координатами (X1, Y1) до точки з координатами (X2, Y2).

 

· LineTo (X, Y: integer) – малює лінію від точки в якій знаходиться курсор до точки з координатами (X, Y), і переміщує курсор в цю точку.

· LineRel (dX, dY: integer) – малює лінію від точки в якій знаходиться курсор до точки зміщеної відносно поточного положення курсору на dX та dY, та переносить курсор у цю точку.

· SetColor (Color : Word) – встановлює значення кольору, яким будуть виводитися прямі та символи.

· SetLineStyle(Type, Pattern, Thick: Word) – встановлює зовнішній вигляд ліній. Параметр Type задає тип лінії, може приймати одне з значень:

Const

SolidLn =0; {Проста лінія}

DottedLn =1; {Лінія з точок}

CenterLn =2; {Штрих-пунктирна лінія}

DashedLn =3; {Пунктирна лінія}

UserBitLn =4; {Вигляд визначається користувачем}

 

Параметр Pattern враховується тільки для ліній, вигляд яких задається користувачем. При цьому два байта параметру Pattern визначають вигляд лінії: кожен встановлений в одиницю біт, цього слова відповідає пікселю, що буде зафарбовано основним кольором, а нульовий біт – не зафарбованому пікселю.

Параметр Thick може приймати одне з двох значень:

Const

NormWidth =1; {товщина лінії – один піксель}

ThickWidth =1; { товщина лінії – три пікселі }

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

 

Приклад:

ProgramName_104;

UsesCrt, Graph;

Var

Diver, Mode : integer;

Begin

Diver := Detect;

InitGraph(Diver, Mode, ’C:\TP\BGI’);{відкриваємо граф. режим}

 

PutPixel(10, 10, Green); {малює зелену крапку}

SetColor(Red); {встановлює червоний колір}

Line(0, 0, GetMaxX, GetMaxY); {малює червоним головну діагональ екрану}

 

ReadKey; {очікує натискання клавіші}

CloseGraph; {закриваємо графічний режим}

End.

 

 

10.3. Багатокутники, дуги, кола та еліпси.

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

· Rectangle(X1, Y1, X2, Y2: integer) – малює прямокутник. Тут (X1,Y1) – координати лівого верхнього кута, (X2,Y2) – правого нижнього кута прямокутника.

· DrawPoly(N: Word, varPoints) – малює довільну ламану лінію, задану координатами точок зламу. Де N – кількість точок зламу, включаючи обидві крайні точки; Points – змінна масиву типу PointType, що містить координати точок зламу.

Координати точок зламу задаються парою значень типу Word об’єнані в один тип за допомогою оголошення:

Type

PiontType = record

x, y : Word

end;

Наприклад, розглянемо програму побудови п’ятикутника:

ProgramName_105;

UsesCrt, Graph;

Var

Diver, Mode : integer;

m : array [1..6] of PointType;

Begin

Diver := Detect;

InitGraph(Diver, Mode, ’C:\TP\BGI’);{відкриваємо граф. режим}

 

m[1].x := 40; m[1].y := 40; {точка з координатами (40,40)}

m[2].x := 50; m[2].y := 35; {точка з координатами (50,35)}

m[3].x := 60; m[3].y := 40; {точка з координатами (60,40)}

m[4].x := 55; m[4].y := 50; {точка з координатами (55,50)}

m[5].x := 45; m[5].y := 50; {точка з координатами (45,50)}

m[6].x := m[1].x; m[6].y := m[1].y; {замикаємо ламану}

 

DrawPoly(6, m); {малюємо п’ятикутник}

 

ReadKey; {очікує натискання клавіші}

CloseGraph; {закриваємо графічний режим}

End.

· Circle(X,Y: integer; R: Word) – малює коло, (X,Y) – координати центру, R – радіус кола в пікселях.

· Arc(X,Y: integer; BegA, EndA, R: Word) – малює дугу кола, тут (X,Y) – координати центру, BegA, EndA- відповідно початкового та кінцевого кута в градусах проти годинникової стрілки, R – радіус кола в пікселях.

· Ellipse(X,Y: integer; BegA, EndA, RX, RY: Word) – малює дугу еліпса, де (X,Y) – координати центру, BegA, EndA- відповідно початкового та кінцевого кута дуги, RX, RY – горизонтальний та вертикальний радіуси еліпса в пікселях.

 

10.4. Замальовування замкнених фігур.

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

· SetBkColor(Color:Word) – встановлює колір фону.

· SetFillStyle(Fill, Color:Word) – встановлює тип – Fill та колір – Color заповнення.

· Bar(X1, Y1, X2, Y2: integer) – малює, встановленими раніше, процедурою SetFillStyle кольором та стилем прямокутник. Тут (X1,Y1) – координати лівого верхнього кута, (X2,Y2) – правого нижнього кута прямокутника.

· Bar3D(X1, Y1, X2, Y2: integer;Depth: Word; Top: boolean) –малює зафарбований паралелепіпед. Тут (X1,Y1) – координати лівого верхнього кута, (X2,Y2) передньої грані; Depth – ширина бокової грані, Top- ознака вмикання верхньої грані, Top = True – верхняя грань відображається, Top = False– не відображається. При кресленні ліній використовується стиль ліній (SetLineStyle) і поточний колір (SetColor). Передня грань заповнюється стилем встановленим процедурою SetFillStyle.

· PieSlice (X, Y: integer; BegA, EndA, R: Word) – будує сектор круга, зафарбований поточним стилем та кольором заповнення, враховуючи масштаби по осям. Де (X,Y) – координати центру сектора круга, BegA – початковий кут сектору, що відраховується проти годинникової стрілки, EndA – кінцевий кут сектору, , R - радіус сектора.

· FillEllipse (X, Y, Rx, Ry) –малює заповнений еліпс, де (X,Y) – координати центру еліпса, Rx, Ry - горизонтальний і вертикальний радіуси еліпса. Еліпс обводиться линей, заданою процедурами SetLineStyle и SetColor, і заповнюється з використанням параметрів, встановлених процедурою SetFillStyle.

· Sector(X,Y: integer; BegA, EndA, RX, RY: Word) – малює зафарбований сектор еліпсу, де (X,Y) – координати центру, BegA, EndA – відповідно початкового та кінцевого кута сектора еліпсу, RX, RY – горизонтальний та вертикальний радіуси еліпса в пікселях.

· FillPoly(N:Word; varCoords)– обводить лінією і зафарбовує замкнений багатокутник. Параметри аналогічні параметрам процедури DrawPoly. Стиль та колір лінії контура задається процедурами SetLineStyle и SetColor, внутрішня область заповнюється з використанням параметрів, встановлених процедурою SetFillStyle.

· FloodFill(X,Y:integer, Border: Word) – заповнює довільну замкнену фігуру, використовуючи поточний стиль заповнення (тип та колір), встановлені процедурою SetFillStyle. Тут (X,Y) – координати будь-якої крапки всередині замкненої фігури, Border – колір граничної лінії.

10.5. Відображення тексту.

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

· OutText(Txt : string) – виводить текстовий рядок Txt, починаючи з поточного положення курсору.

· OutTextXY(X,Y : integer; Txt : string) – виводить текстовий рядок Txt, починаючи з точки з координатами (X,Y).

· SetTextStyle(Font, Direct, Size:Word) –встановлює стиль текстового виводу на екран. Font – задає номер шрифту, може приймати одне з значень:

Const

DefaultFont =0; {звичайний шрифт 8х8}

TriplexFont =1; {потроєний шрифт}

SmallFont =2; {зменшений шрифт}

SansSerifFont =3; {шрифт SansSerif}

GothicFont =4; {готичний шрифт}

 

Direct – задає напрямок відображення тексту, може приймати одне з двох значень:

Const

HorizDir =0; {зліва на право}

VertDir =1; {зверху вниз}

Size – задає код розміру шрифту.

Приклад 10.

Приклад 10.

Написати програму, що заповнювала б екран колами з довільно вибраними центрами та радіусами доти, поки не буде натиснута яка-небудь клавіша.

 

1. Для того, щоб отримати випадкове число, можна скористатися функцією Random(max: integer),яка видає псевдо випадкове число в діапазоні від нуля до max. Отже координату X – можна задати, як випадкове ціле число на проміжку [0, GetMaxX], тобто Random(GetMaxX), а Y – Random(GetMaxY), радіус же оберемо, як Random(GetMaxX div 2) – половину значення випадкового числа з проміжку [0, GetMaxX].

 

2. Розглянемо можливу програму.

Program Laba_10;

UsesCrt, Graph;

Var

Diver, Mode : integer;

Begin

Diver := Detect;

InitGraph(Diver, Mode, ’C:\TP\BGI’);{відкриваємо граф. режим}

 

Repeat

SetColor(Random(15)); {обираємо випадковий колір}

Circle(Random(GetMaxX), Random(GetMaxY),

Random(GetMaxX div 2)); {малюємо випадкове коло}

untilKeyPressed; {виконувати поки не натисли клавішу}

 

CloseGraph; {закриваємо графічний режим}

End.

 

Блок-схема програми:

10.7. Індивідуальні завдання.

 

1. Намалювати "цукерку": прямокутник із проведеними діагоналями й два рівнобедрених трикутники, що примикають до нього з боків. Лівий нижній кут прямокутника має координати (X,Y), довжина сторони A. Висоти трикутників A/2. Зафарбувати утворені діагоналями і сторонами прямокутника два протилежних трикутники.

 

2. Завдання про мильні бульки. Спочатку на екрані з'являється в довільному (випадковому) місці крапка, вона потім розростається до кола (видувається мильна булька) і зникає (лопається), видаючи звук. Коло лопається, якщо його радіус стає більшим R0 або ж воно торкається стінок (границь екрана). Цей цикл повторюється, поки не буде натиснута яка-небудь клавіша.

 

3. Написати програму, що виводила б у графічному режимі на весь екран монітора, крім прямокутника (100,100)-(300,200), випадково крапки доти, поки не буде натиснута клавіша Esc.

 

4. Намалювати вежу із трьома зубцями і аркою. Лівий нижній кут вежі має координати (X,Y), довжина основи A. Інші розміри досить довільні, але повинні бути виражені через A. Вежу зафарбувати.

 

5. Намалювати куб. Передня ліва нижня вершина куба має координати (X,Y), довжина ребра A. Зафарбувати верхню грань, а в правої грані провести діагоналі.

 

6. Намалювати пряму шестикутну піраміду. Передній лівий кут основи піраміди має координати (X,Y), довжина ребра основи A. Інші розміри досить довільні, але повинні бути виражені через A. Дві бічні грані піраміди зафарбувати.

 

7. Намалювати пряму усічену чотирикутну піраміду. Передній лівий кут основи піраміди має координати (X,Y), довжина ребра основи A, верхньої грані - A/2. Інші розміри досить довільні, але повинні бути виражені через A. Праву бічну грань піраміди зафарбувати.

 

8. Написати програму, яка б малювала зафарбовану "товсту" букву "E". Ординати і абсциси крапок, що описують букву, повинні бути описані як масив. У програмі повинен використовуватися тільки оператор LINE.

 

9. Написати програму, яка б малювала 7 зафарбованих ялинок. Ялинки повинні бути подібні один одному, розташовані уздовж горизонталі на одній висоті, висота ялинок повинна лінійно збільшуватися ліворуч праворуч.

 

10. Написати програму, що виводила б у графічному режимі на весь екран монітора, крім кола із центром (200,200) і радіусом 80, випадково крапки доти, поки не буде натиснута клавіша Esc.

 

11. Написати програму, що виводила б на весь екран монітора в графічному режимі випадково зірочки доти, поки не буде натиснута яка-небудь клавіша.

 

12. Намалювати (досить простий) автомобіль. Автомобіль повинен проїхати по екрані праворуч ліворуч.

 

13. Написати програму, яка б малювала зафарбовану ялинку.

 

14. Написати програму, що при натисканні клавіші "p" малювала б коло, при натисканні клавіші "b" малювала б прямокутник, при натисканні клавіші "f" малювала б зафарбований прямокутник, при натисканні клавіші Esc завершувала б роботу. Після малювання кожної фігури вона повинна стиратися.

 

15. Намалювати коло, не використовуючи оператор CIRCLE.

 

16. Написати програму, що виводила б у графічному режимі на весь екран монітора випадково крапки доти, поки не буде натиснута клавіша Esc.

 

17. Намалювати еліпс, не використовуючи оператор CIRCLE.
Рівняння еліпса X2/A2+Y2/B2=1

 

18. Намалювати шахівницю.

 

19. Намалювати гору цегли. На вершині гори лежить одна цегла, під нею - дві, під двома - три, під трьома - чотири й т.д. Висота гори - 10 цеглин. Гора повинна бути симетричною.

 

20. Намалювати клин лелек. Лелеки летять ліворуч праворуч. Спереду летить одна лелека, за нею - дві, за двома - три, за трьома - чотири тощо. Довжина клина -10 лелек. Малюнок лелеки може бути досить простим. Клин симетричний.

 

21. Використовуючи тільки один оператор циклу намалювати сходи з 10 щаблів, парні та непарні щаблі якої мають різні розміри.

 

22. Використовуючи один оператор циклу намалювати "спіраль Архімеда": один крок нагору, два кроки вліво, три кроки вниз, чотири кроки вправо, п'ять кроків нагору тощо.

 

23. Написати програму, що виводила б у графічному режимі на екран монітора випадково п'ятикутні зірки доти поки не буде натиснута клавіша Esc.

 

24. Написати програму, що виводить на екран зображення пучка з 20 випадкових прямих, що виходять із однієї випадкової крапки доти, поки не буде натиснута клавіша ESC.

 

25. Намалювати малий герб.

 

26. Намалювати п’ятикутну зірку, вписану в коло.

 

27. Намалювати послідовність веж. Кожна вежа являє собою поставлені один на одного квадрати (поверхи). Кожний наступний квадрат менше попереднього в 2 рази. Вежа симетрична.

 

28. Намалювати пряму усічену чотирикутну призму. Передній лівий кут основи призми має координати (X,Y), довжина ребра основи A, верхньої грані - A/2. Інші розміри досить довільні, але повинні бути виражені через A. Ліву бічну грань призми зафарбувати.

 

29. Написати програму яка б малювала "товсту" букву M, рух якої по екрані управляється клавішами ArrawLeft, ArrawRight, ArrawUp, ArrawDown.

 

30. Написати програму, що малює 4 вкладених друг у друга мотрійки. Малювання мотрійки оформити у вигляді підпрограми Matreshka(x,y,a), де x,y - координати мотрійки, a - її розмір.


Додаток

Міністерство освіти України

Національний технічний університет України

“Київський політехнічний інститут”

Кафедра автоматизації

енергосистем

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.