Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Завдання Y-пентамино

Реферат Завдання Y-пентамино





/p>

getch ();// очікування натискання клавіші

// підпрограма формування масиву фігур,

// з початкового масиву geometry

forming (geometry);

// int kol = 10; int kol2 = 0; short b = 1;

// int g = -33, h = 48;

// основна функція, що виконує всілякі розстановки фігур

// на полі розстановки

placing (1);

// вивід даних (поле розстановки) на екран

print (geometry);

getch ();

// b? Print (kol, kol2): Print (kol, pow (kol, 2) + g);

// b? Prrint (kol, kol2): Prrint (kol, pow (kol, 2)-h);

return 0;

}


// підпрограма формування масиву фігур,

// з початкового масиву geometry

void forming (int geo [12] [25])

{struct pents

{ int shape [5] [5] ;//форма фігури

char located;// знаходиться на дошці/НЕ знаходиться

} image [12];// масив з 12 фігур

int h;


for (int i = 1; i <= 12; i + +)// к-ть фігур

{h = 1;

for (int j = +1; j <= 5; j + +)// розмірність кожної фігури

for (int k = 1; k <= 5; k + +)

// присвоєння масиву форматів кожної фігури,

// значень з нгчальних даних

{image [i]. shape [j] [k] = geo [i] [h];

h + +;

}

}

for (i = 1; i <= 12; i + +)

// поки жодна фігура не ледіт на полі розстановки,

// тому значення "N"

image [i]. located = 'N';

}

// основна функція, що виконує всілякі розстановки фігур

// на полі розстановки

void placing (int i)// i-номер фігури

{const static int n = 6, m = 10;

struct pents

{int shape [5] [5] ;//форма фігури

char located;// знаходиться на дошці/чи не знаходиться

} image [12]; int field [n] [m];

// допоміжні лічильники і

// ознака знаходження відповідного варіанту

int j1, h1, b;

// цикл знаходження всіляких варіантів для i-ої фігури

for (int j = 1, j <= n; j + +)

{j1 = j;

// переглядаємо кожен стовпець j-го рядка

for (int h = 1; h <= m; h + +)

{ h1 = h; b = 1;

// цикли доступу до елементів масиву формату кожної фігури

for (int k = 1; k <= 5; k + +)

{for (int l = 1, l <= 5; l + +)

// якщо сума елементів масиву форми i-ої фігури

// і елементів масиву поля розстановки більше 1

// тобто відбувається накладення фігур один на одного, то b присвоїти значення 0

{ if (image [i]. shape [k] [l] + field [j1] [h1]> 1) b = 0;

h1 + +;

}

j1 + +; h1 = h;

}

// якщо не разу не відбулося накладення фігур, тобто фігура підходить,

// то вихід з циклу пошуку

// тобто з циклу можливих вихідних позиції фігури за стовпцями

if (b == 1) break;

j1 = j;

}

if (b == 1)

// присвоюємо полю розстановки підійшла нам фігуру

{for (int k = 1; k <= 5; k + +)

for (int l = 1; l <= 5; l + +)

if (image [i]. shape [k] [l] == 1) field [-j + k] [-l + h] = i;

// поміняли ознака знаходиться на дошці/чи не знаходиться

image [i]. located = 'Y';

// якщо це не випадок з останньою фігурою,

// то рекурсією здійснюємо установку след.фігури

if (i <12) placing (+ + i);

// else// інакше, тобто якщо дійшли до посл.фігури (знайшли 1 варіант), виведення на екран

// print ();

// Обнуляємо значення останньої поставленої фігури

// на полі расстановеі і шукаємо след.подходящій варіант

for (k = j; k <= 6; k + +)

for (int l = h; l <= 10; l + +) field [k] [l] = 0;

// поміняли ознака знаходиться на дошці/чи не знаходиться

image [i]. located = 'N';

}

}// виконуємо все вищесказане для кожної фігури,

// устонавлівая її, знаходячи відповідний варіант і

// видалення для последущего пошуку інших варіантів


}

// вивід даних (поле розстановки) на екран

void print (int geo [12] [25])

{

for (int i = 1; i <12; i + +) {

for (int j = 1; j <25; j + +)// координати поля розстановки

cout <

cout <

// збереження формату виводу



}










Незважаючи на гнучкість вбудованих засобів мови С + + і його незаперечна зручність при створенні програм, він має ряд особливостей, часто ведуть до плутанини і помилок. Додані коментарі дозволяють уникнути цього. З цієї причини текст програми багато ними забезпечений. br/>

v Тестування програми

У процесі тестування програми необхідно слід провести аналіз складності алгоритму та оцінку ефективності її роботи.

Проведемо цей аналіз за допомогою алгоритмічної заходи Колмогоров...


Назад | сторінка 5 з 7 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Побудова перспектив ліній и просторова фігур
  • Реферат на тему: Система класів для опису плоских геометричних фігур
  • Реферат на тему: Базова реалізація персептрона для навчання і розпізнавання простих фігур
  • Реферат на тему: Аналіз фігур мовлення та їх Функції текстоутворення в англійській мові
  • Реферат на тему: Визначення обсягу і площі геометричних фігур. Системи лінійних нерівностей ...