Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Разработка програмного забезпечення рішення нелінійних уравнений

РефератДопомога в написанніДізнатися вартістьмоєї роботи

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

Разработка програмного забезпечення рішення нелінійних уравнений (реферат, курсова, диплом, контрольна)

Завдання курсової проект…

…3.

Введение

… … 1. Теоретична часть…

… 1. Особливості взаємодії разноязыковых модулей…

1. Проблеми комплексирования…

2. Установка среды…

3. Узгодження типов…

4. Обмін данными…

5. Інформаційний адаптер…

… 2. Алгоритмічна часть…

… 1. Математичне рішення задачи…

… 3. Розробка структури програмного забезпечення… 3.1. Побудова структури програмного забезпечення… 3.2. Опис діалог із користувачем… … Заключние… … Список використаних джерел…. Додаток А. Лістинг програми… … Додаток Б. Результати роботи программы…

ЗАДАНИЕ.

на курсову работу.

з дисципліни: Основи технології программирования.

Тема: Розробка програмного забезпечення рішення нелінійних уравнений.

Завдання: Методом ітерацій вирішити систему рівнянь з точністю (- 2. Для зображень кривою (X12+X22)=2*(X12-X22) «Лемнискаты Бернули», скористатися полярними координатами. X2-sinX1=0.

X12+X22−1=0 (X1(0) Студент групи ИС-992: Загонів Д.В. Перелік питань, які підлягають розробці 1. Методом ітерацій вирішити систему рівнянь і можуть побудувати Лемнискату Бернули.

Объём роботи (графічні роботи, розрахунки і прочее) Курсовая робота складається з xxx сторінок, містить 4 иллюстраций,.

2 докладання, 1 таблицу Срок захисту курсової роботи 16 грудня 1998 р. Руководитель.

Э.И. Воробьёв.

підпис, ініціали, фамилия Задание прийняв студент.

Д.В. Загонов.

підпис, ініціали, фамилия.

Мова програмування Pascal, розроблений Н. Виртом ще 1970 р. в час одержав дуже широке распостранение. Цьому сприяли його простота, зручне уявлення всіх структурних конструкцій, придатність від використання як і навчальних цілях, так написання серйозних програм, високий рівень модульности, упрощающая процес прграммирования, результативність автоматичної перевірки складених програм з їхньої коректність через розвинений інститут типів даних, високе швидкодія трансляторів, ефективність об'єктних модулів. Аналізований мову програмування добре пристосований на вирішення кола завдань. Він має потужні кошти структурування данных.

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

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

1. ТЕОРЕТИЧНА ЧАСТЬ.

1. Особливості взаємодії разноязыковых модулей.

1. Проблеми комплексирования.

Розглянемо комплексування модулів, складених різними мовами програмування. Для САПР найбільш употребимы універсальні мови ассемблера, ФОРТРАН, ПЛ/1. Особливості операцій із разноязыковыми модулями можна зводити до двом группам:

1) особливості установки програмної середовища проживання і виклику модуля;

2) розбіжності у реалізації типів і структур даних, виявляються при обмін інформацією між модулями.

1.1.2. Установка среды.

При передачі управління з модуля, складеного однією мовою, в модуль, складений іншою мовою, потрібно встановлювати програмну середу, яка була сукупність програм обробки переривань і аварійних завершень, установки регістрів, містять адреси областей, використовуються протягом виконання завдання й ін. Тому, за організації виклику модулів, складених різними мовами, необхідно щоразу встановлювати середу викликаний модуля. Розглянемо процес встановлення середовища в мовами ассемблера, ФОРТРАН, ПЛ/1.

У алгоритмическом мові ФОРТРАН середовище встановлюється модулем IBCOM, які у бібліотеці компілятора. Крім установки середовища цей модуль виконує операції вводу-виводу та інших. Для програм, які містять операцій вводу-виводу і переривань, середовище може створюватися. Виклик модуля, складеного мовою ФОРТРАН, і установка середовища цієї мови представляють собою різні, самостійні действия.

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

Для модулів, написаних мовою ассемблера, компілятор середовища не створює. Щоб якось забезпечити нормальне функціонування програми для обробки програмних переривань і аварійних ситуацій, користувач повинен сам включити до своєї програми відповідні кошти, наприклад макрокоманди SPIE, STAE, ABEND та інших. Механізм завдання середовища визначається також користувачем, розташованого будь-де вихідного модуля макрокоманди завдання среды.

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

