Поняття алгоритму та типи алгоритмічних процесів
Технології та інструментальні засоби програмування
Будь-яке завдання перед рішенням на ЕОМ вимагає формалізованої підготовки, що включає сукупність рішень по складу і змісту вхідних і вихідних даних, а також процедурам перетворення вхідних повідомлень у вихідні, які описуються алгоритмом розв'язання задачі з найбільш раціональним використанням технічних, інформаційних, програмних і організаційних (людських) ресурсів.
У формулюванні завдання повинні бути присутніми: характеристика завдання, опис вхідної та вихідної інформації, математичний опис завдання, опис алгоритму розв'язання задачі і розробка контрольного прикладу.
Якщо завдання не має математичного формулювання її рішення, використовується опис логіки послідовних дій у вигляді виконуваних функцій обробки інформації по завданню. Математична або логічна модель вирішення задачі повинні бути досить деталізовані, щоб можна було скласти алгоритм і програму рішення задачі.
Алгоритм рішення задачі - це система точно сформульованих правил, що визначають процес перетворення вхідної інформації у вихідну за кінцеве число кроків. Він відображає послідовність і логіку виконання операцій обробки інформації.
Алгоритм є основою програми, що забезпечує машинну реалізацію рішення задачі.
Алгоритм повинен відповідати таким вимогам: бути зрозумілим, легко перевіряється, допускати можливість його зміни без істотної перебудови всієї структури.
До основних властивостей алгоритму відносяться:
дискретність - розбивка процесу рішення на етапи обробки (окремі кроки виконання);
визначеність - однозначність і точне виконання кожного етапу;
здійсненність - рішення кожного етапу і всієї завдання за кінцеве число кроків;
масовість - використання алгоритму для певного класу задач.
Алгоритм може мати словесну запис з використанням загальноприйнятих математичних символів і логічних виразів. Але найчастіше детально опрацьовані алгоритми зображуються графічно - у вигляді блок-схем, відповідно до вимог структурного програмування.
При розробці блок-схем алгоритмів використовуються спеціальні умовні позначення, які определяютяся ГОСТом, наприклад:
для позначення початку і кінця роботи - овал (еліпс);
для блоків введення даних в ЕОМ і виведення результатів - паралелограми;
для блоків обробки - прямокутник;
для блоків прийняття рішень - ромби і т.д.
Алгоритми розрізняються за структурою: виділяють лінійні, розгалужуються і циклічні алгоритмічні процеси.
Лінійні алгоритмічні процеси є складовою частиною будь-якого алгоритму і включає фіксований перелік блоків (операторів). Кожен черговий блок починає «працювати» після завершення обробки інформації в попередньому блоці без додаткових умов.
Однак на практиці чисто лінійні завдання вирішуються вкрай рідко. Більшість завдань містять перевірку умов, в залежності від яких подальше рішення йде по одному з декількох можливих напрямків, тобто має місце розгалужується алгоритмічний процес. так звана альтернативна структура. Кожна альтернатива може виконуватися не більше одного разу, причому виконання однієї з 2-х альтернатив - обов'язково.
Розвитком даного типу структури є множинна альтернатива. коли послідовно перевіряються умови виконання кількох альтернатив. В цьому випадку, якщо якась умова істинно, обробляється відповідна йому альтернатива і відбувається вихід. В іншому випадку проводиться перехід до перевірки наступного альтернативи і т.д.
Циклічний алгоритмічний процес зводиться до багаторазового повторення певних кроків алгоритму (циклу), кожного разу з використанням нових значень (параметрів циклу). Цикл може бути складним, тобто всередині одного циклу, крім лінійних процесів, можуть міститися інші цикли, а також розгалужуються процеси.
При циклічної структурі алгоритму в блоці «Умова» задається умова виконання тіла циклу певної обробки. Якщо умова не виконується, цикл переривається і здійснюється вихід.
Тіло циклу - довільна послідовність блоків (операторів) обробки, яке при складній структурі може містити не тільки послідовні, але і розгалужуються і циклічні структури (тобто вторинні умови і цикли). Умови можуть містити лічильник допустимого числа повторень виконання тіла циклу.