Програмування. Основні алгоритмічні конструкції
Для створення будь-яких програм необхідні основні алгоритмічні конструкції. Дотримання є найбільш простим варіантом вирішення завдань. Його можна використовувати, наприклад, для роботи з однотипними прикладами. Існують і інші типи: розгалуження і цикл. Про них буде розказано в даній статті. Але спершу потрібно зрозуміти, що ж собою являє алгоритм в цілому.
алгоритм
Слово «алгоритм» походить від латинського algoritmi. Що ж воно означає? Автентичне слово походить від імені математика, діяльність якого припала на IX століття. Завдяки трактату аль-Хорезмі людство змогло познайомитися з основним типом алгоритмічної конструкції і взагалі із загальним поняттям.
Раніше була прийнята форма написання слова - «алгорифм». Зараз вона використовується лише в деяких випадках.
Алгоритм - процес, який означає зміну вихідних даних, що відбувається у вигляді дискретних кроків. З цим поняттям кожна людина стикається в житті, ким би він не був. Алгоритмами цілком можна назвати приготування чаю або їжі, множення або додавання, рішення рівнянь і т. Д. Вся побутова техніка, чий процес роботи автоматизований, функціонує за рахунок чітких кроків, прописаних в пам`яті процесора. Такі алгоритми називаються побутовими. Є й інші типи. Розглянемо їх.
види алгоритмів
Основні алгоритмічні конструкції розбиваються на кілька типів, про яких і йтиметься в цьому підпункті. Які вони бувають?
- Інформаційні. Такі алгоритми працюють з великою кількістю даних, але сам обсяг процесу їх обробки маленький по довжині і нескладний.
- Керуючі. Робота таких алгоритмів пов`язана з інформацією, яка надається від того чи іншого джерела. Після її отримання відправляються спеціальні сигнали, що гарантують роботу пристроїв.
- Обчислювальні. На відміну від інформаційних алгоритмів, описувані працюють з маленькими обсягами даних, але виробляють великий процес роботи.
По суті, алгоритмом є точна до найдрібніших подробиць інструкція. Однак не всі такі дані можна назвати описуваних поняттям. Щоб зрозуміти, алгоритм інструкція чи ні, слід її перевірити на наявність певних властивостей.
властивості алгоритмів
Всі основні алгоритмічні конструкції повинні мати дії, які їм «підкоряються». Розглянемо це питання більш детально.
Якщо повністю відстежити роботу алгоритмів і їх властивості, можна побачити, що необов`язково розуміти їх складові, досить чітко відповідати плану. Вірний результат буде отримано, навіть якщо просто механічно дотримуватися потрібних дій. З цього можна зробити висновок, що через відсутність сенсу в усвідомленні дій, алгоритм цілком реально віддати на реалізацію ЕОМ. Іншими словами, для автоматизованих пристроїв необхідна наявність даного процесу.
Які ж властивості повинні мати основні алгоритмічні конструкції для максимально точної роботи?
- Зрозумілість. Кожна команда повинна бути максимально зрозуміла виконуваного об`єкту. Начебто нічого легше, ніж, наприклад, намалювати крапку в центрі, немає, але поки не буде прописана команда, яка дозволить виконати дію, зробити це не вдасться.
- Результативність. Що має на увазі ця властивість? Обов`язкове отримання результату. Алгоритм не може не привести до якогось відповіді. Через помилки можна отримати не той результат, який був бажаним, але все ж він буде. Більш того, відповідь має бути отриманий через кілька етапів.
- Масовість. Будь алгоритм повинен бути придатним до якогось класу задач. Між собою вони можуть відрізнятися вихідними даними.
- Визначеність. Кожна дія має мати лише одне значення і не давати можливості для похідної розшифровки. В ідеалі, скільки б програма ні запускалася, результат повинен бути одним і тим же завжди.
- Дискретність. Алгоритм - послідовне виконання кроків. Кожен крок є командою, пропускати або додавати нові не можна.
- Коректність. Будь алгоритм, який можна застосовувати до будь-якого роду завдань, повинен бути правильним для всіх. У програмуванні часто з`являються проблеми не в написанні кроків, яке часто не вимагає багато часу, а у виконанні їх для різного роду питань. Тому важливим етапом буде налагодження алгоритму. Можуть у цьому допомогти і основні алгоритмічні конструкції, повторення яких дозволить домогтися кращих результатів.
опис алгоритмів
Якщо говорити про способи запису алгоритмів, то слід виділити наступні:
- Словесний. Іншими словами, на мові, яким зручно висловлюватися становить.
- Табличний. За логікою речей, алгоритм записується в таблиці і, як правило, використовується як допоміжний елемент.
- Формульно-словесний. В основу взятий словесний спосіб висловлювання, але в такі дії також записуються математичні формули або символи.
- Графічний. Такий алгоритм записаний на спеціальній мові блок-схем.
Відео: Програмування в Pascal ABC
Слід пояснити останній пункт. Що собою являє блок-схема? Це лінійний або нелінійний алгоритм, кроки якого записані за допомогою спеціальних блоків. Вони мають свою конфігурацію, призначення та функцію. У разі такого опису, алгоритм записується блок-схемами, які пов`язані між собою лініями. У них необхідно додатково записати ту чи іншу дію (крок).
алгоритмічні конструкції
Деякі стверджують, що алгоритми мають не 3 види, а 4. Основні алгоритмічні конструкції: лінійні, розгалужуються, циклічні. З чим пов`язана така помилка, незрозуміло. Однак для простого вирішення складних проблем ЕОМ використовує алгоритми цих трьох досить великих груп. Розглянемо їх.
Відео: Програмування
- Лінійний. Такий обчислювальний процес отримав цю назву за рахунок того, що всі дії виконуються в лінійній послідовності, при цьому кожен крок виконується не більше одного разу. Якщо розглядати схему завдання, то блоки в ній розміщуються один під іншим залежно від порядкового номера виконання. Лінійні алгоритми працюють таким чином, що від вихідних даних не змінюється напрямок і зміст дій. Такий спосіб вирішення підійде для обчислення суми або різниці, площі фігури або її периметра і т. П. Основним типом алгоритмічної конструкції є саме він.
- Розгалужується. Цей обчислювальний процес має на увазі наявність логічного виразу (далі ЛВ) і вибору умови (гілки «брехня» і «правда»). У кожному разі реалізується лише одна з двох і більше команд. Немає завдань і не може бути, в яких будуть виконані ще й інші варіанти. Якщо в алгоритмі дві гілки, він простий, якщо більше двох - складний. Причому останній процес легко представляється за рахунок першого. Основним типом алгоритмічної конструкції є як перший пункт, так і другий. Наступний вид теж входить в цей список.
- Циклічний. У такому алгоритмі обов`язково буде елемент, що повторюється багаторазово, при цьому використовуються різні вихідні дані. Іншими словами, такий процес називається циклом.
Потрібно зауважити, що всі основні алгоритмічні конструкції (слідування, розгалуження, цикл) взаємопов`язані між собою, хоча і можуть використовуватися окремо.
Створення циклів і їх види
Що ж необхідно для створення циклу?
- Лічильник циклу. Це змінна, яка задає початкове значення, і при повторенні дії вона буде змінюватися. Обов`язково вона повинна входити в алгоритм. Основні алгоритмічні конструкції циклового типу працювати без неї не будуть.
- Зміна показника вищеописаних даних перед новим повторенням самого циклу.
- Перевірка умови, щоб ЕОМ вирішила, чи варто знову «прокручувати» цикл або більше в цьому немає потреби.
Цикли можуть бути детермінованими і ітераційним. Перші являють собою повтор дій з уже відомою кількістю повторень. Ітераційний цикл - той, який повторюється невизначену кількість разів, поки умова не стане правдою або неправдою.
базовий алгоритм
Варто запам`ятати те, що до основних алгоритмическим конструкціям не відноситься базовий алгоритм. Що він собою являє? Дане поняття вже давно не зустрічається в сучасній літературі, проте це не означає, що його і зовсім більше не існує. З огляду на, що в рішенні задач може зустрітися кілька розгалужень або повторень, можна виділити наступний висновок. Основні алгоритмічні конструкції (лінійні, розгалужуються, циклічні) є базовими. По суті, вони являють собою «структурну одиницю» кожної так званої інструкції.
лінійні алгоритми
Як вже зрозуміло з вишенапісанного, алгоритми бувають лінійні і нелінійні. Розглянемо перший варіант. Чому він так називається? Все гранично просто. Справа в тому, що всі дії, які відтворюються в алгоритмі, мають чітко послідовне виконання, всі кроки виконуються строго один за одним. Як правило, такі завдання невеликі і мають низький рівень складності.
Прикладом лінійного алгоритму може бути процес приготування чаю:
- Налити води в чайник.
- Поставити чайник на плиту закипати.
- Взяти чашку.
- Насипати в чашку чай.
- Додати цукор.
- Після кипіння налити в чашку окріп.
- Взяти ложку.
- Перемішати цукор.
Програмування основних алгоритмічних конструкцій - досить важка справа, але якщо мова йде про лінійних алгоритмах, то найчастіше реалізувати їх дуже легко.
розгалужуються алгоритми
Як зрозуміти, що алгоритм є розгалужуються? Досить переконатися в наявності вибору з двох або більше варіантів дії, в залежності від виконання або невиконання умови. Кожен шлях називається гілкою.
Основною ознакою разветвляющегося алгоритму є існування умовного переходу. Він відбувається під час перевірки вираження на істину або брехня.
Як правило, логічні вирази представлені знаками "менше", "більше", "менше або дорівнює", "більше або дорівнює", "одно", "не дорівнює". Іноді зустрічаються варіанти, де умова пов`язана між собою за допомогою команд and (і) і or (або).
Прикладом такого алгоритму може бути рішення наступного завдання: якщо вираз ((х + 3) / 1) дорівнює позитивному числу, то вивести результат на екран, якщо негативному - повідомити користувачеві про помилку.
Досить просто на практиці використовувати основні алгоритмічні конструкції. Розгалуження є одним з найпоширеніших методів рішення.
Детермінований цикл або цикл з лічильником
Цикл з лічильником - цикл, який включає в себе змінну, яка змінює значення з певним кроком. Крок задається користувачем або прописується програмістом під час написання забезпечення. Велика частина мов для такого циклу використовує оператор for.
Щоб програма виводила на екран два рядки 4 рази:
- "Як справи?"
- "Добре спасибі!"
- "Як справи?"
- "Добре спасибі!"
Відео: Програмування в Small Basic
Необхідно створити детермінований цикл. Як це виглядає? Скористаємося мовою «Паскаль» для кращого сприйняття конструкції.
1. For i: = 1 to 2 do:
- i є лічильником циклу, саме він визначає кількість повторень в циклі.
2. Begin (відкриваються операторні дужки для того, щоб обидві фрази були тілом циклу і повторювалися разом.)
3. Writeln (&lsquo-Як справи?&rsquo-):
- слово writeln означає висновок фрази, що знаходиться в одинарних лапках.
4. Writeln (&lsquo-Добре, спасибі `).
5. End.
6. i: = i + 1.
Як видно, досить легко і навіть цікаво використовувати основні алгоритмічні конструкції. Базові алгоритми дійсно широко відомі, без них неможливо писати програми.
Цикл з умовою поста
Цикл з умовою поста може повторювати невизначену кількість дій без вставки в них операторних дужок або складних слів. Він обов`язково виконається хоча б один раз. Працює цикл, поки умова є хибним. Припиняється він при становленні показників правильними. На цьому побудований алгоритм. Основні алгоритмічні конструкції такого типу працюють саме в даному темпі.
Для реалізації цього циклу необхідна конструкція Repeat A until B. Дослівно вона переводиться як «повторювати дії, поки умова помилкова». Відповідно, через А виражений сам процес повторення, через В - дані, які в результаті повинні прийняти правильне значення.
Цикл з передумовою
Цикл з умовою поста будується таким чином, що він виконується мінімум один раз в будь-якому випадку. Однак є такі випадки, коли цикл необхідний в разі того чи іншого умови, а при його відсутності повторення здійснюватися не повинні. Інакше результат буде невірним. Саме в такому випадку використовується цикл з передумовою. Для його створення необхідна конструкція «while A do B». Перша команда дослівно перекладається як «поки». А - умова, а В - дії, які будуть повторюватися. Вся конструкція означає: «поки умова є вірним, виконувати дії».
Всі основні алгоритмічні конструкції працюють лише в певних випадках. Які ж вони в циклі з передумовою? Якщо необхідно, щоб повторювалося не одне дію, а відразу декілька, то варто використовувати або складові оператори, або спеціальні дужки. Цикл цілком може не виконатися, якщо при входженні в нього умова не є вірним. Відповідно, повторюватися дії будуть, якщо воно правильне.
допоміжний алгоритм
Допоміжний алгоритм використовується в інших процесах за допомогою вказівки лише його імені. Він до основних алгоритмическим конструкціям не відноситься. У мовах програмування такий процес дій називається підпрограмою. Для полегшення роботи з кодом і згодом більш простого рішення задач кожна дія об`єднується в один блок, який і є допоміжним алгоритмом. Кожному з них можна задати своє ім`я, що дозволяє згодом неодноразово звертатися до нього.