Кошти передачі управління алгоритмічних мов продекламовано в таблиці. /1/ |Алгоритмиче-ские |Характеристика коштів передачі управління | |мови | | | |Засіб |Етап сполуки |Тип завантаження | |ПЛ/1 |CALL |Компіляція |Попередньо | | | |Редагування |На запит | |Ассемблера |ATACH | | | | |LINK |Виконання | | | |FETCH | | | | |XCTL | | | | |CALL |Компіляція |Попередньо | | | |Редагування |На запит | |ФОРТРАН |CALL |Компіляція |Попередньо | | |Виклик | | | | |Функції |Редагування |За запитом |.

1.1.3. Узгодження типов.

Різні мови програмування мають різними наборами типів даних. Можливі відносини між типами даних наведено ниже.

До еквівалентним типам даних ставляться типи даних, котрим внутрішнє уявлення, сгенерированное компиляторами, идентично.

До косвенно-эквивалентным типам даних ставляться типи даних, для немає еквівалентного описи, але з допомогою наявних мовних коштів на свою можна совместить.

До неэквивалентным типам даних відносять дані, які неможливо звести друг до друга з допомогою наявних мовних средств.

Аналізовані алгоритмічні мови різняться як типами, а також завданнями довжини окремих елементів даних. Довжина элеметов даних може указуватися явно чи неявно (за умовчанням). З іншого боку, необхідно відзначити такі організаційні особливості кожного языка:

1) зворотне розташування масивів (у мові ФОРТРАН масив міститься у пам’яті по столбцам, а мові ПЛ/1 — по строкам);

2) наявність інформаційного вектора для змінних у мові ПЛ/1 [що у мові ПЛ/1 пам’ять під дані може виділятися динамічно, компілятор генерує інформаційний вектор, який містить інформацію про змінних, рядках і масивах (адресу, довжина, кількість елементів тощо.)] і має різний вид щодо різноманітних структур данных;

3) вирівнювання полів, що визначається тим, що компілятор має дані відповідно до описами, вирівнюючи їх, якщо необхідно, до кордонів слів і півслів. /1/.

1.1.4. Обмін данными.

Найбільш поширений спосіб обміну даних із допомогою операторів CALL і LINK. У цьому здійснюється формування списку переданих даних, і списку їх адрес. Адреса списку адрес передається спричиненої програмі через регістр 1.

Іншим поширеним способом обміну даними є використання загальних областей — статично распределеных ділянок пам’яті, до яких може звертатися будь-який модуль незалежно від цього, якою мовою він написаний. Пам’ять під загальну область відводить редактор зв’язків під час створення завантажувальної програми з сукупності загальних областей окремих модулів. Кожен із аналізованих мов має кошти на описи загальних областей: у мові ФОРТРАН — оператор COMMON, у мові ПЛ/1 — оператор STATIC EXTERNAL, у мові ассемблера — оператор COM. /1/.

1.1.5. Інформаційний адаптер

З урахуванням вешеизложенного реалізації універсального інформаційного інтерфейсу необходимо:

1) зробити контроль наявності вихідних даних кожному за окремого модуля;

2) поставити відсутні вихідні данные;

3) перевірити відповідність типів, структур і послідовності даних аналогічним характеристикам даних, що у викликуваному модуле;

4) перетворити дані у разі невідповідності типов;

5) забезпечити передачу даних викликуваному модулю в відповідність до типом обмена;

6) організувати середу, котру визначаємо мовою програмування модуля;

7) перевірити резулбтаты;

8) виконати зворотне преобразоавание даних в вид, ухвалений для зберігання проміжних результатов;

9) зберегти результати своєї роботи модуля задля її подальшого использования;

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

МВ — модулі формування; МВв — модулі введення; ТОНД — таблиця описателей наборів даних; ТЕ — таблиця описателей модулів; ПУС — програма установки середовища; ТОВх — таблиця описателей входів; МВыв — модулі виведення; ГО — області обмена;

Малюнок 1.1 — Інформаційне забезпечення програмного адаптера.

Таблиця описателей модулів містить: ім'я модуля; ідентифікатор мови програмування; ознака типу обміну, прийнятий у модулі (параметри, загальні області, набори даних); кількість параметрів; ім'я описателей входів модуля; ім'я області обміну; ім'я описателя набору данных.

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

