
Зміст
Вступ 3
1 Опис алгоритму 4
2 Вибір складу технічних і програмних засобів 6
3 Організація вхідних і вихідних даних 8
4 Розробка програми 10
5 Блок-схема 11
6 Текст програми 12
7 Описання програми 23
Висновок 27
Література 28
Вступ
Програмування на мові Delphi дозволяє реалізувати широкий спектр практичних задач. Основна перевага цієї мови програмування полягає в оптимальному поєднанні простоти використання, доступності і великого набору різноманітних можливостей, що дозволяють охопити всі основні напрями діяльності, розробка прикладних програм.
Актуальність теми полягає в наступному: показати, як використовуючи мишу та стандартні оператори в мові Delphi створити графічно розвинений інтерфейс користувача для гри «Ханойські вежі».
Об’єкт дослідження: використання графічних операторів в програмуванні.
Предмет дослідження: використання основних алгоритмiв гри «Ханойські вежі» в розробці програми на Delphi.
Мета дослідження: розглянути основні можливості використання алгоритмiв гри «Ханойські вежі» у графічному інтерфейсі Delphi.
Задачі:
Зробити огляд літератури за темою.
Розглянути графічні можливості Delphi.
Описати механізм підтримки правил гри «Ханойські вежі».
Розробити програму, яка надасть можливість гри у «Ханойські вежі».
Гіпотеза дослідження: робота надасть користувачеві інструкції до вивчення алгоритмів гри у «Ханойські вежі» та реалізації їх у Delphi.
1 Опис алгоритму
Ханойські вежі — це математична гра або головоломка. Утворена трьома стрижнями і кількома дисками різних розмірів, які можна насунути на будь-який стрижень. Початковий стан головолмки має два порожніх стрижні і всі диски на третьому в монотонно спадному порядку з низу до гори, так утворюється побудова, що нагадує вежу.
Ціллю головоломки є перенести весь стос дисків на інший стрижень, дотримуючись таких правил:
За раз можна рухати лише один диск.
Кожен крок полягає в перенесенні верхнього диска з одного зі стрижнєв і насування його на інший зверху інших дисків, які вже можуть бути присутніми на другому стрижні.
Диск не можна класти з гори меншого диска.
На Заході задачку вперше оприлюднив французький математик Едуард Лукас у 1863. Існує легенда про храм в Індії, який містив велику кімнату з трьома стовпами і 64 золотими дисками на них. Жрець брагман, виконував команду давнього пророцтва, переставляючи ці диски згідно з правилами головоломки, від того часу. Звідси друга назва головоломки — головоломка веж Брагми. Згідно з легендою, після завершального руху настане кінець світу. Не ясно чи Лукас вигадав цю легенду або надихнувся нею.
Якщо легенда правдива, і якщо жрець може пересувати диски зі швидкістю один раз в секунду, найменша кількість пересувів займе в нього близько 585 мільярдів років або 18,446,744,073,709,551,615 пересувів до завершення.
Також існують інші версії легенди. Наприклад, в деяких викладеннях, храм був монастирем і жрець був монахом. Храм чи монастир може стояти в різних частинах світу — включно з Ханоєм, В'єтнам, і може приналежати будь-якій релігії. В деяких варіаціях додаються інші складові, такі як те, що вежі створили на початку світу, або що жрець чи монах може робити лише один рух в день.
Кількість
рухів необхідна для розв'язання становить
.
2 Вибір складу технічних і програмних засобів
Середовище Delphi дозволяє доволі швидко розробляти додатки для Windows.
Delphi - імперативний, структурований, об'єктно-орієнтована мова програмування, діалект Object Pascal. Починаючи з середи розробки Delphi 7.0, в офіційних документах Borland стала використовувати назву Delphi для позначення мови Object Pascal. Починаючи з 2007 року вже язик Delphi (похідний від Object Pascal) почав жити своїм самостійним життям і зазнавав різні зміни, пов'язані з сучасними тенденціями (наприклад, з розвитком платформи. NET) розвитку мов програмування: з'явилися class helpers, перевантаження операторів та інше.
Для роботи програми необхідні лише текстові документи з теорією, які повинні знаходитись в папці з програмою. Інших додаткових засобів не потребує.
Середовище Delphi стало, по суті, кращим засобом програмування для операційної системи Windows.
Delphi дозволяє створювати додатки інтерактивним вибором необхідних компонентів з Component Palette і перетяганням їх на форму. Основне ж гідність цього методу полягає в тому, що Delphi при цьому самостійно створює необхідний код. Це нагадує по своїх можливостях Visual Basic і інші подібні мови програмування, однак у випадку Delphi ви одержуєте справжній об'єктно-орієнтований код і всі можливості цього підходу, включаючи розширення функціональних можливостей компонентів Delphi до рівня, що задовольняє ваші запити. Ви можете використовувати компоненти Delphi, можете успадковувати їх і додавати власні методи, а крім того, ви можете використовувати керуючі елементи Active X.
Одне з основних відмінностей Delphi від інших схожих інструментів візуальної розробки додатків полягає в наявності дійсно швидкого, ефективного компілятора. Компілятор видає не тільки повідомлення про помилки, але й величезна кількість попереджень і підказок, які дозволяють створювати більш ясний код. Важливою гідністю є також видача одночасно декількох повідомлень про помилки, що дозволяє швидше виправляти їх.
Одна з більших проблем не візуального програмування - створення користувацького інтерфейсу, тобто найчастіше більше часу займає саме розробка й створення інтерфейсу. З іншого боку, при розробці не варто забувати й про якісний програмний код. Delphi дозволяє створювати програму, вклавши максимум сил і вміння в її робочу частину, і всіляко допомагає вам у тій області, де не має конкурентів, в області створення користувацького інтерфейсу. Витративши якийсь час на навчання роботи в Delphi, ви зможете легко й просто створювати користувацькі інтерфейси, не порівнянні ні з якими іншими, створені за допомогою традиційного інструментарію. Більше того, вони будуть не просто елегантні, але при необхідності будуть мати "ізюминку" у вигляді розроблених вами нових керуючих елементів, що не займе у вас багато сил і часу з таким помічником, як Delphi.
Завдяки об'єктно-орієнтованій природі Delphi ви можете створювати свої компоненти не тільки з нуля, але й використовуючи багатий набір наявних компонентів. Крім створення нових компонентів, розширюваність Delphi включає також можливість інтегрування в середовище Delphi цілих підпрограм, називаних експертами. Expert Interface дозволяє вам доповнювати середовище своїми пунктами меню й діалоговими вікнами для розширення її функціональності.
Працездатність програми перевірялась на комп’ютерах з такими характеристиками:
1) AMD Phenom II x4 3.4 Ghz, 12 Gb RAM
2) AMD E450 x2 2.3 Ghz., 4 Gb RAM
Ніяких проблем не було знайдено.