Смекни!
smekni.com

Доведення теоретико-математичних тотожностей і тверджень (стр. 2 из 5)

Розробити алгоритм та написати програму обчислення множини:

Проектування рішення задачі

Проект рішення задачі представляється в формі принципової блок-схеми.


Обчислення:
= M4Вхід: M1,M3Вихід: M4

Мал.1.Принципова блок-схема обчислення множин

Примітка:При розробці алгоритму даної задачі ми вводимо множини А, В, D вже в упорядкованому вигляді, але ми нижче приводимо опис методу впорядкування множин методом простого включення.

2.3. Організація структури прграми

Для обчислення операцій

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

Представимо структуру програми у вигляді наступної блок-схеми (для програми обрано модульний принцип організації програми):


Процедура RIZ

Мал.2.Принципова блок-схема програми

У програмі вирішення даної задачі ми використовуємо наступні процедури:

1. SYS- призначена для сортування цілих додаткових чисел;

2. ОBED- призначена для організації виконання операцій об’єднання двох відсортуваних множин;

3. PERET- призначена для організації виконання операцій перетину двох відсортуваних множин;

4. RIZ- призначена для організації виконання операцій різниці двох відсортуваних множин.

2.5.Опис процедур

2.5.1. Опис процедури SYS.

2.5.1.1. Постановка задачі.

Задана послідовність чисел A = {aі, а2, а3, … ,аn }.

Необхідно упорядкувати її елементи по зростанню,тобто створити послідовність чисел В={

}, такий, щоб
,
.

Задачу вирішимо методом простого виключення.

2.5.1.2. Математична модель

Як математичну модель представимо логічну схему роботи методом простого включення. Описуємо суть методу.

Побудуємо таблицю з 3 стовбців:

1-й стовбець предначений для вказування ітерацій методу.

2-й —для несортованої послідовності (А).

3-й —для відсортованої послідовності (В).

На першому кроці ітерацій 1-й елемент з А вставляється в В, потім цей елемент видаляється з А. Далі на кожному кроці ітерацій 1-й елемент з поточної невідсортованої послідовності А вставляється в відповідне йому місце відсортованої послідовності В; потім він удаляєть з послідовності А. Покажемо роботу методу простого виключення на прикладі:

А=

.
і Невідсортований список,(А) Відсортований список,(В)
0 7, 2, 21, 17, 6, 1, 13, 5, 8.
1 2, 21, 17, 6, 1, 13, 5, 8. 7
2 21, 17, 6, 1, 13, 5, 8. 2, 7
3 17, 6, 1, 13, 5, 8. 2, 7, 21
4 6, 1, 13, 5, 8. 2, 7, 17, 21
5 1, 13, 5, 8. 2, 6, 7, 17, 21
6 13, 5, 8. 1, 2, 6, 7, 17, 21
7 5, 8. 1, 2, 6, 7,13, 17, 21
8 8. 1, 2, 5, 6, 7,13, 17, 21
9 1, 2, 5, 6, 7, 8, 13, 17, 21

2.5.1.3. Алгоритм рішення задачі.

Алгоритм процедури SYS.

Алгоритм призначений для впорядкування чисел методом простого виключення.

Вхід: А- масив невідсортуваних даних;

n- кількість елементів масиву.

Вихід: В- масив відсортуваних даних.

Трудоємність алгоритма

.

Крок 1: Визначити перші два елемента масива В.

Крок 2: Організувати цикл по

,
.

Крок 3: Провірити умови

Якщо умова виконується, то
.

Перехід на крок 6.

Крок 4: Організувати цикл по

, де
(для індексації решти елементів масива В).

Крок 5: Провірити умови

. Якщо вона виконується, то елементи масива В зміщуються на один розряд вправо з
до
. Присвоїти
.

Крок 6: Завершення циклу по

.

Крок 7:Кінець.

2.5.1.4. Блок-схема.


так

ні

так

Мал.3. Блок-схема процедури SYS.

2.5.2. Опис процедури OBED.

2.5.2.1. Постановка задачі.

Задані дві множини A={а

,..,а
}, В={b
,b
,..,b
}.

Потрібно отримати множину С=А

В.

2.5.2.2. Математична модель

Об’єднання визначається наступним чином

.

2.5.2.3. Алгоритм рішення задачі.

Алгоритм вирішення задачі базується на методі злиття двох множин. Приведемо загальний опис вирішення алгоритму задачі.

1

2

3

4

Блок 1:використовуємо ProcedureSYS ,яка описана в лабораторній pоботі №1.

Блок 2,3: не відсортовані масиви; відсортовані масиви.

Блок 4: алгоритм OBED

Алгоритм OBED:

Призначений для обєднання двох відсортованих множин А і В з використанням методу злиття.

Крок1. Присвоїти

, j=1,
;

Крок2. Перевірити умову

: якщо так, то: к=к+1,с
=
,і=і+1;

Крок3. Перевірити умову

; якщо так, то перехід на крок 2;

інакше: записати в кінці масиву С елементи масиву В,

які залишились нерозглянуті; кінець.

Якщо

,то перехід на крок 4;

Крок4. Перевірити

;якщо так, то: к=к+1, с
=b
,j=j+1

Крок5. Перевірити умову j

; якщо так, то перехід на крок 2;