У вас вопросы?
У нас ответы:) SamZan.net

МКатегорія- Програмування комп~ютери і кібернетикаПредмет- Початки програмування

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 2.2.2025

ЛЕКЦІЇ >> ПРОГРАМУВАННЯ, КОМП’ЮТЕРИ І КІБЕРНЕТИКА >> СТРУКТУРНИЙ ПІДХІД ДО АЛГОРИТМІЗАЦІЇ

Опубліковано: Кривонос О. М.
Категорія: 
Програмування, комп’ютери і кібернетика
Предмет:
 Початки програмування

Розробка алгоритмів розв’язування задач на ЕОМ ставить деякі природні вимоги до алгоритмів: алгоритм має бути зрозумілим і легко сприйматися не тільки його розробником, необхідно, щоб алгоритм можна було легко перевірити, а також модифікувати його без суттєвої перебудови всієї структури.

Тому при розробці алгоритмів дотримуються особливої методики, що називається структурним підходом. За цим підходом алгоритми, як в конструкторі, “збираються” з трьох базових структур: слідування, розгалуження, цикл, кожна з яких має один вхід і один вихід.

БАЗОВА СТРУКТУРА “СЛІДУВАННЯ”

Ця структура (мал. 1) складається із двох функціональних блоків F1, F2 і означає, що два функціональних блока можуть розміщуватися один за одним.

БАЗОВА СТРУКТУРА “РОЗГАЛУЖЕННЯ”

Ця g>Базова структура “слідування”

Ця структура (мал. 1) складається із двох функціональних блоків F1, F2 і означає, що два функціональних блока можуть розміщуватися один за одним.

БАЗОВА СТРУКТУРА “РОЗГАЛУЖЕННЯ”

Ця структура (мал. 2) складається з логічного блоку, у якому перевіряється деяка умова U, та функціональних блоків F1, F2. При цьому функціональний блок F2 може бути відсутнім. Якщо умова U виконується, то відбувається вихід з блоку за стрілкою “+”, якщо ні - за стрілкою “-“.

БАЗОВА СТРУКТУРА “ЦИКЛ”

До складу структури входить логічний блок з перевіркою умови U і функціональний блок F, який називається тілом циклу. Зі структури “цикл” слідує, що тіло F може виконуватися неодноразово.

У залежност структура (мал. 2) складається з логічного блоку, у якому перевіряється деяка умова U, та функціональних блоків F1, F2. При цьому функціональний блок F2 може бути відсутнім. Якщо умова U виконується, то відбувається вихід з блоку за стрілкою “+”, якщо ні - за стрілкою “-“.

БАЗОВА СТРУКТУРА “ЦИКЛ”

До складу структури входить логічний блок з перевіркою умови U і функціональний блок F, який називається тілом циклу. Зі структури “цикл” слідує, що тіло F може виконуватися неодноразово.

