Лінійні алгоритмиПрості завдання мають лінійний алгоритм рішення. Це означає, що він не містить перевірок умов і повторень. Приклад 1. Пішохід йшов по перетнутій місцевості. Його швидкість руху по рівнині v1 км/ч, в гору — v2 км/ч і під гору — v3 км/ч. Час руху відповідно t1, t2 і t3 ч. Який шлях пройшов пішохід?
Для перевірки працездатності алгоритму необхідно задати значення вхідних змінних, обчислити кінцевий результат по алгоритму і порівняти з результатом ручного рахунку. Приклад 2. Дано натуральне тризначне число n, в записі якого немає нулів. Скласти алгоритм, який повертає значення ІСТИНА, якщо вірне твердження: "число n кратне кожній своїй цифрі", і БРЕХНЯ — інакше.
На приведеній вище схемі DIV і MOD відповідно операції ділення без остачі і отримання залишку від цілочисельного ділення. У фігурних дужках записані пояснення (коментарі) до операторів. Розвилка Досить часто та або інша дія має бути виконана залежно від значення логічного виразу, що виступає як умова. У таких випадках використовується розвилка. Приклад 1. Обчислити значення функції
При тестуванні алгоритмів з розвилкою необхідно підбирати такі початкові дані, щоб можна було перевірити всі гілки. У приведеному вище прикладі повинно бути принаймні три тестові набори. Приклад 2. Дано натуральне число n. Якщо число непарне і його подвоєння не приведе до виходу за 32767 (двобайтове ціле число із знаком), подвоїти його, інакше — залишити без зміни. Щоб задовольнити умові подвоєння, число n має бути непарним і менше 16384.
Розглянутий приклад ілюструє неповну розвилку. Також слід зазначити, тут логічний вираз, що є умовою, містить 2 операнди. Цикли Якщо які-небудь оператори необхідно виконати кілька разів, то їх не переписують кожного разу наново, а організовують цикл. Приклад 1. Підрахувати кількість непарних цифр в записі натурального числа n. Ідея рішення. Із заданого числа вибирати з молодшого розряду цифру за цифрою до тих пір, поки воно не вичерпається, тобто стане рівним нулю. Кожну непарну цифру враховувати.
Завдання вирішене двома способами. Зліва рішення оформлене з використанням циклу з передумовою, справа — з постумовою. Приклад 2. Дана послідовність, загальний член якої визначається формулою
Обчислити при n>2 суму тих її членів, які більше заданого числа e. При рішенні задачі знаходиться черговий член послідовно і, якщо він більше e, додається до суми.
У розглянутих вище прикладах кількість повторень заздалегідь невідома. У першому воно залежить від кількості цифр в записі натурального числа, в другому — від числа e. У тих же випадках, коли кількість кроків відома з умови завдання, простіше і вигідніше використовувати цикл з параметром. Приклад 3. Знайти добуток перших к натуральних чисел, кратних трьом. При складанні алгоритму врахуємо, що перше натуральне число, кратне 3, є трійка, а всі подальші більші попереднього на 3.
Інші приклади будуть записані вже на МПВР. У даній же публікації зроблена спроба продемонструвати, що вивчення програмування розумно починати власне з розробки алгоритмів, не акцентуючи спочатку уваги на записі алгоритму на тій або іншій мові програмування. В той же час автор, будучи прихильником структурного підходу до програмування, пропонує дотримуватися цього підходу і при програмуванні на рівні блок-схем.
|