Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 1 оп.doc
Скачиваний:
14
Добавлен:
14.08.2019
Размер:
181.76 Кб
Скачать

Теорія алгоритмів

Лекція 1 (2 г.)

Тема: Введення до теорії алгоритмів. Сучасний погляд на алгоритмізацію.Основні алгоритмічні конструкції. Модульна структура програмних продуктів.

План:

  1. Поняття алгоритму

  2. Способи запису алгоритмів

  3. Основні алгоритмічні конструкції

  4. Створення алгоритму

  5. Математична модель, вибір структури даних

  6. Алгоритмічні мови

  7. Структурні принципи алгоритмізації

  8. Модульне програмування. Модульна структура програмних продуктів

  9. Сучасний погляд на алгоритмізацію

1. Поняття алгоритму

АЛГОРИТМ – система правил, сформульована на зрозумілому виконавцеві мові, яка визначає процес переходу від допустимих початкових даних до деякого результату і володіє властивостями масовості, кінцівки, визначеності, детермінованої.

Точне визначення поняття алгоритму дало можливість довести алгоритмічну нерозв'язність багатьох математичних проблем.

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

Поняття «алгоритму». У повсякденному житті кожна людина стикається з необхідністю вирішення завдань самої різної складності. Виконання будь-якого завдання здійснюється в декілька послідовних етапів (кроків). Така послідовність кроків в рішенні задачі називається алгоритмом. Кожна окрема дія – це крок алгоритму. Послідовність кроків алгоритму строго фіксована, тобто кроки повинні бути впорядкованими. Правда, існують паралельні алгоритми, для яких ця вимога не дотримується.

Сформулюємо основні особливості алгоритмів.

Наявність початкових даних і деякого результату. Алгоритм – це точно певна інструкція, послідовно застосовуючи яку до початкових даних, можна отримати рішення задачі.

Масовість, тобто можливість застосовувати багато разів один і той же алгоритм.

Детермінованість. При застосуванні алгоритму до одних і тих же початкових даних повинен виходити завжди один і той же результат.

Результативність. Виконання алгоритму повинне обов'язково приводити до його завершення.

Визначеність. На кожному кроці алгоритму у виконавця повинна бути достатньо інформації, щоб його виконати.

2. Способи запису алгоритмів

На практиці найбільш поширеними є наступні форми запису алгоритмів:

1) графічний запис (блок-схеми);

2) словесний запис (псевдокоди);

3) мова програмування.

Словесна форма запису алгоритму є описом на природній мові послідовних етапів обробки даних.

Графічна форма запису, звана також схемою алгоритму, є зображенням алгоритму у вигляді послідовності зв'язаних між собою функціональних блоків, кожен з яких відповідає виконанню одного або декількох дій.

Блок-схема це графічне представлення алгоритму або його фрагмента. Блок-схема малюється з використанням спеціальних символів, таких, як прямокутники, ромби, овали, і малі кола; ці символи з'єднуються стрілками, званими лініями зв'язку.

Н адалі ми використовуватимемо блок-схеми алгоритмів. Вони дозволяють представити алгоритми в наочнішому вигляді, це дає можливість аналізувати їх роботу, шукати помилки в їх реалізації і так далі У блок-схемах завжди є початок і кінець обозначаемые эллипсами, между ними - последовательность шагов алгоритма, соединенных стрелками.

Кроки бувають безумовними (зображаються прямокутниками, паралелограмами) і умовними (зображаються ромбами). З ромба завжди виходять дві стрілки - одна означає подальший шлях, у разі виконання умови (позначається зазвичай словом "та" або "+"), інша - невиконання (словом "ні" або "-"). Введення з клавіатури або вивід на екран значення виразу зображається паралелограмом. Команда, що виконує обробку дій (команда привласнення), зображається в прямокутнику.

Мова програмування - мова, використовувана для формального запису алгоритмів. Більшість мов програмування відносяться до алгоритмічних мов. Запис алгоритму на алгоритмічній мові називають програмою.

Мова використовувана для формального запису алгоритмів, називається алгоритмічною мовою. При описі будь-якої мови (зокрема природного, наприклад, російського, англійського і так далі) використовуються наступні поняття: алфавіт, синтаксис і семантика.

Алфавіт мови - це безліч простих знаків, які можуть бути використані в текстах цієї мови. Послідовність символів алфавіту називають словом. Правила, згідно яким утворюються слова з алфавіту, називаються граматикою. Сама ж мова - це безліч всіх слів, записуваних в даному алфавіті згідно даній граматиці.

Синтаксис - это набор правил, определяющих возможные сочетания (конструкции) из букв алфавита. Для описания синтаксиса языка, как правило, используют другой язык (метаязык) или синтаксические диаграммы.

Семантика - це набір правил, що визначають значення (сенс) окремих конструкцій мови.