КОНТРОЛЬНА РОБОТА 2 3 страница
Алгоритм розгалуженої структури, - виконує дії в одному з передбачених напрямків
Алгоритм циклічної структури – передбачає виконання багаторазово повторюваних дій.
3.5. Приклад виконання задачі 1Б
Завдання: відповідно до умови розробити алгоритм лінійної структури й скласти програму.
Умова: знайти площу грані, площа повної поверхні й об'єм куба з довжиною ребра - а.
Розв'язання: приймемо позначення: а → А, Sгр → SGR,
Sп→ SP, Vкуб → V
Блок – схема Програма
REM алгоритм лінійної структури ‘оператор- коментар
INPUT “Довжина ребра куба A”; A ‘ введення даних
SGR = A ^ 2
SP = SGR * 6 ‘оператори присвоювання
V = A ^ 3
PRINT “Sгр =”;SGR;“Sп =”;SP;“V =”; V ‘ виведення
END ‘ кінець програми
Результат виконання програми:
Довжина ребра куба A? 3_
Sгр = 9 Sп = 54 V = 27
3.6. Приклад виконання задачі 2А
Завдання: відповідно до умови задачі розробити алгоритм розгалуженої структури і скласти програму обчислення функції.
Умова: Обчислити значення функції , де 
Розв'язання: приймемо позначення: Y → Y, a → A, x → X, n → N
При розв'язанні необхідно передбачити два варіанти: при рівності нулю знаменника у формулі Y обчислення не відбувається й видається текстове повідомлення, а якщо ні, то обчислюється значення функції Y і друкується результат
Блок – схема

+ -
Програма
REM алгоритм розгалуженої структури ‘оператор - коментар
INPUT “ A, N”; A, N ‘введення данных
X = SIN (N+1) / (2+N) ‘оператори присвоювання
IF X < > 0 THEN ‘оператор умовного переходу
Y = (A+TAN(A ^ 2+1)) / X ^ 2 ‘оператори присвоювання
PRINT “Y =”; Y ‘виведення
ELSE
PRINT “Функція Y не визначена” ‘виведення
END IF ‘завершення оператора умовного переходу
END ‘ кінець програми
Результат виконання програми:
1-й варіант
A, N? 2, 3_
Y = -60.25818266
2-й варіант
A, N? 2, -1_
Функція Y не визначена
3.7. Приклад виконання задачі 2Б
Завдання: відповідно до умови задачі розробити алгоритм розгалуженої структури і скласти програму обчислення функції.
Умова: , якщо 1 < x < 2
y = , якщо x ≥ 2
, якщо x ≤ 1
Розв'язання: приймемо позначення: Y → Y, x → X, a → A, b → B
При розв'язанні необхідно передбачити три можливі варіанти обчислення функції Y по одній із трьох формул залежно від умов.
Блок – схема
+ -
-
+
Програма
REM алгоритм розгалуженої структури ‘оператор - коментар
INPUT “ A, B, X”; A, B, X ‘введення данных
IF X > 1 AND X < 2 THEN ‘оператор умовного переходу
Y = (A+ X^2) ^ (1 / 3) ‘оператори присвоювання
ELSE IF X > = 2 THEN ‘оператор умовного переходу
Y = LOG (0.5 + X) ‘оператори присвоювання
ELSE
Y = SIN (ABS(X)) + B ‘оператори присвоювання
END IF ‘завершення оператора умовного переходу
END IF ‘завершення оператора умовного переходу
PRINT “Y =”; Y ‘виведення
END ‘ кінець програми
Результат виконання програми:
1-й варіант A, B, X? 2, 3, 1.5 _
Y = 1.61977
2-й варіант A, B, X? 2, 3, 4 _
Y = 1.504077
3-й варіант A, B, X? 2, 3, -1 _
Y = 3.017452
3.8. Приклад виконання задачі 3 А
Завдання: Розробити алгоритм циклічної структури и скласти програму табулювання функції.
Умова: , де , 
Розв'язання: приймемо позначення: yk → yk, xk → xk, Δ → DL, k → К
В основі розв'язання лежить простий цикл, при реалізації якого заздалегідь відоме число циклічних дій (повторень). Розв'язання можна здійснити за допомогою операторів WHILE – WEND, DO – LOOP, FOR – NEXT.
Блок – схеми
1. Цикл ''Поки'' 2. Цикл '' До'' 3. Цикл ''З лічильником''

