Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
WorldEdit
Сообщений: n/a
#1

Лаба по рекурсиям - C++

18.09.2013, 22:00. Просмотров 377. Ответов 1
Метки нет (Все метки)

Задана шахматная доска, на которой расставлены черные и белые фигуры, в том числе белый король и черный конь. Определить, может ли белый конь за три хода сбить черного короля. Если да, вывести последовательность ходов на экран.

Реализованный алгоритм должен быть рекурсивным.


поможет кто?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2013, 22:00     Лаба по рекурсиям
Посмотрите здесь:

Лаба - C++
Нужно сделать лабу, задание в фотке, по рисунку самому верхнему левому! Помогите, кому не трудно!

Лаба - C++
Общие условия: 1. Объявить одномерный массив из десяти элементов типа int. 2. Заполнить массив с клавиатуры. 3. Отсортировать массив...

Лаба по С++ - C++
Дана последовательность прописных (больших) латинских букв. После каждой буквы вставить первую букву

Лаба - C++
Здравствуйте.Нужна срочная помощь с лабой на С++.

Лаба по С++. - C++
1.Ввести матрицу размером MxN. Память для массива выделить динамически.Определить количество чётных элементов, расположенных на главной и...

Лаба - C++
Помогите написать программу на С, задание следующее: Подсчитать количество слов, которые являются числами в римской системе счисления.:) ...

Лаба - C++
Очень срочно надо сдать лабу, но я не знаю как ее делать ( помогите решить мне ее. Зарание огромное спасибо

Лаба по программированию - C++
Известен вещественный знакопеременный двумерный массив K=(Kij), i=1,2,..5, j=1,2,..7 Вычислить разность между максимальными и...

Лаба по информатике - C++
Завтра сдавать лабораторную, а я в программировании на Си++ практически ноль. Было всего пару лекций на его изучение. Задача:...

лаба по массивам - C++
люди помогите плиз решить эту лабу по с++ сам фигово в нем пока что понимаю накидал вариант он ниже Во всех приведенных ниже вариантах...

[c++] формулы лаба - C++
В общем есть такая проблема я ламер в с++ полный так как только начали его изучать в универе ,а лабу сдавать завтра:( если можете...

Матрицы. Лаба - C++
Всем доброго вечера) задали лабу, не могу разобраться что требуется, чисто алгоритм понять не могу. можете помочь разобраться с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Олексей
5 / 4 / 0
Регистрация: 05.04.2010
Сообщений: 259
24.09.2013, 20:40     Лаба по рекурсиям #2
Андрей Викторович, 1- посторонние фигуры , 2 - король, 3- конь и его ходы если он ставит шаг королю.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include<iostream>
#include<time.h>
using namespace std;
 
int ctrl=0;
 
void massiv (int array [][8])
{
    for (int i=0; i<8; i++)
    {
        for (int j=0; j<8; j++)
        {
            cout<<array[i][j];
        }
        cout<<endl;
    }
}
 
int proverka (int n,int m, int doska [][8], int var)
{
    if (var<3)
    {
    int hodu [8][2]= {{1,-2},{1,2},{-1,2},{-1,-2},{2,-1},{2,1},{-2,-1},{-2,1}};
    int a, b;
 
        for (int i=0; i<8; i++)
    {
        if (ctrl==1)
        doska[n][m]=3;
 
        a=hodu[i][0];
        b=hodu[i][1];
        if (doska[n+a][m+b]==2&&n+a<8&&n+a>=0&&m+b<8&&m+b>=0)
        {
            doska[n][m]=3; return 1;
        }
 
        if (doska[n+a][m+b]==0&&n+a<8&&n+a>=0&&m+b<8&&m+b>=0)
        {
            ctrl=proverka(n+a, m+b, doska, var+1);
        }
 
    }
            
    }
    return 0;
}
 
int main ()
{
    srand(time(NULL));
    int doska [8][8];
    int n, m;
    int num;
    int k=0, h=0;
    
    for (int i=0; i<8; i++)
    {
        for (int j=0; j<8; j++)
        {
            doska[i][j]=0;
            num=rand ()%3;
            if (num==1&&k<1)
            {
                doska[i][j]=2;
                k++;
            }
            if (num==2&&h<1)
            {
                doska[i][j]=3;
                h++;
                n=i; m=j;
            }
            
            if (num==0)
                doska[i][j]=1;
        }
    }
    massiv (doska);
 
    int var=1;
    proverka(n, m, doska, var);
    cout<<endl;
 
    massiv(doska);
 
system("pause");
return 0;
}
С уважение студент ИКС, Алексей Поворознюк
Yandex
Объявления
24.09.2013, 20:40     Лаба по рекурсиям
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru