Предмет:
Тип роботи:
Курсова робота
К-сть сторінок:
36
Мова:
Українська
перевірка виконання умов.
Для подання вхідної інформації була використана така структура даних як двовимірний масив. Масив має фіксований розмір 5х25 і має блочну структур. Кожний блок представляє собою одиничну матрицю розміром 5х5.
Елемент масиву Мas(i,j) дорівнює 0 або 1 в залежності від того, чи має і-й будинок j-у ознаку.
Перший блок масиву представляє ознаку національність: англієць, іспанець, японець, норвежець та українець.
Другий блок масиву представляє ознаку кольору: червоний, синій, білий, жовтий, зелений.
Третій блок масиву представляє ознаку напою: чай, кава, молоко, вода, апельсиновий сік.
Четвертий блок масиву представляє ознаку сигарет: Chesterfield, Old Gold, Kool, Lucky Strike, Parliament.
П’ятий блок масиву представляє ознаку тварини: кінь, лиса, собака, зебра, равлик.
В залежності від
Всі умови виділені в окремі функції.
Кінцевий результат представляє собою матрицю перестановок, яка задовольняє всім умовам задачі.
Вивід рішення організований у вигляді окремої процедури, де відбувається розшифрування результуючого масиву.
Розробка такої структури програми дозволяє легко нарощувати її функціональність шляхом додавання нових станів і, відповідно, дій.
2.3. Специфікації функції програми
Процедура perestanovka (fl : integer)
Дана процедура здійснює наступну перестановку в блоці fl+1. Результатом роботи даної процедури змінюється вказаний блок масиву Mas.
Процедура table_out
Процедура здійснює оформлення рішення задачі на екрані. При формуванні рішення відбувається розшифрування результуючого масиву, замість 1 вказується значення ознаки, яка відповідає стовпцю, в якому знаходиться 1. Номер рядка вказує на номер будинку.
Всі функції перевірки правил побудовані таким чином, якщо для даної перестановки правило виконується функція повертає значення 1, в протилежному випадку функція повертає 0.
Функція Rule01 : integer;
Функція здійснює перевірку умови, що англієць мешкає в червоному будинку.
Функція Rule02 : integer;
Функція здійснює перевірку умови, що іспанець має собаку.
Функція Rule03 : integer;
Функція здійснює перевірку умови, що українець п’є чай.
Функція Rule04 : integer;
Функція здійснює перевірку умови, що білий будинок знаходиться відразу праворуч від синього будинку (вектори елементів, які відповідають цим ознакам повинні знаходитись поруч в масиві).
Функція Rule05 : integer;
Функція здійснює перевірку умови, що у зеленому будинку п’ють каву.
Функція Rule06 : integer;
Функція здійснює перевірку умови, що той, хто курить Old Gold розводить равликів.
Функція Rule07 : integer;
Функція здійснює перевірку умови, що в центральному (тобто 3 будинку) п’ють молоко.
Функція Rule08 : integer;
Функція здійснює перевірку умови, що в першому будинку мешкає норвежець.
Функція Rule09 : integer;
Функція здійснює перевірку умови, що в жовтому будинку курять Kool.
Функція Rule10 : integer;
Функція здійснює перевірку умови, що сусід того, хто курить Chesterfield, тримає лису.
Функція Rule11 : integer;
Функція здійснює перевірку, що сусід того, хто тримає коня, курить Kool.
Функція Rule12 : integer;
Функція здійснює перевірку, що японець курить Parlament.
Функція Rule13 : integer;
Функція здійснює перевірку, що норвежець мешкає по сусідству з синім будинком.
Функція Rule14 : integer;
Функція перевіряє умову, що той, хто курить Lucky Strike, п'є апельсиновий сік.
Функція Rule15 : integer;
Функція перевіряє умову, що норвежець живе поруч з синім будинком.
2.4. Створення програми в середовищі Turbo Pascal 7.1
Згідно вибору програмного середовища реалізацію алгоритму будемо здійснювати в середовищі Turbo Pascal 7.1
Рис. 2. Середовище Turbo Pascal 7.1
2.5. Результати роботи програми
Рис. 3.
Висновки
Програмний продукт використовується для розв’язання задачі ейнштейна. Тестування програми на заданих даних та правилах виводу показало, що програма працює вірно.
Одним з основних недоліків програми є відсутність графічного інтерфейсу. В той же час використання при розробці програми методів структурного програмування дає змогу нарощувати функціональні можливості програми, а також створити за потреби для неї графічний інтерфейс.
Програма виконує всі зазначені в завданні функції. ЇЇ можна використовувати в якості навчальної програми.
Список використаної літератури
- Алексеев Є.Р. Турбо Паскаль 7.0 - Москва. :НТ Пресс,2005. – 314,[6]с.
- Алгоритмы и структуры данных/.Вирт: Пер. с англ. –2-е изд. , испр.– сПб:. Невский Диалект, 2001. – 352 с..
- Арсенюк І.Р., Колодний В.В., Яровий А.А. Теорія алгоритмів. Навчальний посібник. – Вінниця: ВНТУ, 2006. – 150 с.
- Молодцова О. П. Прикладне програмне забезпечення: Навч.-метод. посібник для самост. вивч. дисц. — К.: КНЕУ, 2000. — 264 с.
- «Программирование на языке ПАСКАЛЬ», О. Н. Перминов, «Радио и связь», 1988.
- Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка. — М.: «Финансы и статистика», 1982.
- Моргун Александр Николаевич Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — С. 576.
Додаток А
Текст програми
program Einst;
uses Crt;
var
mas : array [1..5,1..25] of integer;
i, j, k, l : integer;
flag1, flag2, flag3, flag4, flag5 : integer;
k1, k2 : integer;