- •Лабораторний практикум
- •Міністерство освіти і науки україни національний університет “львівська політехніка” лабораторний практикум з дисципліни
- •0. Методичні вказівки до оформлення звітів з лабораторних робіт 6
- •1. Лабораторна робота №1
- •Передмова.
- •0.Методичні вказівки до оформлення звітів з лабораторних робіт
- •Розділ і. Базові структури алгоритмів.
- •1.Лабораторна робота №1
- •1.1Перелік питань, які необхідно вивчити.
- •1.2Завдання.
- •1.3Методичні вказівки до виконання роботи № 1.
- •1.4Приклад виконання завдання.
- •1.4.1Постановка задачі.
- •1.4.2Розробка структури даних.
- •1.4.7Висновки.
- •2.Лабораторна робота №2
- •2.1Перелік питань, які необхідно вивчити.
- •2.2Завдання.
- •2.3Приклад виконання завдання.
- •2.3.1Постановка задачі.
- •2.3.2Розробка структури даних.
- •2.3.3Розробка блок-схеми алгоритму.
- •2.3.4Перевірка блок-схеми.
- •2.3.5Запис тексту програми.
- •3.1.2Виведення даних.
- •3.2Завдання.
- •3.3Методичні вказівки до лабораторної роботи.
- •3.3.1Постановка задачі.
- •3.3.2Розробка структури даних.
- •3.3.3Розробка алгоритму.
- •3.3.4Розробка програми.
- •Розділ іі. Використання числових і символьних змінних
- •4.3Методичні вказівки до роботи.
- •4.3.1Методи переведення в двійкову систему числення.
- •4.3.1.1Метод ділення.
- •4.3.1.2Метод віднімання.
- •4.3.1.3Метод маскування або логічного множення.
- •5.Лабораторна робота №5.
- •5.1Теоретичні відомості.
- •5.1.1Відомості з математики.
- •5.1.2Відомості з програмування.
- •5.2Завдання.
- •Розділ ііі. Циклічні алгоритми
- •6.Лабораторна робота №6
- •6.1Перелік питань, які необхідно вивчити для виконання роботи.
- •6.2Завдання.
- •6.3Приклад виконання завдання.
- •6.3.1Постановка задачі.
- •6.3.2Розробка структури даних.
- •6.3.3Розробка алгоритму
- •6.3.4Текст програми.
- •7.3Приклад виконання завдання.
- •7.3.1Постановка задачі.
- •7.3.2Розробка структури даних.
- •7.3.3Розробка алгоритму
- •7.3.4Текст програми мовою Pascal.
- •8.3Методичні вказівки до виконання роботи.
- •8.3.1Постановка задачі.
- •8.3.2Розробка структури даних.
- •8.3.3Розробка алгоритму.
- •Розділ іv. Обробка і використання масивів
- •9.3Приклад виконання завдання.
- •9.3.1Постановка задачі.
- •9.3.2Розробка структури даних.
- •9.3.3Розробка алгоритму.
- •9.3.4Запис тексту програми.
- •11.1.2Програмна реалізація розріджених масивів.
- •11.1.3Метод Гауса обчислення визначника матриці довільного розміру n*n.
- •11.2Завдання.
- •11.3Приклад алгоритму обчислення детермінанту.
- •Розділ V. Методи комп’ютерної графіки
- •12.Лабораторна робота №12.
- •12.1Теоретична частина
- •12.1.1Відомості з програмування.
- •12.1.2Перелік питань, які необхідно вивчити для виконання роботи.
- •12.2Завдання до лабораторної роботи.
- •12.3Методичні вказівки до виконання роботи
- •13.Лабораторна робота №13.
- •13.1Теоретична частина.
- •13.1.1Числовий опис зображення.
- •13.1.2Перетворення координат точки при її відображеннях.
- •13.1.3Питання, які необхідно вивчити.
- •13.2Завдання.
- •13.3Методичні вказівки до виконання роботи.
- •13.3.1Постановка задачі.
- •13.3.2Розробка структури даних.
- •13.3.3Розробка алгоритму.
- •13.3.4Запис тексту програми.
- •13.3.5Налагодження та результати тестування.
- •14.Лабораторна робота №14
- •14.1Перелік питань, які необхідно вивчити для виконання роботи.
- •14.2Теоретичні відомості.
- •14.3Завдання до лабораторної роботи.
- •Розділ VI. Деякі математичні методи
- •15.Лабораторна робота №15
- •15.1Теоретична частина.
- •15.1.1Основні статистичні характеристики.
- •15.1.2Гістограма розподілу числових даних.
- •15.1.3Питання, які необхідно вивчити для виконання роботи.
- •15.2Завдання.
- •16.2Завдання.
- •16.3Методичні вказівки до виконання роботи.
- •16.3.1Постановка задачі.
- •16.3.2Розробка структури даних.
- •16.3.3Розробка алгоритму.
- •16.3.4Написання тексту програми.
- •17.1.2Системи диференційних рівнянь.
- •17.1.3Форми подання результатів.
- •17.1.4Питання, які необхідно вивчити.
- •17.2Завдання.
- •17.3Методичні вказівки до виконання роботи.
- •17.3.1Постановка задачі.
- •17.3.2Розробка структури даних.
- •17.3.3Розробка алгоритму.
- •17.3.4Написання тексту програми.
- •17.3.5НАлагодження і тестування.
- •Список літератури.
11.3Приклад алгоритму обчислення детермінанту.
При обчисленні визначника матриці методом Гауса достатньо обчислювати нові значення елементів головної діагоналі та елементів, що будуть використовуватись в наступному циклі перетворень. Тобто для деякого k достатньо обчислити нові значення елементів з індексами i>k та j>k. Це зручно реалізувати за допомогою вкладених циклів з параметром: за k, i та j. Одночасно з обчисленням елементів головної діагоналі трикутної матриці доцільно (для зменшення кількості операцій) виконувати їх перемножування та накопичення. Оскільки перетворення виконується n–1 разів, то після завершення циклу необхідно домножити змінну-накопичувач на останній елемент головної діагоналі. Приклад блок-схеми алгоритму обчислення визначника наведено на Рис. 11 .2.
В розділі “Розробка алгоритму” звіту з лабораторної роботи студент повинен навести розробку повної блок-схеми алгоритму програми. Оскільки визначник необхідно обчислити два рази, є доцільним виділення відповідного алгоритму у підпрограму.
Рис. 11.2. Блок-схема обчислення визначника матриці за методом Гауса.
Розділ V. Методи комп’ютерної графіки
12.Лабораторна робота №12.
Побудова графічних позначень елементів радіоелектронних схем
Мета роботи - засвоїти методику та виробити практичні навики застосування засобів графічного виводу інформації на прикладі побудови графічних позначень елементів радіоелектронних схем.
12.1Теоретична частина
12.1.1Відомості з програмування.
Графічне та текстове виведення інформації на екран IBM-сумістимих ЕОМ передбачає різні режими роботи апаратури, що має бути в явному вигляді вказано програмістом. Для реалізації графічного виводу при програмуванні на мовою PASCAL застосовують процедури і функції що містяться в модулі GRAPH (файл GRAPH.TPU). Перед використанням цих процедур і функцій необхідно завантажити і проініціалізувати графічний драйвер. Підтримку моніторів IBM EGA та VGA забезпечує драйвер EGAVGA.BGI.
Наступний фрагмент програми забезпечує ініціалізацію графічного режиму з автодетектуванням – автоматичним вибором графічного драйвера та його режиму такими, що забезпечуватиме графічний вивід з найбільшою якістю.
Program LabGraph;
Uses Graph; { Використовує модуль GRAPH }
Var GraphDriver,GraphMode,ErrorCode:Integer;
{ Змінні, необхідні для реалізації графічного режиму }
Begin { Виконувана частина програми }
GraphDriver:=Detect;{Визначаємо тип драйвера}
InitGraph(GraphDriver,GraphMode,'D:\TP7\BGI');{Шлях до драйвера}
ErrorCode:=GraphResult;
if ErrorCode<> grOK then begin
Writeln('Графічна помилка:',GraphErrorMsg(ErrorCode));
Writeln('Виконання програми припиняється ...'); Halt(1)
end;
{ Текст програми з використанням графічного виводу }
CloseGraph;
end.
Замість використаного в наведеному фрагменті режиму автодетектування (змінній GraphDriver присвоєно константу Detect) можна при виклику процедури ініціалізації графічного драйверу InitGraph явно задати код графічного драйвера і режиму (змінна GraphMode).
В наведеному фрагменті використані також функція повернення коду завершення графічної операції GraphResult:Integer i процедура CloseGraph, яка розвантажує графічний драйвер. Для тимчасового переходу в режим текстового виводу треба застосовувати виклик процедури RestoreCrtMode. Повернення в режим графічного виводу забезпечує виклик процедури SetGraphMode(GraphMode:Integer). При зміні режиму втрачаються зображення (текстові і графічні) і, при необхідності, програміст повинен передбачити їх збереження.
Вибраний графічний драйвер і режим визначають координатну систему графічного екрану. В режимі EGAHi (640x350 точок, 16 кольорів, 2 сторінки) екранні координати матимуть поданий на Рис. 12 .A вигляд. Точки графічного зображення часто називають пікселами ( від англійського Picture Element).
Рис. 12.A. Координатна система графічного екрану для режиму EGAHI.
Максімальну кількість пікселів по X та Y для встановленого режиму можна визначити за допомогою функцій GetMaxX,GetMaxY.
Процедура PutPixel(X, Y: Integer; Pixel: Word) виводить на екран точку заданного значенням змінної Pixel кольору.
Функція GetPixel(X,Y: Integer): Word повертає значення кольру заданої координатами X,Y точки екрану.
Ряд процедур і функцій працюють із наперед визначеними кольором переднього плану і фону, які встановлюються за допомогою процедур SetColor(Color: Word) i SetBkColor(ColorNum: Word) відповідно. Функції GetColor:Word і GetBkColor:Word дозволяють прочитати поточні значення кольору переднього плану і фону. Процедура ClearDevice очищає екран (заливає його кольором фону).
Відрізок прямої лінії будує процедура Line(x1, y1, x2, y2: Integer). Процедура Rectangle(x1, y1, x2, y2: Integer) будує незамальваний прямокутник. Замальований кольором переднього плану прямокутник будує процедура Bar(x1, y1, x2, y2: Integer). Коло із заданими центром і радіусом будує процедура Circle(X,Y: Integer; Radius: Word), дугу кола – процедура Arc(X,Y: Integer; StAngle, EndAngle, Radius: Word). Побудову дуги еліпса здійснює процедура Ellipse(X,Y:Integer; StAngle, EndAngle:Word; Xradius, YRadius:Word).
Залитий кольором переднього плану еліпс будує процедура FillEllipse(X,Y: Integer; XRadius, YRadius: Word).
Ряд процедур і функцій використовують поточний вказівник СР(Current Pointer), який функціонально подібний до курсора текстового режиму, але, на відміну від останнього, – невидимий. Функції GetX: Integer, GetY: Integer повертають значення координат СР. Встановити координати СР дозволяє процедура MoveTo(X, Y: Integer). Процедура MoveRel(Dx, Dy: Integer) змінює координати СР на Dx,Dy. Процедура LineTo(X, Y: Integer) з’єднує лінією СР з точкою (X,Y), при цьому значення X i Y заміщують попередні значення координат СР. Процедура LineRel(Dx, Dy: Integer) з’єднує лінією точку на яку вказує СР з точкою, координати якої на Dx і Dy відрізняються від СР.
Вивід текстової інформації в графічному режимі здійснюється за допомогою процедур OutText і OutTextXY. В процедурі OutTextXY(X,Y:Integer; TextString: string) положення тексту, що виводиться задається явно. Процедура OutText(TextString: string) виводить текст починаючи з позиції на яку вказує СР. Номер шрифта, орієнтація тексту і розмір символів задаються при виклику процедури SetTextStyle(Font, Direction: Word; CharSize: Word).
