Складання алгоритму рішення
Остаточний варіант математичного формулювання і обраний метод рішення дозволяють створити однокрокову схему алгоритму розв'язання задачі 4.3, представлену на рис. 4.9.
Створена структура подвійного послідовного розгалуження при необхідному зміні вмісту обчислювальних блоків може використовуватися при вирішенні будь-яких завдань, в який повинен розпізнаватися двох взаємовиключних умов, одне з яких - головне.
Алгоритм, як стандартний, містить ряд паралельно розташованих блоків (7-12). Для можливості подальшого програмування перетворимо його в дві умовно-лінійні схеми (рис. 4.10).
У лівій схемі природний порядок виконання блоків відповідає гілкам «НІ», а в правій - гілкам «ТАК».
Мал. 4.9 Основна схема алгоритму завдання 4.3.
Мал. 4.10 Умовно-лінійні варіанти схем алгоритму
Ідентифікація змінних представлена в табл. 4.8.
Умовно-лінійні схеми алгоритму та таблиця ідентифікації дозволяють скласти програми вирішення задачі.
Програма по лівій умовно-лінійної схемою
Особливість лівої умовно-лінійної схеми - збереження природного порядку розрахунку при невиконанні окремих умов і порушення цього порядку, коли умови виконуються. Програмування такого варіанту вимагає використання укороченого if.
/ * Складне розгалуження. Скорочений if * /
float t, v, vopt, rb, pr1, pr2, fbo, f;
scanf ( "% f% f% f% f% f% f", t, v, vopt, rb, pr1, pr2);
printf ( "\ n t =%. 1f v =%. 1f vopt =%. 1f rb =%. 1f"
"Pr1 =%. 1f pr2 =%. 1f", t, v, vopt, rb, pr1, pr2);
fbo = rb * t / 60 .; / * Витрата бензину при оптимальній швидкості * /
if (vopt-0.01 <= v && v <= vopt+0.01) goto m1; /*переход */
if (v f = fbo + fbo * pr2 / 100 .; / * Гілка 3 * / m2: f = fbo + fbo * pr1 / 100 .; / * Гілка 2 * / m1: f = fbo; / * Гілка 1 * /Схожі статті