Обробка матриць

Аналіз технічного завдання та постановка задачі проектування. Розробка алгоритму програми та інтерфейсу користувача. Опис змінних, об'єктів та процедур VIVOD, SOR_UB, SORT_VOZR та ін Опис сервісних процедур та інструкція оператору.

масиву

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

Студенти, аспіранти, молоді вчені, які використовують базу знань у своєму навчанні та роботі, будуть вам дуже вдячні.

Розміщено наhttp://www.allbest.ru/

Розміщено наhttp://www.allbest.ru/

Східноукраїнськийий національний університет імені Володимира Даля (м. Сєвєродонецьк)

Кафедра комп'ютерної інженерії

Пояснювальна записка до курсової роботи

За дисципліною: «Програмування»

На тему: "Обробка матриць"

  • Реферат
  • Вступ
  • 1. Аналіз технічного завдання та постановка задачі проектування
  • 2. Розробка алгоритму програми
  • 3. Розробка програми та інтерфейсу користувача
  • 3.1 Опис змінних та об'єктів
  • 3.2 Опис процедури mnMatrClick
  • 3.3 Опис процедури mnMassClick
  • 3.4 Опис процедури VIVOD
  • 3.5 Опис процедури SORT_UB
  • 3.6 Опис процедури SORT_VOZR
  • 3.7 Опис сервісних процедур
  • 4. Інструкція оператору
  • Висновки
  • Перелік посилань
  • Програми
  • Мета роботи: розробити програму обробки матриць з кодом на мові Free Pascal, для введення та виведення даних використовувати компоненти Lazarus IDE. проектування алгоритм програма оператор

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

    Програма розроблена з використанням середовища візуального програмування IDE Lazarus та мови Free Pascal.

    Цей курсовий проект був розроблений у середовищі Lazarus IDE v0.9.28 з базовою мовою програмування Free Pascal. Серед безлічі мов Pascal є найбільш універсальною мовою, що легко вивчається. У цьому його зручно використовуватиме створення складних додатків, базами даних, докладання масштабу підприємства. FreePascal Lazarus також простий у навчанні, як і Visual Basic, але при цьому засоби мови програмування Pascal дозволяє використовувати всі сучасні можливості об'єктно-орієнтованого програмування.

    Мета роботи полягає в тому, щоб правильно скласти алгоритм поставленого завдання з обробки матриці, розробити та налагодити програму, що реалізує розроблений алгоритм.

    1. Аналіз технічного завдання та постановка задачі проектування

    Дано числову матрицю 8*10. Створити одновимірні масиви А і В, що складаються з елементів обмежених контурами: 1,1 -1,2 -3,2 - 3,5 - 5,5 - 5,1 - 1,1 та 1,10 - 2,9 - 3 ,8 – 4,7 –5,8 – 6,9 – 7,10 – 1,10. Знайти min масиву А та останній негативний елементмасиву В: вони ділять А та В на 2 частини. Створити нові масиви С1 та С2, з'єднавши, відповідно, першу частину масиву А з другої масиву, і навпаки. Відсортувати С1 за спаданням, С2 за зростанням методом вибору.

    Оскільки ця програма є додатком Windows, то її реалізації логічно використовувати стандартний підхід під час написання програм під Windows з допомогою графічного інтерфейсу, тобто створюється форма з візуальними компонентами і передається управління операційній системі. Далі, як тільки відбувається подія, яка може стосуватися цієї програми (клацання миші, натискання на кнопку або пункт меню), операційна система надсилає додатку відповідне повідомлення, і запускається відповідний обробник саме для цієї події. Тобто розв'язання задачі розбивається на 3 етапи:

    1) Розробка екранних форм програми, що розробляється, призначених для введення і виведення даних. Екранні форми використовуються як для введення-виведення даних, безпосередньо необхідних для вирішення поставленого завдання, так і відомості про розробника та завдання курсового проекту.

    2) Розробка обробників подій від елементів екранних форм, розробка алгоритмів та програмних кодів дій відповідно до завдання.

    3) Підготовка тестових вихідних даних та налагодження програми.

    На першому етапі доцільно виконати розробку таким чином, щоб вихідні дані мали наочне уявлення і мали зручність введення, тобто користувач повинен зробити якнайменше дій. Також було б корисно мати засіб виведення інформації про розробника програми та призначення програми (завдання курсового проекту).

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

    Процедури і функції можуть викликати процедури і функції нижчого рівня тощо. Таким чином кожна модульна програма має ієрархічну структуру.

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

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

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

    - Можливість автоматичного заповнення вихідної матриці розміром 8 на 10 довільними цілими числами;

    - Можливість інтерактивного редагування вмісту матриці після автозаповнення;

    - виведення відомостей про програму (завдання курсової роботи, розробника);

    - формування масивів А та В відповідно до завдання з елементів матриці, а також їх відображення на екранній формі;

    - знаходження мінімального елемента масиву А та останнього негативного елемента масиву;

    - формування масиву С1 з першої частини масиву А і другої частини, масиву С2 з другої частини масиву А і першої частини В, виведення масивів С1 і С2 на екран;

    - сортування масиву С1 за спаданням та С2 за зростанням методом вибору та відображення отриманих масивів на екранній формі.

    2. Розробка алгоритму програми

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

    - поле ColCount (число стовпців у таблиці) встановимо рівним 10;

    - поле RowCount (число рядків у таблиці) встановимо рівним 8;

    - FixedCols (кількість фіксованих стовпців) і FixedRows (кількість фіксованих рядків) встановимо рівними 0.

    Для можливості редагування вмісту таблиці користувачем прапором goEditing поля Options встановимо рівним true [1].

    Для виведення результатів роботи, а саме масивів А і В, початкових масивів С1, С2 та їх відсортованих версій, знайденого мінімального елемента масиву А і останнього негативного елемента масиву В передбачимо візуальний компонент типу TMemo, який дозволяє виводити текстову інформацію. ОскількиЗавдання полягає в обробці чисел (сортування, знаходження мінімального), то доцільно візуальні компоненти використовувати тільки для виведення даних, а всі дії виконувати з внутрішніми масивами цілих чисел. Тому потрібно передбачити окремі процедури перенесення інформації з візуальних компонентів у внутрішні масиви і навпаки.

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

    1) виведення інформації про розробника та завдання курсового проекту;

    2) автоматичне формування вихідних даних та заповнення матриці випадковими числами;

    3) формування масивів А і В як елементів усередині контурів матриці, знаходження в масиві А мінімуму і останнього негативного елемента в масиві, і формування масивів С1 і С2, сортування масивів С1, С2 та їх виведення на форму;

    4) виведення вмісту масиву на форму об'єкт типу TMemo;

    5) модуль сортування за зменшенням методом вибору;

    6) модуль сортування за зростанням методом вибору.

    Кожен із вищенаведених модулів реалізуємо за допомогою процедури. Для запуску окремих модулів передбачимо меню, навіщо помістимо на форму об'єкт типу TMainMenu.

    Запуск модулів 1, 2, 3 буде здійснюватись при натисканні на відповідні пункти меню. У тілі оброблювача модуля 3 інформація з візуального компонента матриці буде переноситися у внутрішній двовимірний масив, формуватимуться масиви А і як елементи відповідних контурів матриці. Потім визначається мінімальний елемент масиву А і останній негативний масиву, виводяться самі ці елементи та їх індекси в масивах. Потім, формуються масиви С1 і С2, згідно з завданням, як відповідно перша частина А і друга В інавпаки. Для виведення отриманих масивів буде використано модуль 4, який реалізуємо як окрему процедуру з ім'ям Vivod. Потім виконується сортування масиву за допомогою модуля 5, а масиву за допомогою модуля 6.

    З огляду на все вище сказане складемо узагальнений алгоритм додатка, який представлений у додатку на малюнку A.1. На алгоритмі наведено основні події екранної форми та обробники цих подій.

    Детальний опис розробленої програми, алгоритмів обробників та їх програмної реалізації наведено у наступних розділах.

    3. Розробка програми та інтерфейсу користувача

    3.1 Опис змінних та об'єктів

    У програмі використовуються деякі глобальні змінні, їх призначення наведено у таблиці 3.1

    Таблиця 3.1 - Опис змінних програм