Тема. Форми подання
алгоритмів
Використовують такі способи подання (опису) алгоритмів:
• словесно-формульний (опис здійснюється в словесній формі з використанням математичних чи інших формул);
• графічний (за допомогою блок-схем або структурограм (діаграм) Нессі-Шнейдермана);
• з використанням спеціальних алгоритмічних мов (таких як навчальна алгоритмічна мова);
• у вигляді програм, написаних певною мовою програмування.
Розглянемо алгоритми розв’язування такої
задачі.
Задача
1. Є посудина місткістю 8 л,
яка заповнена рідиною, і дві порожні посудини місткістю 5 л і 3 л. Потрібно одержати в одній
з посудин 1 літр
рідини і повідомити в якій.
Розглянемо
виконавця, який має таку систему команд:
1. Перелити рідину з однієї посудини в іншу.
2. Наповнити одну з посудин рідиною з іншої
посудини.
3.
Вивести повідомлення.
Для
цього виконавця алгоритм розв’язування цієї задачі буде таким:
1. Наповнити 3-літрову посудину з 8-літрової.
2. Перелити з 3-літрової посудини в 5-літрову.
3. Наповнити 3-літрову посудину з 8-літрової.
4. Наповнити 5-літрову посудину з 3-літрової.
5. Вивести повідомлення: «1 л одержано в
3-літровій посудині».
Наведений
алгоритм, записаний у вигляді послідовності команд,
кожна з яких має свій порядковий номер і записана українською мовою, тобто
мовою людського спілкування. Така форма подання алгоритму називається словесною.
Характерними рисами цього алгоритму є те, що всі
його команди виконуються в записаній послідовності, кожна команда алгоритму
обов’язково виконується, причому тільки один раз. Такі алгоритми (або фрагменти
алгоритму) називаються лінійними.
Але
словесна форма подання алгоритму не завжди є зручною і наочною. Тому, крім
такої форми подання, часто використовують графічну форму подання алгоритму, або
подання алгоритму у вигляді блок-схеми.
У
блок-схемі алгоритму кожна команда записується в геометричній фігурі (блоці)
певного вигляду. Блоки з’єднуються між собою стрілками, які вказують напрям
переходу для виконання наступної команди алгоритму.
Деякі елементи (блоки) блок-схеми алгоритму
Найменування
|
Позначення
|
Призначення
|
Термінатор
|
Початок або кінець алгоритму
|
|
Процес
|
Виконання однієї або кількох команд
|
|
Дані
|
Введення вхідних даних (аргументів) або
виведення вихідних даних (результатів)
|
|
Рішення
|
Прийняття рішення залежно від результату
перевірки вказаної умови
|
Розглянемо ще одну задачу – задачу на обчислення
значення виразу, і складемо алгоритм її розв’язування.
Задача 2. Обчислити значення виразу (a – b) * (c – d),
де a, b, c, d – дійсні числа.
Розглянемо виконавця, який вміє отримувати
значення змінних, виконувати арифметичні операції над дійсними числами,
запам’ятовувати результати арифметичних операцій і повідомляти результат.
Передавання даних виконавцеві називається введенням
даних, а повідомлення виконавцем результатів виконання алгоритму – виведенням даних (результатів).
Запишемо алгоритм розв’язування задачі 2 для
такого виконавця в словесній формі.
1. Увести
значення змінних a, b, c, d. (У результаті виконання цієї команди виконавець запам’ятовує введені дані
як значення відповідних змінних.)
2. Обчислити значення виразу a – b і результат присвоїти змінній х (запам’ятати
як значення цієї змінної).
3. Обчислити значення виразу c – d і результат присвоїти змінній у (запам’ятати як значення цієї змінної).
4.
Обчислити значення виразу х*у і результат присвоїти змінній z.
5. Вивести
значення змінної z.
У командах 2–4 обчислюється значення виразу і
результат обчислення присвоюється (запам’ятовується як значення) певній
змінній. Такі команди називаються командами
присвоювання. Для них прийнято використовувати таку форму запису:
2. х := a – b
(читається: змінній х присвоїти значення виразу a – b).
3. у := c – d
(читається: змінній y присвоїти значення виразу c – d).
4. z := х*у (читається: змінній z присвоїти значення виразу x*y).
Знак := називається знаком присвоювання та
складається з двох символів: двокрапки і дорівнює, які записуються без пропуску
між ними..
Цей алгоритм також є лінійним, бо при кожному
наборі значень змінних a, b, c, d
кожна його команда обов’язково виконується, причому тільки один раз.
На практиці часто виникають
ситуації, коли залежно від виконання будь-якої умови маємо змінити послідовний
хід обчислень. У схему алгоритму логічна умова вводиться за допомогою
умовного блока. Цей блок прийнято зображати у вигляді ромба з одним входом і
двома виходами:
Якщо умова, зазначена на зображенні блока, виконується
(умова має значення Істина), то відбувається перехід по стрілці Так,
якщо не виконується (значення Хибність) – по стрілці Ні. Завдяки
умовному блоку обчислювальний процес ніби розгалужується, тобто умовний блок
використовується для організації розгалуження.
Немає коментарів:
Дописати коментар