![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Вище були розглянуті приклади алгоритмів, що є лінійною послідовністю процесів, умовних блоків і циклів різного типа.
За допомогою подібних алгоритмів можна вирішувати лише прості завдання, що містять до декількох сотень рядків тексту програми.
При алгоритмізації складніших завдань (типова комерційна програма – близько 10000 рядків, операційна система – десятки мільйонів рядків) зрозумілість і наочність алгоритму різко падає, оскільки багаточисельні вкладені умови і циклічні оператори роблять програму заплутаною, важкою у відладці і навіть непрацездатною.
Тому при створенні середніх за розміром програм і, тим більше, великих, використовують принцип структурного програмування, ідея якого полягає в тому, щоб структура алгоритму відображала структуру вирішуваного завдання. З цією метою в програмування введено поняття підпрограми – самостійного фрагмента програми, що оформлюється по певних правилах і має ім'я.
При структурному програмуванні алгоритм розбивається на деяку кількість дрібних підпрограм (звичайно до 50 операторів). Комбінуючи ці підпрограми, алгоритм формується не з простих дій, а з блоків – підпрограм, кожен з яких має смислове навантаження.
Як приклад розглянемо алгоритм виставляння суддівської оцінки в деяких видах спорту, де прийнято відкидати найбільшу і найменшу оцінки, а для тих, що залишилися обчислювати середнє арифметичне. Головний модуль програми представляється в дуже простому вигляді лінійної алгоритмічної структури (рис. 3.14):
![]() |
Ні
Так
Рис. 3.13.
Рис. 3.14.
Підпрограма введення оцінок має структуру циклу з відомим числом повторень, характерну для введення елементів одновимірного масиву:
N – колькість суддів
Рис. 3.15.
Підпрограма видалення найбільшої оцінки включає фрагмент для знаходження максимального елементу одновимірного масиву і його обнулення. До початку циклу з відомим числом повторень в змінну max записується перший елемент масиву, а в змінну к -його номер, тобто одиниця. Після виходу з циклу ці змінні містять максимальний елемент масиву і його індекс відповідно (рис. 3.16).
Блок-схеми решти підпрограм даного алгоритму студентам рекомендується скласти самостійно.
На закінчення теми приведені загальні рекомендації по складанню блок-схем алгоритмів, засновані на аналізі типових помилок, які допускають початкуючі програмісти:
· провести аналіз умови завдання, оцінити складність майбутнього алгоритму і визначити доцільність вживання принципу структурного програмування;
· визначити, які змінні або масиви є вхідними даними для вирішуваного завдання, вибрати формат їх представлення в ЕОМ і організувати їх ввод;
· всі змінні і масиви в алгоритмі незалежно від їх типа перед використанням мають бути визначені;
· при визначенні змінної або елементу масиву за допомогою оператора привласнення ім'я визначуваної змінної ставиться зліва від знаку рівності;
· при використанні масивів необхідно пам'ятати, що дії з ними (введення, вивід, обробка) виробляються поелементно, для чого використовуються цикли;
· необхідно правильно (оптимально) вибирати типів циклів, пам'ятаючи, що кожному типові циклу в алгоритмі відповідає певний оператор циклу в програмі;
· для всіх підпрограм в алгоритмі мають бути приведені окремі блок-схеми;
· результат роботи алгоритму не завжди має бути числовим і визначається сенсом вирішуваного завдання; кінцевий результат завжди має бути виведений;
· для пояснення сенсу використовуваних змінних, а також вироблюваних в алгоритмі дій при необхідності потрібно використовувати коментарі.
Контрольні запитання
1. Що таке масив? Які типи даних можуть містити масиви?
2. Як математично інтерпретуються одновимірний і двовимірний масиви?
3. Як організовується накопичення суми елементів масиву? Чим відрізняється процес накопичення добутку елементів масиву від процесу накопичення суми?
4. Як виробляється ввод (вивід) елементів двовимірного масиву?
5. У чому полягає ідея методу структурного програмування? У яких випадках в алгоритмах застосовують підпрограми?
6. Змалюєте блок-схеми підпрограм видалення мінімальної оцінки і знаходження середнього арифметичного для алгоритму, приведеного на рис. 3.14.
![]() |
Ні
Так
Рис. 3.16.
Дата публикования: 2014-12-08; Прочитано: 477 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!