Автор работы: Пользователь скрыл имя, 29 Апреля 2013 в 01:32, курсовая работа
Теорія перетворень в кільцях багаточленів знайшла широке застосування при вирішенні задач перешкодостійкого кодування, шифрування, передачі даних сигналами з великою базою (шумоподібних сигналів - ШПС) і т.п. В цих системах інформація передається блоками (кадрами, пакетами), в зв’язку з чим кожний блок може бути представлений багаточленом (вектором) фіксованої розмірності.
Метою даного курсового проекту є розробка класу для роботи в кільці многочленів над цілими числами. Для роботи з многоченами був розроблений програмний інтерфейс. Клас Zm дозволяє реалізувати функції додавання, віднімання та множення многочленів. Щоб представити результати операції в стандартному вигляді розроблена додаткова функція приведення подібних одночленів многочлена та сортування по збільшеню.
Реферат .....................................................................................................................................
Перелік умовних позначень,символів ,скорочень та термінів...............................................
Вступ…………............................................................................................................................
1. Аналіз предметної області....................................................................................................
1.1 Математичний опис задачі.............................................................................................
1.2 Обґрунтування вибору програмних засобів…………………………………………
1.2.1 Огляд особливостей мови програмування...........................................................
1.2.2 Огляд особливостей обраного компілятору …………………………………...
1.2.3Створення візуального інтерфейсу………………………………………………
1.3 Аналіз структури стандартної бібліотеки шаблонів STL...........................................
1.4 Висновки до розділу ………………………………………………………………...
2. Рішення шодо розробки програми…………………………………………………………..
2.1 Основні рішення щодо уявлення даних системи ….………………………………...
2.2 Опис розроблених алгоритмів.....................................................................................
2.3 Основні рішення щодо модульного уявлення системи..............................................
2.4 Результати тестування програмного забезпечення.....................................................
3. Посібник програміста............................................................................................................
4. Інструкція користувача.........................................................................................................
5. Інформаційний листок……………………………………………………………………..
6.Література...............................................................................................................................
Висновки……………………………………………
Міністерство освіти та науки України
Запорізький національний технічний університет
кафедра Програмних засобів
з/к № 06.09.4.039
Пояснювальна записка
з дисципліни «Об’єктно-орієнтоване програмування»
до курсової роботи на тему
«Клас для роботи в кільці многочленів, визначених над кільцем цілих чисел по модулю»
Розробила:
Ст. гр. ІОТ-429
Прийняв доцент
ст. викл.
асс.
2011
Запорізький національний технічний університет
Кафедра програмних засобів
Дисципліна Об’єктно-
Спеціальність Програмне забезпечення автоматизованих систем
Курс 2 Група ІОТ-429 Семестр III
ЗАВДАННЯ
на курсовий проект (роботу) студентові
1. Тема проекту (роботи): Клас для роботи в кільці
багаточленів, визначених над кільцем
цілих чисел по модулю _______________________
____________________
2. Термін здачі студентом закінченого
проекту (роботи):
27 грудня 2010 ______________________________
____________________
3. Вихідні дані до проекту: Реалізувати
програму на тему класс для роботи в кільці
многочленів___________________
вхідні дані:
інформація про кількість cтепенів та
коефіціентів многочлена а також число
модуля;_______________________
вихідні дані: програма повинна забезпечувати виконання наступних арифметичних операцйі: додавання,,віднімання та множення многочленів та ділення результату «по модулю»_,та виводити результат вибраних операцій у відсортурованому вигляді_______
4. ЗМІСТ розрахунково-пояснювальної записки (перелік питань, що їх належить розробити): 1 Аналіз предметної області __________________
2 Аналіз програмних засобів __________________
3 Основні рішення по реалізації компонентів системи ____________
4 Посібник програміста ______________
5 Інструкція користувача ______________
Висновки, Додаток А Технічне завдання____________
Додаток Б Інтерфейс програми ____________
Додаток В Результати роботи системи, Додаток Д Презентація__________
5. Перелік графічного матеріалу:
Слайд_ 1: Мета та завдання курсової роботи ____________
Слайд 2: Структури даних __________________
Слайд 3: Алгоритми роботи програми __________
Слайд 4: Інтерфейс користувача _______________
______________________________
6. Дата видачі завдання: 07 вересня 2010 ____________
КАЛЕНДАРНИЙ ПЛАН
№ пор. |
Назва етапів курсового проекту (роботи) |
Термін виконання етапів проекту (роботи) |
Примітка |
1. |
Аналіз індивідуального завдання. |
1-2 тиждень |
|
2. |
Аналіз програмних засобів, що будуть використовуватись в роботі. |
3-4 тиждень |
|
3. |
Аналіз структур даних,
що необхідно використати в |
4-5 тиждень |
|
4. |
Вивчення можливостей програмної реалізації структур даних та інтерфейсу користувача. |
5-6 тиждень |
|
5. |
Оформлення відповідних пунктів пояснювальної записки. |
6-7 тиждень |
розділи 1,2 ПЗ |
6. |
Проміжний модульний контроль |
8 тиждень |
|
7. |
Аналіз вимог до апаратних засобів |
9 тиждень |
|
8. |
Розробка програмного забезпечення |
10-15 тиждень |
|
9. |
Оформлення, відповідних пунктів пояснювальної записки. |
15-17 тиждень |
розділи 3,4,5 ПЗ |
10. |
Захист курсової роботи. |
18 тиждень |
|
Студент__________________
Керівник __________________ ________
“____” _______________ 2010 р.
Реферат
ПЗ:ст., рис.,джерела
Мета роботи: Створити клас для роботи в кільці многочленів над Zm.
В даній роботі реалізована задача виконання арифметичних операцій з многочленами в кільці. Був здійснений математичний опис задачі, розроблені алгоритми її реалізації та здійснена сама реалізація на одній з версій алгоритмічної мови С#. Розроблено клас Zm для вирішення обробки операцій cкладання, віднімання, множення, над многочленами цілих чисел по модулю у кільці. Розглянуто особливості Visual Studio 2008.
КЛАС,КІЛЬЦЕ,МНОГОЧЛЕН, .NET Framework,ШАБЛОН,МОДУЛЬ
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ,
СКОРОЧЕНЬ І ТЕРМІНІВ
VS - Visual Studio 2008
ПЗ - Прогрограмні засоби
STL - Standart Template Library
CLR - Common Language Runtime
Zm - Кільце цілих чисел по модулю
ЗМІСТ
Реферат .............................. Перелік
умовних позначень,символів ,скорочень
та термінів...................... Вступ…………..................... 1. Аналіз
предметної області............ 1.1 Математичний
опис задачі................... 1.2 Обґрунтування вибору програмних засобів………………………………………… 1.2.1 Огляд особливостей мови
програмування................. 1.2.2 Огляд особливостей обраного компілятору …………………………………... 1.2.3Створення
візуального інтерфейсу…………………… 1.3 Аналіз структури стандартної
бібліотеки шаблонів STL........................... 1.4 Висновки до розділу ………………………………………………………………... 2. Рішення
шодо розробки програми…………………… 2.1 Основні рішення щодо уявлення даних системи ….………………………………...
2.2 Опис розроблених алгоритмів....................
2.3 Основні рішення щодо модульного
уявлення системи....................... 2.4 Результати
тестування програмного забезпечення.................. 3. Посібник програміста................... 4. Інструкція користувача................... 5. Інформаційний листок……………………………………………………………… 6.Література.................. Висновки………………………………………………………… Додаток А Технічне завдання………………………………………………………… Додаток Б Текст програми…………………………………… Додаток В Інтерфейс програми………………………… Додаток Д Результати роботи системи…………………………………………………….. Додаток Е Презентація до курсової роботи………………………………………………... 55
|
6 7 9 10 10 11 11 15 16 18 21 22 22 23 32 32 34 37 38 39 40 41 44 51 52 53 |
Вступ
Теорія перетворень в кільцях багаточленів знайшла широке застосування при вирішенні задач перешкодостійкого кодування, шифрування, передачі даних сигналами з великою базою (шумоподібних сигналів - ШПС) і т.п. В цих системах інформація передається блоками (кадрами, пакетами), в зв’язку з чим кожний блок може бути представлений багаточленом (вектором) фіксованої розмірності.
Метою даного курсового проекту є розробка класу для роботи в кільці многочленів над цілими числами. Для роботи з многоченами був розроблений програмний інтерфейс. Клас Zm дозволяє реалізувати функції додавання, віднімання та множення многочленів. Щоб представити результати операції в стандартному вигляді розроблена додаткова функція приведення подібних одночленів многочлена та сортування по збільшеню.
У роботі необхідно виконати наступні завдання: проаналізувати предметну область, розробити програму, створити візуальний інтерфейс, провести тестування.
Програмний продукт розроблений на мові програмування С# в середовищі програмного засобу Microsoft Visual Studio 2008 і повинен працювати під OC Windows XP/2000/…”
1 АНАЛІЗ ПЕРЕДМЕТНОЇ ОБЛАСТІ
1.1 Математичний опис задачі
В математиці, многочленом чи поліномом або багаточленом однієї змінної називається вираз вигляду
де ci є постійними коефіцієнтами (константами), а x — змінна.
Наприклад, 12 + 3.1x + 2x6, та 1 + x + x2 + x3, є многочленами, але та не є многочленами.
Многочленом від декількох змінних називається скінченна сума, в якій кожен з доданків є добутком скінченного числа цілих ступенів змінних та константи:
Многочлени є одним з
Загалом многочлени можна трактувати як масиви чисел (елементів поля).Довільний елемент поля (скаляр) може трактуватися як многочлен нульового степеня.На множині многочленів введено відношення рівності та операції додавання і множення. Два многочлени будуть вважатися рівними, якщо рівні їх коефіцієнти ai при однакових степенях невідомого.
Сумою двох многочленiв вважається многочлен, коефіцієнти якого одержуємо додаванням коефіцієнтів многочленів-доданків при однакових степенях x. Якщо степені многочленiв різні, коефіцієнти при степенях невідомого у тому многочлені, який має нижчий ступінь, вважаються нулями, що відповідає означенню
Сума многочленів є многочленом. Степінь суми многочленів менше або дорівнює максимуму степенів доданків.
Добуток многочленів є многочленом. Степінь добутку многочленів дорівнює сумі степенів співмножників.
Віднімання многочленів є многочленом. Степінь суми многочленів менше або дорівнює максимуму степенів доданків.
Многочлени над довільним полем утворюють кільце.Многочлени над полем дійсних чисел утворюють кільце, а не поле, тому загалом говорити про ділення многочлена на многочлен нема сенсу. Натомість можна ввести операцію ділення з остачею (по модулю): для двох многочленів f(x) та g(x) знаходження таких многочленів u(x) та v(x), що f(x)=g(x)u(x)+v(x), причому степінь остачі v(x) менший від ступеня дільника g(x). Загалом степені f(x) i g(x) можуть бути довільні.
Додавання за модулем 2, логічне додавання, що виключає або, сувора диз'юнкція - булева функція і логічна операція. Результат виконання операції є істинним тільки за умови, якщо є істинним в точності один з аргументів. Така операція природним чином виникає в кільці лишків за модулем 2, звідки і походить назва операції.
У теорії множин додаванню за модулем 2 відповідає операція симетричної різниці двох множин.
1.2.1 Огляд особливостей мови програмування
Оскільки C# прийшов з с подібних мов програмування він має деякі особливості що дозволяють початківцям набувати майстерності в програмуванні на даній мові швидше ніж на С чи С++ подібно до Java, дані мова програмування є обєктно орієнтована, з наявними бібліотеками класів і супутніми засобами як то поліморфізм та інше. Ці особливості в поєднанні з її потужними засобами розробки, мультиплатформенністю, роблять C# хорошим вибором для швидкої розробки різноманітних програмних продуктів, великими і малими группами розробників, інтернет додатки та інші проекти створені з її допомогою задовільнають найстрогішим вимогам по надійності.
Більша чатина засобів C# (як і інші .NET мови програмування), прийшла з.NET Framework API, що забезпечує безліч бібліотек класів, включно з засобами кодування, засоби для роботи з TCP/IP, та графікою. Саме тому розробники можуть писати частину програми на C# а іншу частину на іншій .NET платформі(. VB .NET). Через те що C# дуже схожа на сімю C подібних мов, так само як і Java, розробник з навиками роботи в інших середовищах обєктно орієнтованого програмуввання типу C++ чи інші може інтуітивно розібратися з розробкою програм в C#. Первинна ідея Microsoft's була створити конкурента Java, під назвою J++ але цей план було закинуто на корист розробки C#. Реліз C# 2.0 відбувся в кінці 2005року як чатина середовища розробки програмного забезпечення, Visual Studio 2005.