+
-
+
Зауваження:
в алгоритмах № 1 і 2 необхідно до початку циклічних дій виконати початкові присвоювання – дії, що забезпечують виконання першого кроку циклу (у даному прикладі – це початкове значення параметра циклу k = 2).
Програми
REM алгоритм циклічної структури ''Поки'' ‘оператор - коментар
INPUT “ DL”; DL ‘введення даних
K= 2 ‘оператор присвоювання
WHILE K < = 10 ‘оператор початку циклу
XK =0.2+DL * K : YK = SIN(ABS(1- XK))^3 ‘оператор присвоювання
PRINT “Y''; K;” =”; YK ‘виведення
K= K+2 ‘оператор присвоювання
WEND ‘завершення циклу
END ‘ кінець програми
REM алгоритм циклічної структури '' До'' ‘оператор - коментар
INPUT “ DL”; DL ‘введення даних
K= 2 ‘оператори присвоювання
DO ‘оператор початку циклу
XK =0.2+DL * K : YK = SIN(ABS(1- XK))^3 ‘оператори присвоювання
PRINT “Y''; K;” =”; YK ‘виведення
K= K+2 ‘оператори присвоювання
LOOP UNTIL K > 10 ‘завершення циклу
END ‘ кінець програми
REM алгоритм цикл. структури ''З лічильником'' ‘оператор-коментар
INPUT “ DL”; DL ‘введення даних
FOR K = 2 TO 10 STEP 2 ‘оператор початку циклу
XK =0.2+DL * K: YK = SIN(ABS(1- XK))^3 ‘оператори присвоювання
PRINT “Y''; K;” =”; YK ‘виведення
NEXT K ‘завершення циклу
END ‘ кінець програм и
Результат виконання програм:
DL? 0.3 _
Y2 = 7.841378E-03
Y4 = 5.905402E-03
Y6 = .5958232
Y8 = .9987214
Y10 = .5284869
3.9. Приклад виконання задачі 3 Б
Завдання: розробити алгоритм циклічної структури й скласти програму обчислення суми.
Умова: , де , 
Розв'язання: позначимо s → S, xi → XI, x0 → X0, h → H, i → I
Блок – схеми
1. Цикл ''Поки'' 2. Цикл '' До'' 3. Цикл ''З лічильником''


-
+
-
_

