
- •Кафедра Iнформатики
- •«Наука вся - лишь море заблуждений, где нету дна, а правды нет и тени»
- •«Складні проблеми завжди мають прості, легкі для розуміння невірні розв'язання» (закон Гросмана) Формалізація алгоритму
- •«Ускладнювати просто. Спрощувати складно» (закон Мейера) Алгоритмічні системи
- •... Sk0 skj1 skj2 ... Qi sjk ... Skjr-1 skjr sk0 ..., k[1;n]
- •Відлагодження алгоритму
- •«Якщо факти не підтверджують теорію, то їх треба позбутися» (Закон Майєрса) Етапи розв’язання задач на комп’ютері
- •Математична модель
- •Інформаційна модель
- •«Перед тим, як увійти, подумай, як вийти» (Китайське прислів'я) Техноогії проектування алгоритмів
- •«Створіть систему, якою зможе скористатися навіть дурень, і тільки дурень захоче нею користуватися»
- •(Принцип Шоу)
- •Блок-схема алгоритму лінійної структури
- •Алгоритм розгалуженої структури
- •Блок-схема алгоритму розгалуженої структури
- •Алгоритми циклічної структури
- •Алгоритм циклічної структури (параметр циклу змінюється з кроком у заданому сегменті)
- •Блок-схема алгоритму циклічної структури (параметр циклу змінюється з кроком у заданому сегменті)
- •Алгоритм циклічної структури (параметр циклу є елементом масиву)
- •Блок-схема алгоритму циклічної структури (параметр циклу є елементом масиву)
- •Алгоритм складної циклічної структури
- •Блок-схема алгоритму складної циклічної структури
- •Алгоритм обліку суми і добутку
- •Блок-схема алгоритму обліку суми і добутку
- •Алгоритм пошуку мінімуму і максимуму
- •Блок-схема алгоритму пошуку мінімуму і максимуму
- •Алгоритми сортування наданих
- •«Маленька практика краща за велику теорію» (закон Букера)
- •Алгоритми розв’язання інженерних задач
- •Ізоляція кореня
- •Уточнення значення кореня
- •Блок-схема алгоритму методу хорд
- •Початок циклу
- •Кінець циклу
- •Алгоритм розв’язання системи лінійних рівнянь
- •1. Прямий хiд
- •2. Зворотній хiд
- •Блок-схема алгоритму методу Гауса
- •Алгоритми розв’язання диференціального рівняння
- •Алгоритми до методу Эйлера
- •Алгоритми до методу Рунге - Кутта
- •Блок-схеми алгоритмів розв’язання диференціальних рівнянь першого порядку
- •Блок-схеми алгоритмів розв’язання диференціальних рівнянь другого порядку
- •Алгоритм обліку визначеного інтегралу
- •Алгоритм до методу Ньютона - Котеса
- •Блок-схема алгоритму обліку визначеного інтегралу методом Ньютона - Котеса Функція «Інтеграл»
- •Алгоритми апроксимації і інтерполяції функції
- •Алгоритм до методу інтерполяції поліномами Лагранжа
- •Алгоритм до методу апроксимації та інтерполяції в-сплайнами
- •Блок-схеми алгоритмів інтерполяції і апроксимації функції
- •Алгоритм статистичної обробки результатів експерименту
- •Перспективи розвитку теорії алгоритмів «Як тільки теорія стає зрозумілою всім, її пора змінювати» (закон Джексо на)
«Перед тим, як увійти, подумай, як вийти» (Китайське прислів'я) Техноогії проектування алгоритмів
Властивості алгоритму забезпечуються за рахунок застосування при розробці принципу модульної побудування алгоритму та методів: структурного, низхідного і висхідного проектування алгоритмів.
Принцип модульного побудування алгоритму полягає в розподілі алгоритму на функціонально-самостійні частини-«модулі» і організації їх взаємодії за допомогою однієї з типових архітектур:
модульно-монолітної з одним основним модулем, що виконує переважну кількість «кроків», і сукупністю підпорядкованих йому модулів, що виконують допоміжні дії:
модульно-послідовної з послідовним виконанням модулів, рівноправних по використовуваних ресурсах комп'ютера:
модульно-ієрархічної
з багатоярусним підпорядкуванням
модулів за принципом «один
предок - багато нащадків»:
модульно-хаотичної
зі зв'язками модулів за принципом
«багато
хто з багатьма»:
Основні модулі (ті, що викликають інші) і допоміжні модулі (ті, що викликаються основними) зв'язуються між собою за допомогою апарату «фактичні - формальні параметри»8 .
Фактичним параметром основного модуля називають конкретне значення, що присвоюється формальному параметрові у момент звертання з основного модуля до допоміжного. Формальним параметром допоміжного модуля називають змінну, що приймає значення фактичного параметра у момент звертання до допоміжного модуля. Допоміжний модуль може змінювати формальний параметр.
Метод структурного проектування алгоритму передбачає в модулях будь-яких рівнів архітектури алгоритму використання тільки наступних основних керуючих структур:
послідовність, тобто таку форму організації дій, яка передбачає виконання дій одна за одною:
Алгоритм, який містить тільки керуючі структури «послідовність», називається лінійним.
рівнобіжність,
тобто таку форму організації дій, яка
передбачає після виконання деякого
«кроку»
алгоритму одночасне і незалежне виконання
декількох послідовностей дій
(«каналів»):
злиття, тобто таку форму організації дій, при якій після виконання деякого кроку декілька каналів об'єднуються в один:
Алгоритм, який містить хоча б одну керуючу структуру «рівнобіжність» чи «злиття», називається рівнобіжним, або ж алгоритмом реального часу.
переключення, тобто таку форму організації дій, при якій в залежності від виконання деякого «умови» відбувається або та, або інша послідовність дій:
Алгоритм, що містить хоча б одну керуючу структуру «переключення», називається розгалуженим.
цикл, тобто таку форму організації дій, при якій деяка послідовність дій (тіло циклу) може відбуватися багаторазово, поки деяка «умова» приймає значення «істина» («Так»):
Алгоритм, що містить хоча б одну керуючу структуру «цикл», називається циклічним. Якщо «умова» перевіряється до виконання «тіла циклу», то алгоритм називається циклічним із передумовою. Якщо «умова» перевіряється після виконання «тіла циклу», то алгоритм називається циклічним із післяумовою.
Алгоритм із вкладеними друг у друга керуючими структурами «цикл» називається складним циклічним. Однократне виконання «тіла циклу» називається ітерацією. Змінна, область значень якої визначає кількість ітерацій, називається параметром циклу.
Алгоритм, що містить не менше двох різних керуючих структур, називається комбінованим.
М
етоди низхідного і висхідного проектування алгоритму застосовуються при розробці алгоритмів зі складною модульно - ієрархічною архітектурою.
Метод низхідного проектування алгоритму9 передбачає конкретизацію алгоритмічних рішень від загальної постановки задачі до розв'язання допоміжних задач. Спочатку розробляється основний модуль, а потім допоміжні.
Метод висхідного проектування алгоритму передбачає «складання» основного алгоритму з окремих модулів, що виконують допоміжні функції і які розроблено незалежно один від одного. Спочатку розробляються допоміжні модулі, а потім основний модуль.