2 Розробка алгоритму
Запис y = tg(x) є функцією, для якої відомо, що tg(x) = sin(x)/cos(x). Тому tg(x) приймає значення (існує), коли cos(x) ≠ 0 . Враховуючи те, що х приймає декілька значень слід використовувати масиви – x[i] та у[i], де і – кількість значень змінних. Значення x[i] може бути випадковими.
Враховуючи можливості технології програмування (тобто можливості мови програмування С++) розглянемо розробку схеми алгоритму для таких випадків:
- не має масивів і в алгоритмі передбачається повторне його виконання;
-
використовуються масиви, тобто організується робота з y[i] та x[i];
-
функція tg(x) існує в стандартній бібліотеки і звернення до неї має назву tan(x). Функція повертає значення у або ERRON, коли cos(x) = 0;
-
користувач створює свою окрему функцію F(x) = tg(x), текст програми якої розміщується за межами тексту головної програми. З тексту головної програми до тексту програми функції F(x) передається поточне значення x[i]. Програма F(x) обчислює значення y (або ERRON) і повертає його як y[i] у головну програму.
3 Схема алгоритму
Алгоритм – прийнята послідовність операцій з урахуванням до окремих вимог (збіжність, швидкість, масовість, ефективність та інші). Схема алгоритму це упорядковане зображення прийнятих графічних фігур, за кожною з яких закріплена окрема операція. Для зображення схем алгоритмів використовується біля 50 різних графічних фігур. В таблиці № 1 приведені найбільш поширені до використання графічні зображення та описані їх функції (витяг з ДСТУ 19.701-90 ЄСПД ”Схеми алгоритмів і програм. Позначення умовні графічні).
Таблиця 1 Список (скорочений) графічних символів для побудови схем
№ |
Найменування |
Пзначення і розмірив мм |
Функція |
1 |
Пуск-зупинка |
b = 10мм,15, 20, 25, 30, … 0.5b b |
Початок, кінець, переривання процесу обробки даних або виконання програми |
2 |
Пуск-початок
|
|
Символи застосовують на початку схеми алгоритму або програми. В середині символу може вказуватися найменування дії або ідентифікатор програми
|
3 |
Зупинка, кінець, повернення
|
|
|
4 |
Процес |
5 a =10мм, 15, 20,…
а b=1,5a b |
Виконання операцій, в результаті яких змінюється значення, форма уявлення або розташування даних |
5 |
Зумовлений пpоцес |
5
а b |
Використання раніше створених і окремо описаних алгоритмів або програм (використання стандартної бібліотеки) |
6 |
Скорочена деталізація |
5 Місто для назви а Name b |
Скорочене позначення схеми алгоритму або програми. Деталізуєма частина програми позначається і закінчується символами ”Початок” i “Повернення”. Над горизонтальною лінією розміщується назва скорочення (Name) |
7
|
Рішення, умова
|
5 5 + - - + |
Вибір напряму виконання алгоритму або програми залежно від певних змінних умов (+ да, - ні) |
8 |
Модифікація |
|
Виконання операцій (операції циклу кількістю i=1,n), які міняють команди або групи команд, що змінюють програму |
9 |
Операція введення-виведення |
5
|
Перетворення даних у форму, придатну для обробки (уведення) або відображення результатів обробки (виведення) |
10 |
З`єднувач
|
|
Вказівка між перервними лініями потоку, зв’язуючими символами |
11 |
Коментар |
Текст коментаря |
Зв’язок між елементом схеми і поясненням
|
12 |
З`єднувач з перенесенням на інший лист |
На лист 5
З листа 7 |
З`єднувач оформляє розрив ліній, який буває внутрішнім і зовнішнім (між сторінками) |
На рис. 1, 2, 3 та 4 зображені схеми алгоритмів, розглянутих вище варіантів вирішення задачі.
початок
1 1
продовження
2 2 9
Уведення n, зоголовок
значення Х k=const i,x[i],y[i]
3 3 10
Z = COS(X) модифі-
4 катор
4 4 11
- перевірка Z=0 x[i] значення
+ i,x[i],y[i]
- рішення Y = SIN(X)/Z
5 5
z[i] = cos(x[i] )
6 вивід значення Y 12
6 9 6
вивід – немає z [i]= 0
рішення Z = 0 -
+
7 7 8
продовжувати - y[i]=sin(x[i])/z
+
-
8 кінець
Рис 1 Схема алгоритму Рис 2 Схема алгоритму з масивами
без масивів
F(x)=tg(x[i]) -
1 1 7 початок
2 2 8
i = 1,n i = 1,n z = cos(x[i])
модифікатор
3 3 перевірка
yведення уведення 9 z = 0
x[i] x[i] +
- y(x[i])=
4 sin(x[i])/z
tan(x[i]) – функція 4
стандартної бібліотеки
результат y[i] або ERRNO 10 11
5 F(x[i])
вивід y[i] або ERRNO, 5
як що немає рішення
5
вивід y[i] 12
6 або ERRON повернення
кінець return y(x[i])
6
кінець
Рис 3 Схема алгоритму з Рис 4 Схема алгоритму з використанням
використанням функції користувача
стандартної бібліотеки