+
Зауваження:
У всіх алгоритмах до початку циклічних дій виконуються початкові присвоювання (у даному прикладі – це S = 0 – початкове значення суми й i = 1 – початкове значення параметра циклу в алгоритмах № 1 і 2).
Висновок результату обчислення суми здійснюється після закінчення циклічних дій.
Програми
REM алгоритм цикл. структури ''Поки'' ‘оператор - коментар
INPUT “ H, X0 ”; H, X0 ‘введення даних
I = 1: S = 0 ‘оператори присвоювання
DO UNTIL I > 11 ‘оператор начатку циклу
XI = X0+H * I: SI = COS (XI ^ 3) ‘оператори присвоювання
S = S + SI : I = I + 1
LOOP ‘завершення циклу
PRINT “S =”; S ‘виведення
END ‘ кінець програми
REM алгоритм цикл. структури '' До'' ‘оператор - коментар
INPUT “ H, X0 ”; H, X0 ‘введення даних
I = 1: S = 0 ‘оператори присвоювання
DO ‘оператор начатку циклу
XI = X0+H * I: SI = COS (XI ^ 3) ‘оператори присвоювання
S = S + SI : I = I + 1
LOOP WHILE I < = 11 ‘завершення циклу
PRINT “S =”; S ‘виведення
END ‘ кінець програми
REM алг. цикл. структури ''З лічильником''‘оператор - коментар
INPUT “ H, X0 ”; H, X0 ‘введення даних
S = 0 ‘оператори присвоювання
FOR I = 1 TO 11 ‘оператор начатку циклу
XI = X0+H * I: SI = COS (XI ^ 3) ‘оператори присвоювання
S = S + SI
NEXT I ‘завершення циклу
PRINT “S =”; S ‘виведення
END ‘ кінець програми
Результат виконання програм:
H, X0? 1.2, 0.4 _
S= -4.155788
3.10. Приклад виконання задачі 4
Завдання: розробити алгоритм комбінованої структури й скласти програму.
Умова:Обчислити значення функції
,0,5 < с < 2,5
y = , с ≤ 0,5 або с ≥ 2,5,
для с = -1,5 ; -0,5 ; -0,1 ; 0 ; 0,5 ; 1,75 ; 1,8 ; 2,5 ; 3,4 ; 5,7.
Тут . Знехтувати членами ряду, меншими ε = 10 - 4
Розв'язання: позначимо z → Z, zn → ZN, i →I, n → N, ε → EPS як прості змінні, c → C(I), y → Y(I) як одномірні масиви, довжина кожного з яких становить 10 елементів ( по кількості заданих значень с).
Комбінований алгоритм даної задачі складається із фрагментів алгоритму, що розгалужується, і двох циклічні: простого (із заздалегідь відомим числом повторень) і ітераційного (для обчислення сумиZ), припинення якого відбувається при досягненні заданої точності обчислень zn < ε = 10-4.
Реалізація ітераційного циклу можлива тільки за допомогою циклічних алгоритмів типу ''Поки'' або '' До''. Для простого циклу можна використовувати цикл ''З лічильником''.
Перша частина алгоритму виконує обчислення змінної Z (ітераційний цикл) значення якої використовується в другої частині (простий цикл обчислення функції Y(I) з розгалуженням – вибором відповідної формули, в залежності від введеного значення змінної C(I)).
1-й варіант
Блок – схема
+

+ -
Програма
REM алгоритм комбінованої структури ‘оператор - коментар
DIM EPS,N,Z,ZN,I,C(1 TO 10),Y(1 TO 10) ‘ опис змінних
INPUT “ EPS ”; EPS ‘введення даних
DATA –1.5,-.5,-.1,0,.5,1.75,1.8,2.5,3.4,5.7 ‘ рядок даних
N = 1: Z = 0 ‘оператори присвоювання
DO ‘оператор начатку циклу
ZN = 0.1*N / (N+0.6)^3: Z=Z+ZN ‘оператори присвоювання
N= N + 1
LOOP WHILE ABS(ZN) > EPS ‘завершення циклу
PRINT “Z=”; Z ‘виведення
FOR I = 1 TO 10 ‘оператор начатку циклу
READ C(I) ‘ введення даних
IF C(I)> .5 AND C(I)< 2.5 THEN ‘оператор умовного переходу
Y(I) = (C(I) * Z - 3) ^ 2 ‘оператор присвоювання
ELSE Y(I) = .5 * Z ^ 3 - 5 * C(I) оператор присвоювання
END IF ‘завершення оператора умовного переходу
PRINT “Y”; I; “=”;Y(I) ‘виведення
NEXT I ‘завершення циклу
END ‘ кінець програми
2-й варіант (з використанням підпрограми користувача)
Зауваження
Фрагмент обчислення Z виділений в окремий програмний модуль – підпрограму користувача (SUB) з іменем SUMZ.
Місце підпрограми SUB - після тексту основного модуля.
Уведення програми, у тексті якої перебуває звертання до підпрограми користувача, виконується за 2 кроки:
- після введення останнього рядка основної програми необхідно ввести частину заголовка процедури, а саме SUB <ім'я> і натиснути ENTER.
На екрані з'являться 3 рядки
SUB ім'я
-
END SUB
- уведення тексту процедури.
Після введення останнього оператора підпрограми необхідно натиснути клавішу F2.
|