С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Расставить и подсчитать ферзей на шахматной доске - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Возможно ли на С++ написать .dll и собственные драйвера? http://www.cyberforum.ru/cpp-beginners/thread744274.html
Собственно вопрос в заголовке темы. Не вдаваясь в подробности какие именно .dll или драйвера я собираюсь писать в будущем. Или лучше параллельно еще учить С для этих дел или ассемблер?
C++ Как реализовать обработку прерываний в С++? Надо разработать три программных модуля, каждый процесс после запуска представляет уникальный процесс, работа которого предполагает экранную визуализацию; процессы не бесконечны, и завершаются не... http://www.cyberforum.ru/cpp-beginners/thread744273.html
C++ Спираль Ферма
Помогите сделать спираль Ферма в c++ :cry:
C++ Динамическое программирование (сколько оборудования каждого типа следует поместить в склад)
Доброго времени суток. Нужна помощь в решении задачи на C++. В склад емкостью W м3 требуется поместить n различных типов оборудования. Объем одной единицы i-го типа оборудования ( 1 ≤ i ≤ n) равен...
C++ Быстрое создание пустого файла определенного размера http://www.cyberforum.ru/cpp-beginners/thread744249.html
Добрый день Столкнулся с проблемой как можно очень быстро создать файл на жестком диске, заполнены нулями (или мусором) за малый промежуток времени я сейчас использую следующий код...
C++ Процедура (Составить процедуру для нахождения макс. элемента матрицы) Помогите написать программку. Задание: Составить процедуру для нахождения макс. элемента матрицы. Используя эту процедуру определить макс.элемент матрицы Е и, если он больше 104, извлечь корент... подробнее

Показать сообщение отдельно
TommyG
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 48

Расставить и подсчитать ферзей на шахматной доске - C++

24.12.2012, 16:41. Просмотров 476. Ответов 0
Метки (Все метки)

Ребята, привет, мне предстоит завтра защищать лабу и собственно вот задание:
№1
В данной задаче требуется расставить и подсчитать ферзей на шахматной доске размером n*n, так чтобы они не смогли «съесть» друг друга.

Код
#include<iostream>

#include<math.h>

#include<conio.h>

Using namespace std; 


Int const N = 8; 


char X[N]; long Count; 


void Display()

  {

char a=219,b=255;

for (int i=0; i<N; i++)

        {

For (int j=0; j<N; j++)

              {
If (j==X[i]) cout<<"QQ";

Else if ((i+j)%2)cout<<b<<b;

Else cout<<a<<a;

              }

cout<<"\n";

        }

cout<<"\n";

  } 


bool Check (int K, int Y)

  {

Int i=0;

while ((i< K) && (Y != X[i]) && (abs(K - i) != abs(Y - X[i]))) i++;

return (i == K);

  } 


Void MainProc(int k)

  {

for (int y = 0; y<N; y++)

if (Check(k, y))

              {

                    X[k] = y;

if (k == (N - 1))

                    {

Display();

                          Count++;

                    }

MainProc(k + 1);

              }

  } 


void main()

  {

    Count = 0;

MainProc(0);

cout<<"Vsego "<<Count<<" rastanovok\n"; 


getch();

  }
Вот и собственно я знаю только какая функция что делает, т.е.
Функция Check – проверка не бьётся ли эта клетка другим ферзём
Функция Display – Выводит на экран комбинации

Функция MainProc – инициализация массива X – шахматной доски

Я вообще ноль в программировании, мне нужно защитить лабу подскажите по коду пожалуйста по каждой строчке и переменной что здесь делается, и есть ли тут предикаты, какой алгоритм использован, что такое итерации? и что происходит на каждой итерации..

Спасибо всем кто откликнется!!!

Добавлено через 2 часа 34 минуты
Добрые люди, помогите!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.