Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теорія алгоритмів Лекції.docx
Скачиваний:
41
Добавлен:
20.11.2019
Размер:
3.94 Mб
Скачать

Блок-схемний метод алгоритмізації

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

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

Блок-схема є формулою подання алгоритму рішення задач у загальному виді. Переваги його зводяться до наступного :

  1. Забезпечується обмін методами рішення між фахівцями , що використають різні машини.

  2. Полегшується робота зі складання машинної програми, тому що заздалегідь укладений укрупнений опис усього процесу рішення задачі.

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

  4. Полегшується читання й розуміння програм.

  1. Зменшується кількість помилок при програмуванні.

  2. Спрощується перевірка й налагодження готових програм.

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

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

Ці недоліки приводять до великих труднощів при перекладі блок-схеми в робочу програму машини й не дозволяють сформулювати чіткі правила такого перекладу, які необхідні при автоматизації програмування.

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

Крім того, блок-схемним методом зручно користуватися при складанні складних алгоритмів, як попередня перевірка й наочне подання логіки рішення задачі.

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

Однак у зв'язку з виникненням ЕОМ ці алгоритмічні системи виявилися не зовсім зручними, тому що для рішення задач, представлених апаратом тієї або іншої алгоритмічної системи на ЕОМ, необхідно алгоритми перевести в команди конкретної машини. Цей переклад виконувався вручну й вимагав багато праці й часу.

Для прискорення процесу перекладу алгоритмів задач із мови алгоритмічної системи в мову машини були розроблені спеціальні алгоритмічні системи, що одержали назву алгоритмічні мови.

Сувора формалізація й однозначність опису алгоритмів в алгоритмічній мові дозволила перекласти на машину й сам переклад з алгомови на мову машини, тобто автоматизувати процес підготовки задач для виконання їх на ЕОМ, автоматизувати програмування. Для цього необхідно забезпечити машину так називаною «програмуючою програмою» -транслятором, що, аналізуючи опис, зроблений алгоритмічною мовою, переробляє його в програму, що складається тільки з машинних команд.

У цей час розроблене й використається більше 700 різних алгоритмічних мов.

Детальним вивченням алгомов займається курс «Алгоритмічні мови». У даному курсі вивчаються загальні принципи побудови таких мов - формальна граматика.

Вправи:

В операторній системі Ляпунова

1. Скласти алгоритм обчислення по формулі

сii — bi(1 <i<n).

2. Скласти алгоритм обчислення по формулі

ck= k(1≤i?n, 1?k?m ).

3. Скласти алгоритм обчислення по формулі

ci=ai bi(1≤in).

4. Скласти алгоритм обчислення по формулі

сi= k bi(1in, 1≤km).

5. Скласти алгоритм обчислення по формулі

i = аi:bi.

6. Скласти алгоритм визначення кількості однакових чиcел у послідовності а1, а2, ..., ап.

  1. Скласти алгоритм множення матриці на матрицю.

  2. Скласти блок-схему алгоритму порозрядного додавання двох чисел довільної розрядності.

  3. Скласти блок-схему алгоритму порозрядного множення двох чисел довільної розрядності.

10. Скласти блок-схему алгоритму впорядкування масиву з п чисел у порядку зростання елементів.

11. Скласти блок-схему алгоритму пошуку мінімального елемента з масиву п чисел.

  1. Скласти блок-схему алгоритму множення матриці на вектор.

  2. Скласти блок-схему алгоритму множення матриці на матрицю.

  3. Скласти блок-схему алгоритму транспонування матриці.

  1. Скласти блок-схему алгоритму пошуку мінімального (максимального) елемента матриці.

16. Скласти блок-схему алгоритму визначення кількості позитивних (негативних) елементів матриці.

17. Скласти блок-схему алгоритму обчислень по формулі

ck= k bi(1≤i≤n, 1≤km).

18. Скласти блок-схему алгоритму обчислень по формулі

сk= i-bk(1≤ke).