- •Етапи підготовки і рішення задач на еом
- •Програма, що не має помилок часу трансляції і виконання, може і не дати вірних результатів через так звані логічні помилки в обраному алгоритмі, тобто алгоритмічних помилок.
- •Запис алгоритмів у виді блок – схем
- •Мови програмування
- •1. Основні поняття алгоритмічної мови Бейсік.
- •3. Сталі та змінні.
- •4. Функції. Вирази.Оператор присвоєння
- •Вправи та запитання
- •5. Надання значень змінним
- •Оператор read.
- •6. Виведення результатів
- •Оператор Результат
- •Оператор Результат
- •7.Лінійні програми
- •Розгалуження
- •1.Логічний вираз
- •3. Команда розгалуження if. Повна форма умовної команди.
- •10.Цикли
- •11.Оператори циклу
- •12. Обчислення суми, добутку
- •13. Ітераційні цикли
- •14. Вкладені цикли
- •Мал.12 Схеми вкладених циклів.
- •15. Використання масивів
- •Вправи та запитання
- •16. Нестандартні функції та підпрограми
- •17. Робота з текстовими даними
- •18. Оператори роботи з графічною інформацією.
- •19. Робота з файлами даних
- •20 Основи роботи в пакеті MathCad
- •Визначення основних понять та позначень, безпосередньо зв'язаних з процесом обчислень у середовиіщі пакету Вхідний алфавіт
- •Типи констант і змінних
- •Розмірність, одиниці вимірів та одиниці маштабування
- •Базові обчислювальні конструкції пакета
- •Реалізація ітеративних обчислень.
- •Функції керування обчисленнями
- •Побудова декартових графіків
- •Методи доступу і роботи з файлами даних
- •Вбудовані функції та функції користувача
- •Розділ 21Алгоритми та програми реалізації загальних чисельних методів.
- •21.1. Розв’язання систем лінійних рівнянь.
- •21.2 Інтерполяція та екстраполяція.
- •21.3. Розв’язання нелінійних та трансцендентних рівнянь.
- •21.4 Розв’язування систем нелінійних рівнянь.
- •Програма 14
- •21.5. Пошук екстремумів функцій одної та багатьох змінних.
- •Програма 15
- •Програма 16
- •Програма 17
Програма, що не має помилок часу трансляції і виконання, може і не дати вірних результатів через так звані логічні помилки в обраному алгоритмі, тобто алгоритмічних помилок.
Правильність виконання обчислень (арифметичний контроль) виявляється порівнянням результатів, отриманих при розрахунку одного з найпростіших варіантів задачі чи окремих її частин вручну і на ЕОМ. Після усунення помилок за допомогою відлагодженої програми розв’язують контрольний приклад.
Рішення задачі на ЕОМ здійснюється по налагодженій програмі для всієї необхідної множини вихідних даних. Цей етап може забирати час від декількох секунд до багатьох годин у залежності від характеру розв’язуваної задачі, типу використовуваної обчислювальної машини і числа розв’язуваних варіантів задачі.
Обробка й аналіз результатів рішення ведеться, як правило, особою, в інтересах якої розв’язувалась задача.
Запис алгоритмів у виді блок – схем
Найбільш розповсюдженими є дві форми опису алгоритму: словесне природною мовою і графічне у виді так званих структурних схем, чи блок – схем. При другому способі запису алгоритм представляється у виді послідовності спеціальних символів – блоків, кожному з яких відповідає визначений етап рішення задачі. У табл. 1 дані позначення деяких блоків відповідно до ДСТ 19002 – 80, 19003 – 80
Таблиця 1
Найменування символу |
Знак символу |
Примітка |
Процес
Зумовлений процес
Прийняття рішення
Передача даних
Переривання
Модифікація |
|
Арифметичний блок, який визначає зав-дання, які необхідно виконати
Звернення до підпрограми
Логічний блок, який провіряє правильність або неправильність деякої умови
Ввід або вивід інформації
Початок, кінець, пуск, зупинка, вхід в підпрограму
Організація циклічного процесу |
Блоки з’єднуються лінями потоку інформації. Усередині блоків записуються виконувані дії. Лінії визначають напрямок обчислень, причому зверху вниз і ліворуч, праворуч. Якщо необхідно відбити інший напрямок (знизу вверх або справа наліво), то на лініях ставляться стрілки. Блоки на схемі нумеруються цифрами, що ставляться в розриві верхньої лінії ліворуч.
Практично будь–який складний алгоритм являє собою комбінацію трьох типів структур: лінійного, розгалуження і циклічного.
Лінійний алгоритм складається з послідовності операцій, що виконуються тільки один раз у порядку їхнього проходження (мал. 2,а). На практиці лінійні алгоритми зустрічаються рідко, наприклад при розрахунку громіздких формул з великою точністю.
Прикладом лінійного алгоритму може служити алгоритм обчислення значення функції
Процес рішення цієї задачі можна розділити на етапи і записати алгоритм природною мовою в такий спосіб:
Обчислити z = ax3 + b.
Обчислити .
Обчислити t = lnz.
Обчислити r = s + t.
Обчислити y = arctg r.
Усі перераховані етапи є чисто арифметичними. Крім них у процесі рішення задачі
a) б)
так
Дія
так
ні
ні
Дія
Дія
Дія
Дія
в )
Дія
так
ні
Дія
так
Дія
ні
Вихід з циклу
Вихід з циклу
Вихід з циклу
Малюнок 2.
будуть мати місце і деякі інші допоміжні етапи. Алгоритм, що розгалужується, містить блок (блоки) перевірки деякої умови, і в залежності від результату перевірки виконується та чи інша послідовність операцій, називається віткою. При цьому форма розгалуження може бути як повна, так і скорочена (мал. 2, б).
Розглянемо як приклад алгоритм пошуку квадрата найбільшого з трьох заданих чисел: a, b і c. Спочатку порівнюються два числа: a і b. Більше з них приймається за максимальне. Потім виробляється порівняння отриманого результату з третім числом c. Якщо значення с виявляється більше, то воно приймається за максимальне і зводиться в квадрат. У противному випадку найбільшим вважається результат порівняння a і b.
Опишемо алгоритм природною мовою:
Порівняти a і b. Якщо a>b то прийняти y = a. У противному випадку прийняти y = b.
Порівняти c і y. Якщо c>y то замінити y = c. У противному випадку залишити b без змін.
Обчислити z = y2 .
Схема алгоритму (мал. 4) містить два розгалуження: повне (блоки 3, 4, 9) і скорочене 9блоки 5, 10).
Циклічний алгоритм містить деяку послідовність операцій. виконувану багаторазово (мал. 2.в). Любий циклічний алгоритм містить кілька типових блоків. Основний блок, названий тілом циклу, робить необхідні обчислення. Інші блоки мають допоміжне значення, вони організують циклічний процес: установлюють початкові і нові значення даних. Перевіряють умови закінчення чи продовження циклічного процесу. Розрізняють три типи структур циклу: цикл із передумовою, цикл із післяумовою, цикл із параметром або з повторенням. Циклічний алгоритм дозволяє компактно описати велике число однакових обчислень над різними даними для одержання необхідного результату.
Для прикладу розглянемо алгоритм Евкліда, який можна сформулювати у такий спосіб: для двох будь – яких позитивних цілих чисел знайти їхній найбільший загальний дільник.
Для рішення задачі необхідно одержати спадну послідовність чисел. Якщо перше число більше другого, то воно зменшується на величину другого, у противному випадку друге число зменшується на величину першого. І так доти, поки різниця між цими числами не стане рівною нулю. Тоді одне з цих чисел і буде найбільшим дільником.
Опишемо алгоритм. Дані два числа: x>0 і b>0. Потрібно знайти найбільш загальний дільник.
Прийняти a=x, b=y.
Порівняти a і b. Якщо a=b, то прийняти найбільший загальний дільник d=a і закінчити обчислення. У противному випадку виконати крок.
Прийняти d= a – b
Якщо d>0, прийняти a=d. У противному випадку прийняти b = -d. Виконати крок 2.
Алгоритм Евкліда (мал. 5) містить дві лінійних ділянки (блоки 2, 3 і 9, 10), одне розгалуження (блоки б, 7, 8) і один цикл, що включає блоки 4 (перевірка умови виходу з циклу) і 5 – 8 (тіло циклу).
1
1
2
2
Ввід a,b,x
Ввід a,b,x
3
3
так
4
ні
4
9
4
5
6
5
так
10
6
7
ні
8
8
7
Друк y
Друк z
9
8
Мал. 3
Мал. 4