У залежності від взаємного розташування логічного та функціонального блоків, розрізняють цикли двох видів:

  1.  цикл-поки: тіло циклу розташоване після перевірки умови (мал. 3). Поки умова виконується, виконується і тіло. Тому можливий випадок, коли тіло циклу жодного разу не виконається. Тут U являється умовою продовження циклу (кожен раз, коли U істинно, тіло F виконується);
  2.  цикл-до: Тіло циклу розташоване до перевірки умови (мал. 4), тому тіло циклу завжди виконається хоча б один раз, незалежно від виконання умови. Тут U являється умовою виходу з циклу (як тільки U стає істинним, p>

БАЗОВА СТРУКТУРА “ЦИКЛ”

До складу структури входить логічний блок з перевіркою умови U і функціональний блок F, який називається тілом циклу. Зі структури “цикл” слідує, що тіло F може виконуватися неодноразово.

У залежності від взаємного розташування логічного та функціонального блоків, розрізняють цикли двох видів:

  1.  цикл-поки: тіло циклу розташоване після перевірки умови (мал. 3). Поки умова виконується, виконується і тіло. Тому можливий випадок, коли тіло циклу жодного разу не виконається. Тут U являється умовою продовження циклу (кожен раз, коли U істинно, тіло F виконується);
  2.  цикл-до: Тіло циклу розташоване до перевірки умови (мал. 4), тому тіло циклу завжди виконається хоча б один раз, незалежно від виконання умови. Тут U являється умовою виходу з циклу (як тільки U стає істинним, виконання тіла F припиняється).

СКЛАДАННЯ БЛОК-СХЕМ

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

Складемо блок-схему, скориставшись структурою “слідування”, в якій на місці блоку F2 вставимо структуру “цикл-до”, а в останній замість блоку F вставимо структуру “розгалуження”. Матимемо структуру, як на мал. 5.

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

Розробка алгоритмів розв’язування задач на ЕОМ ставить деякі природні вимоги до алгоритмів: алгоритм має бути зрозумілим і легко сприйматися не тільки його розробником, необхідно, щоб алгоритм можна було легко перевірити, а також модифікувати його без суттєвої перебудови всієї структури.

Тому при розробці алгоритмів дотримуються особливої методики, що називається структурним підходом. За цим підходом алгоритми, як в конструкторі, “збираються” з трьох базових структур: слідування, розгалуження, цикл, кожна з яких має один вхід і один вихід.

Базова структура “слідування”

Ця структура (мал. 1) складається із двох функціональних блоків F1, F2 і означає, що два функціональних блока можуть розміщуватися один за одним.

Базова структура “розгалуження”

Ця структура (мал. 2) складається з логічного блоку, у якому перевіряється деяка умова U, та функціональних блоків F1, F2. При цьому функціональний блок F2 може бути відсутнім. Якщо умова U виконується, то відбувається вихід з блоку за стрілкою “+”, якщо ні - за стрілкою “-“.

Базова структура “цикл”

До складу структури входить логічний блок з перевіркою умови U і функціональний блок F, який називається тілом циклу. Зі структури “цикл” слідує, що тіло F може виконуватися неодноразово.

У залежності від взаємного розташування логічного та функціонального блоків, розрізняють цикли двох видів:

  1.    цикл-поки: тіло циклу розташоване після перевірки умови (мал. 3). Поки умова виконується, виконується і тіло. Тому можливий випадок, коли тіло циклу жодного разу не виконається. Тут U являється умовою продовження циклу (кожен раз, коли U істинно, тіло F виконується);
  2.    цикл-до: Тіло циклу розташоване до перевірки умови (мал. 4), тому тіло циклу завжди виконається хоча б один раз, незалежно від виконання умови. Тут U являється умовою виходу з циклу (як тільки U стає істинним, виконання тіла F припиняється).

СКЛАДАННЯ БЛОК-СХЕМ

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

Складемо блок-схему, скориставшись структурою “слідування”, в якій на місці блоку F2 вставимо структуру “цикл-до”, а в останній замість блоку F вставимо структуру “розгалуження”. Матимемо структуру, як на мал. 5.

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

Щоб виконати алгоритм розв’язку задачі за прийнятний час, від виконавця вимагається достатньо велика швидкодія. Необхідність у таких виконавцях призвела до появи ЕОМ в середині 40-х років ХХ ст. Комп’ютери – автоматичні виконавці алгоритму. Кожна ЕОМ виконує задану їй програму а томатично без втручання людини.

ЕОМ – універсальний засіб обробки інформації. Це означає, що на одному і тому ж комп’ютері можна розв’язувати задачі різних класів. Для цього необхідно сформулювати відповідний алгоритм і подати його в термінах системи команд даної ЕОМ, тобто задати програму роботи на ЕОМ. Зміна програми призводить до зміни задачі, що розв’язується, але не вимагає зміни складу або конфігурації апаратного забезпечення комп’ютера.

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

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

За підходами до розв’язку задач мови високого рівня поділяються на:

  1.  процедурні (алгоритмічні) мови. Наприклад, Basic, Pascal, C, НАМ (навчальна алгоритмічна мова).  Характерною ознакою таких мов є  добра пристосованість до розв’язування тих задач, що підлягають алгоритмізації;
  2.  мови функціонального пр символічних записів машинних команд, та мови програмування високого рівня. Останні не мають машинної орієнтації, практично не залежать від конкретної ЕОМ, тому програми, що написані на таких мовах, можна виконувати на будь-яких машинах. 

За підходами до розв’язку задач мови високого рівня поділяються на:

  1.  процедурні (алгоритмічні) мови. Наприклад, Basic, Pascal, C, НАМ (навчальна алгоритмічна мова).  Характерною ознакою таких мов є  добра пристосованість до розв’язування тих задач, що підлягають алгоритмізації;
  2.  мови функціонального програмування. Наприклад, Lisp;
  3.  мови логічного програмування. Наприклад, Prolog. Характерною ознакою таких мов є те, що для них відсутнє традиційне поняття алгоритму – вони містять автоматичний розв’язувач задач і розв’язання задачі в основному зводиться до описання умови задачі, а не процедури розв’язку;
  4.   мови об’єктно-орієнтованого, модульного програмування тощо. 

Слід зазначити, що при розв’язування реальних практичних задач алгоритми та програми є досить складними. Раніше згадувалось про структурний підхід до р ого рівня поділяються на:

  1.  процедурні (алгоритмічні) мови. Наприклад, Basic, Pascal, C, НАМ (навчальна алгоритмічна мова).  Характерною ознакою таких мов є  добра пристосованість до розв’язування тих задач, що підлягають алгоритмізації;
  2.  мови функціонального програмування. Наприклад, Lisp;
  3.  мови логічного програмування. Наприклад, Prolog. Характерною ознакою таких мов є те, що для них відсутнє традиційне поняття алгоритму – вони містять автоматичний розв’язувач задач і розв’язання задачі в основному зводиться до описання умови задачі, а не процедури розв’язку;
  4.   мови об’єктно-орієнтованого, модульного програмування тощо. 

Слід зазначити, що при розв’язування реальних практичних задач алгоритми та програми є досить складними. Раніше згадувалось про структурний підхід до розробки алгоритмів (див. стор. 8), який дозволяє полегшити роботу з вказаними задачами. Але існує узагальнення такого підходу, яке полягає у використанні принципів структурного програмування.

Структурне програмування – це процес побудови алгоритмів та програм, що виконується у такій послідовності:

 

  1.   Попередній аналіз задачі з метою розбиття її на окремі прості частини (модулі). Для цього спочатку складають загальну схему алгоритму, а потім її деталізують.
  2.   Послідовна (зверху до низу) деталізація частин та складання програм для кожного з модулів. Виділяють основну частину та частини нижнього рівня. Кожну частину розробляють окремо: спочатку частини верхнього рівня, а потім – нижнього. У кінці частини з’єднують між собою.

Для структурного програмування характерно:

  1.   Використання трьох базових структур алгоритмів (див. стор. 8) при роботі з кожним модулем.
  2.   Коментування текстів програм.
  3.   Мінімальне використання вказівок переходу (операторів типу goto).
  4.   Передбачення і використання системи перевірки правильності програм. 

Однією з тенденцій сучасного розвитку більшості мов є їх універсалізація. Наприклад, розроблені діалекти процедурних мов, що дозволяють реалізувати об’єктно-орієнтований підхід (Visual Basic, Delphi).

 

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

 

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

  1.   компіляція (весь текст програми одразу переводиться у машинний код і перевіряється синтаксис всієї програми);
  2.   інтерпретація (у машинний код текст програми переводиться послідовними фрагментами і для кожного фрагменту окремо перевіряється синтаксис).




1. кальциевого значительными расстройствами костеобразования нарушением функций всех ведущих органов и сис
2. процесс постепенного переноса стоимости основных средств на производимую продукцию работы услуги
3. Режим нераспространения ядерного оружия.html
4. Теорія і практика психологічного відбору денне і заочне навчання
5. РЕФЕРАТ НА ТЕМУ- Вещества ряда строфантина Строфантин К препараты ландыша Строение
6. Впервые метанол был найден в древесном спирте в 1661 г
7. Noten ber zuerst will ich pr~fen wer fehlt
8. тематизируйте 5 книг из одной отрасли знаний например биология машиностроение искусство экономика и т
9. Проблемы национальной безопасности России- уроки истории и вызовы современности информационное
10. Электрические машины и трансформаторы