
- •Розділ і. Вступ. Основи алгоритмізації Тема: Поняття архітектури комп’ютера фон Неймана.
- •Принцип використання двійкової системи числення
- •Принцип програмного керування роботою комп'ютера
- •Принцип збереження програм у пам'яті комп'ютера
- •Принцип адресності пам'яті
- •Тема: Алгоритм і його властивості.
- •Тема: Базові структури алгоритмів.
- •Метод вставок
- •Метод вибору
- •Розділ іі. Мова програмування паскаль. Тема: Методології розробки програм.
- •Тема: Загальні відомості про мову Паскаль.
- •Тема: Опис стандартних типів.
- •Тема: Циклічні конструкції.
- •Тема: Табличні величини. Масиви даних.
- •Тема: Рядкові типи.
- •Тема: Підпрограми.
- •Тема: Модуль Graph. Графічний режим.
- •Побудова рухомих зображень
- •Тема: Файловий тип.
- •Тема: Вказівники.
- •Тема: Тип запис.
- •Тема: Множинні типи.
- •Тема: Потоки. Введення-виведення даних.
- •Тема: Адреси даних. Вказівники. Динамічна пам'ять.
- •Тема: Розгалуження.
- •Тема: Основні відомості по структурному програмуванню.
- •Тема: Функції.
- •Тема: Масиви даних.
- •Робота з даними в динамічній пам'яті
- •Проблеми, що пов'язані з вказівниками
- •Тема: Форматування потоків.
- •Функції для управління графічною системою:
- •Функції для установки параметрів зображення:
- •Функції для отримання зображення на екрані:
- •Функції для отримання параметрів зображення:
- •Список літератури
Тема: Базові структури алгоритмів.
Рекурентні алгоритми.
У математиці часто трапляється послідовність чисел, в якій кожний наступний член обчислюється з використанням одного або кількох попередніх членів. Такі послідовності називаються рекурентними.
Обчислення чисел в них ведеться за допомогою рекурентних алгоритмів.
Рекурентний алгоритм – це такий алгоритм, в якому значення наступного члена деякої послідовності обчислюється через значення одного або кількох попередніх членів.
Наприклад, в арифметичній прогресії кожний наступний член дорівнює попередньому, збільшеному на різницю прогресії:
аі=аі-1+d
Рекурсія – це така функція, значення якої для даного аргументу обчислюється за допомогою значень для попередніх аргументів.
Рекурентна формула – це така формула, яка зв’язує значення Р сусідніх членів деякої послідовності зі значенням наступного члена. Рекурентна формула дозволяє крок за кроком визначити будь-який член послідовності, якщо відомі Р перших її членів.
У послідовності Фібоначчі кожний наступний член дорівнює сумі двох (Р=2) попередніх членів: аі=аі-1+ аі-2, а1= а2=1.
Цікава історія цієї послідовності. У 1202 році Леонардо Пізанський (Італія), більш відомий як Фібоначчі, написав «Книгу про абаку (рахівницю)». У цій праці містилися майже всі арифметичні і алгебраїчні досягнення того часу.
Книга містить багато оригінальних задач, найбільш відома серед них – задача про кроликів: «Скільки пар кроликів народиться за рік від однієї пари, якщо природа кроликів така, що кожен місяць, починаючи з третього місяця після свого народження, пара народжує іншу?»
При розв’язуванні цієї задачі одержуємо таку послідовність:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …
Складемо, наприклад, блок-схему обчислення значення полінома Р(х)=а0хn+ а1хn-1+ а2хn-2+…+ аn-1х+ аn при заданих х і n та дійсних коефіцієнтах аі (і=0, 1, 2, …, n).
Обчислення проведемо за рекурентною схемою Горнера:
Р(х)=(…(а0хn+ а1) х+ а2)х+…+ аn-1 )х+ аn
Алгоритми пошуку.
Задача пошуку полягає у знаходженні в послідовності елементів одного або кількох елементів із заданими значеннями.
Наприклад, потрібно знайти елемент з найбільшим значенням маси або розміру. Як приклад розглянемо задачу визначення найбільшого яблука серед тих, що лежать у ящику.
Зробимо із дроту рамку розміром у перше довільно вибране яблуко. Тим самим ми «задалися» початковим розміром. Назвемо рамку еталоном. Беремо наступне яблуко і пробуємо пронести його через рамку. Якщо воно не проходить (більше еталону), то збільшуємо еталон до розміру цього яблука і беремо чергове яблуко. Якщо ж виявиться, що чергове яблуко менше еталона, то воно не найбільше, і ми відкладаємо його вбік. Коли ми таким чином порівняємо всі яблука, то еталонне яблуко буде найбільшим.
Аналогічно можна знайти найменше яблуко, але рамку потрібно кожний раз зменшувати до розмірів меншого яблука.
Використаємо цей метод для пошуку мінімального елемента послідовності чисел. Пошук будемо проводити шляхом порівняння усіх елементів зі змінним еталоном, якому заздалегідь надамо значення якого-небудь елемента.
Нехай еталонна змінна визначена як перший елемент. Порівняємо з нею другий елемент. Якщо виявиться, що він менший еталона, то змінимо еталон (надамо йому значення другого елемента), потім перейдемо до порівняння його з третім елементом.
Подібні порівняння проведемо для всіх елементів послідовності. По закінчені перегляду еталонна змінна буде мати мінімальне значення серед елементів послідовності.
Наприклад, знайдемо найменше число в послідовності чисел: 30, 45, 32, 12, 7, 27. алгоритм буде діяти таким чином:
приймаємо як еталон перше число, тобто 30;
порівнюємо еталон з 45, еталоном залишається 30;
порівнюємо еталон з 32, еталоном залишається 30;
порівнюємо еталон з 12, еталоном стає 12;
порівнюємо еталон з 7, еталоном стає 7;
порівнюємо еталон з 27, еталоном залишається 7;
7 є найменшим числом послідовності.
Частіше пошук елемента в послідовності проводиться за декількома параметрами. Наприклад, ми шукаємо і вибираємо одяг за розміром, ціною, фасоном, кольором і якістю тканини.
Наведемо алгоритм вибору взуття за розміром, ціною і загальним враженням, куди зведемо решту значень (колір, фасон, форма...).
Задачі пошуку, які вимагають обробки великих обсягів інформації, під силу тільки комп'ютеру. Наприклад, пошук варіанту обміну квартири з подвійними (потрійними) обмінами в різні міста при урахуванні багатьох обставин: площа, поверх, зручності, телефон, балкон, окремі кімнати ...
Останнім часом з'явилось багато шлюбних контор, в яких кандидати в подружжя підбираються згідно з анкетами. Ці анкети містять до 200 різних запитань — вимог до майбутнього чоловіка або жінки. Спробуйте при виборі «вручну» врахувати всі ці побажання.
У лікарнях і медичних центрах усе частіше застосовуються комп'ютери для діагностики хвороб. У комп'ютер вводять дані про тиск крові і температуру, результати аналізів, показники рентгену і електрокардіограми, десятки інших показників, і комп'ютер ставить діагноз і дає рекомендації для лікування.
Алгоритми сортування.
Сортування – це розташування заданих елементів послідовності у визначеному порядку.
Серед різноманітності алгоритмів сортування виділимо три найбільш простих: вставок, вибору, обміну («спливаючих бульбашок»). Усі інші впорядкування є похідними цих трьох.