Таблиця описателей наборів даних містить: ім'я набору; ім'я DDпропозиції; тип організації; метод доступу; формат й довжину блоку; атрибути записи.

Задля більшої наступності даних слід передбачити область пам’яті, куди занотовувалися б ті результати своєї роботи кожного модуля, які беруть участь у подальших розрахунках. Цією мети служить область обміну — пам’ять, виділена для проміжних результатів, переданих від модуля до модулю. У неї заносяться вихідні дані на першому модуля, результати обчислень, відсутні дані для проміжних модулей.

Для організації області обміну необходимо:

1) здійснити аналіз даних, які циркулювати серед програмного комплексу у складі САПР з метою визначення однакових по змісту переменных;

2) всім однаковим за змістом змінним привласнити один і той ж ім'я, що відбиває семантику цих змінних (глобальні переменные);

3) кожної перемінної, трапляється лише одне раз, привласнити унікальне ім'я, що відбиває семантику величини (локальні переменные);

4) кожної глобальної і локальної перемінної експортувати відповідність тип і структуру, є найбільш информативными;

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

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

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

Банки даних нині знаходять дедалі ширше застосування в організацію межмодульного інтерфейсу. Їх використання найбільш ефективно, коли сукупність модулів програмного забезпечення зафіксована й незаперечна змін у подальшому. І тут необхідно скласти логічний схему для всієї галузі обміну, у якій було б вказані найменування змінних, їх взаємозв'язки, тип уявлення. Звернення з програмних модулів щоб одержати значень необхідних змінних мало виконуватися з допомогою операторів взаємодії з СУБД. Застосування банків даних з метою організації інформаційного обміну скорочувало тривалість розробки інформаційного та програмного забезпечення САПР. /1/.

2. АЛГОРИТМІЧНА ЧАСТЬ.

2.1. Математичне рішення задачи.

Нехай дано два рівняння з цими двома неизвестными.

F1(x, у)=0, (1).

F2(x, у)=0 справжні коріння яких знайти із заданою ступенем точности.

Ми припустимо, що систему (1) допускає лише ізольовані коріння. Кількість цих коренів та його грубо наближені значення можна встановити, побудувавши криві F1(x, у)=0; F2(x, у)=0 і визначивши координати їх точок пересечения.

Нехай х=x0; у=y0-приближенные значення коренів системи (1), отримані графічно чи якимось інакше (наприклад, грубої прикидкой).

Дамо итерационный процес, який за відомих умовах уточнити дані наближені значення коренів. І тому уявімо систему (1) як x=(1(x, y), y=(2(x, y).

и побудуємо послідовні наближення за такими формулам:

x1=(1(x0,y0); y1=(2(x0,y0);

x2=(1(x1,y1); y1=(2(x1,y1);

(3).

xn+1=(1(xn, yn); yn+1=(2(xn, yn).

Якщо итерационный процес (3) сходиться, т. е. існують пределы.

(=lim xn і (=lim yn,.

n ((n ((.

то, припускаючи функції (1(x, y) і (2(x, y) безперервними і переходячи до межі у рівності (3) загального виду, одержимо: lim xn+1=lim (1(xn, yn).

n ((n ((lim xn+1=lim (2(xn, yn).

n ((n ((.

Звідси (=(1((,(); (=(2((,().

т. е. граничні значення (і (є корінням системи (2), а отже, і системи (1). Тому, узявши досить багато ітерацій (3), ми матимемо числа xn і yn, які відрізнятиметься від точних коренів x=(і y=(системи (1) як завгодно мало. Завдання, поставлене, таким чином, виявиться розв’язаною. Якщо итерационный процес (3) розходиться, то їм користуватися нельзя.

Теорему. нехай у деякою замкнутої околиці R {a (x (A; b (y (B}(рис.) маємо одну і лише одне пара коренів x=(і y=(системи (2). Если:1) функції (1(x, y) і (2(x, y) визначено й безупинно дифференцируемы в R; 2) початкові наближення x0, y0 всі наступні наближення xn, yn (n=1,2…) належать R; 3) в R виконані неравенства.

(((1/(x (+(((2/(x ((q1.

Показати весь текст
Заповнити форму поточною роботою