Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмізація та програмування.doc
Скачиваний:
33
Добавлен:
16.11.2019
Размер:
3.81 Mб
Скачать

Приклади задач

1. Побудувати алгоритм обчислення значень функції

у = х tg (x/ 2) + 2 ln cos (x/ 2) ,

де х = 0,5; 0,6 ... 1,5.

Результат надрукувати у вигляді таблиці.

Для побудови цього алгоритму треба ввести граничні значення х1= 0,5, х2 = 1,5 та крок зміни h = 0,1. До тіла циклу входитимуть операції обчислення y та друку пap значень х, у.

2. Побудувати алгоритм обчислення найбільшого цілого додатного числа n, що задовольняє умову:

n3+ 30n – 1 > 0.

Цей циклічний алгоритм відрізняється тим, що вихід із нього організується за допомогою перевірки умови, яку задано нерівністю. Отже, алгоритм матиме такий вигляд (рис. 5.26):

Рис. 5.26. Алгоритм задачі 2

3. Побудувати алгоритм знаходження у = х! (y =1 2 3 ... х)

4. Дано натуральне число n < 10000. S — сума його цифр. Побудувати алгоритм пошуку S.

Отже, маємо ціле число (не більше 4 цифр). Для обробки інформації, представленої у вигляді рядка цифр, використовують операції цілочисельного ділення div та mod, результатом операції div є найближче ціле число, що не перевищує частки від ділення.

7 div 3 = 2;

2 div 3 = 0.

Результатом операції mod є ціле число — остача від ділення:

7 mod 3 = 1;

2 mod 3 = 2.

Отже, використовуючи ці дві операції, можна визначити кількість цифр у числі, значення кожної цифри.

Алгоритм цієї задачі зображено на рис. 5.27.

Рис. 5.27. Алгоритм задачі 4

5. Дано натуральне число n. Утворити нове натуральне число m, взявши цифри числа n у зворотному порядку (n < 10000).

6. Дана послідовність 6 цифр. Чи може вона визначати дату? (ЧЧММГГ).

Існують класи задач, які є алгоритмічно нерозв’язними, але, використовуючи наближені методи, можна побудувати алгоритми їх розв’язання деяких підкласів або з деякими припущеннями, які не є суттєвими у певних умовах. До таких класів належать, наприклад, задачі інтегрування. Існують різні методи обчислення інтегралів. Розглянемо один із них, а саме — визначення інтегралу як площі, обмеженої графіком, підінтегральної функції (рис. 5.28).

Рис. 5.29. Алгоритм обчислення визначеного інтегралу

Рис. 5.28. Визначення інтегралу як площі фігури  f(x)dx = S.

S можна обчислити як суму площ маленьких прямокутників, висота яких — значення f(x) у точках відрізку [а, b], отриманих із кроком h, а основа у всіх однакова — h. Таким чином, чим дріб­ніший крок розділення відрізку [а, b], тим ближче будуть значення S до результату інтегрування.

Побудуємо загальний алгоритм (рис. 5.29).

7. Побудувати алгоритм визначення інтегралу з кроком 0,01

8. Побудувати алгоритм визначення інтегралу з кроком 0,01

Заняття 3: Алгоритмізація обробки одновимірних масивів

Запитання для перевірки знань

1. Індекси масивів та циклічні змінні.

2. Принцип розміщення елементів масиву у пам’яті ЕОМ.

3. Організація обробки одновимірних масивів.

Приклади задач

1. Дано одновимірний масив А = {аі}, і = 1, 2 ... n. Побудувати алгоритм пошуку максимального елемента масиву та його індексу.

Цикл повторюється n разів, параметр циклу — і. Позначимо максимальний елемент через М, його індекс — k. Зауважимо, що коли шукаємо максимальний (мінімальний) елемент, то спочатку присвоїмо йому значення першого елемента, щоб потім у циклі порівнювати його з усіма іншими елементами масиву.

Алгоритм розв’язання цієї задачі зображено на рис. 5.30.

Рис. 5.30. Алгоритм пошуку максимального елемента масиву та його індексу

2. Дано одномірний масив А = {аі}, і = 1, 2 ... n. Побудувати алгоритм упорядкування за зростанням елементів масиву, використовуючи метод попарного порівняння.

Зауважимо, що попарне порівняння двох сусідніх елементів та їх впорядкування не обов’язково приведуть одразу до впорядкованого масиву, адже перестановка двох елементів може спричинити порушення попередньої впорядкованості. Отже, процес попарного впорядкування треба повторювати, доки не прийдемо до ситуації, коли при перегляді масиву не зроблено жодної перестановки. Звідси випливає, що треба ввести спеціальну змінну, яка стане лічильником перестановок при кожному перегляді масиву.

Таким чином, необхідно ввести змінну циклу і та лічильник перестановок k.

Для введення масиву треба організувати окремий цикл, для виводу впорядкованого масиву теж, і для впорядкування елементів ще один, який повторюватиметься, поки змінна k не залишиться рівною 0 після чергового виходу із циклу. Побудуємо алгоритм (рис. 5.31).

3. Дано масиви А = {аі}, В = {bі}, і = 1, 2 ... n. Побудувати масив С ={сі} за правилом:

Рис. 5.31. Алгоритм упорядкування масиву за зростанням елементів методом попарного порівняння

Принципово ця задача не відрізняється від попередніх. Побудуємо алгоритм (рис. 5.32).

Рис. 5.32. Алгоритм сумісної обробки двох масивів

4. Утворити вектор В із вектора А = (aі), і = 1, 2 ... n, взявши його компоненти у зворотньому порядку.

5. Дано масив A = (aі), і =1, 2 ... n. Впорядкувати його за зростанням за допомогою сортування вибором (відшукується максимальний елемент і переноситься у кінець. Серед тих елементів, що залишились, відшукується max елемент і т. д.).

6. Утворити вектор В = (bj) з вектора А = (aі), і = 1, 2 ... n, викинувши з нього всі від’ємні елементи.

7. Дано масив значень Х = (xі), і = 1, 2 ... n та сукупність значень F = (fі) статистичної ваги значень хі. Знайти середнє квадратичне зважене за формулою:

Заняття 4. Алгоритмізація обробки двовимірних масивів

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]