Поняття алгоритму та типи алгоритмічних процесів

Технології та інструментальні засоби програмування

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

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

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

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

Алгоритм є основою програми, що забезпечує машинну реалізацію рішення задачі.

Алгоритм повинен відповідати таким вимогам: бути зрозумілим, легко перевіряється, допускати можливість його зміни без істотної перебудови всієї структури.

До основних властивостей алгоритму відносяться:

дискретність - розбивка процесу рішення на етапи обробки (окремі кроки виконання);

визначеність - однозначність і точне виконання кожного етапу;

здійсненність - рішення кожного етапу і всієї завдання за кінцеве число кроків;

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

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

При розробці блок-схем алгоритмів використовуються спеціальні умовні позначення, які определяютяся ГОСТом, наприклад:

для позначення початку і кінця роботи - овал (еліпс);

для блоків введення даних в ЕОМ і виведення результатів - паралелограми;

для блоків обробки - прямокутник;

для блоків прийняття рішень - ромби і т.д.

Алгоритми розрізняються за структурою: виділяють лінійні, розгалужуються і циклічні алгоритмічні процеси.

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

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

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

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

При циклічної структурі алгоритму в блоці «Умова» задається умова виконання тіла циклу певної обробки. Якщо умова не виконується, цикл переривається і здійснюється вихід.

Тіло циклу - довільна послідовність блоків (операторів) обробки, яке при складній структурі може містити не тільки послідовні, але і розгалужуються і циклічні структури (тобто вторинні умови і цикли). Умови можуть містити лічильник допустимого числа повторень виконання тіла циклу.