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

Напрваить на верный путь. Задача :тур конем - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычисление произведения ряда http://www.cyberforum.ru/cpp-beginners/thread1087059.html
Подскажите пожалуйста способ для подсчёта произведения ряда S = \prod_{k = 0}^{\propto }\left(1 - \frac{4x^2}{\left(2k + 1 \right)^2 \pi ^2} \right). Следующий способ вычисления препод забраковал: do{ proizv *= (1 - ((4 * powf(x, 2) / (powf(2 * k + 1, 2) * powf(Pi, 2) )))); k++; } while(fabs(proizv) < eps);
C++ Научите рисовать блок схемы к коду с ++ научите пожалуйста рисовать блок схемы к коду с + +. линейные я умею а на цикл не научился пока, например к этому, и объясните пожалуйста: #include <iostream> #include <math.h> using namespace std; int main () { float x,y,s=0.5; for(x=-5;x<=5;x+=0.5) {y=pow(x,2)+3*x-1; cout<<"x="<<x<<"y="<<y<<endl;} http://www.cyberforum.ru/cpp-beginners/thread1087029.html
C++ Заменить табуляцию
Здравствуйте. Вопрос несколько странный. Написал программу. Она выводит таблицу Пифагора. Всё вышло нормально, кроме вида. Не влазит десятка(скриншот прилагается). Чем можно заменить в выводе табуляцию(\t)? Пробелом пробовал - некрасиво. С шрифтами в консоли мутил - тоже нормально не работает. На всякий случай, мой код: // fork.cpp: определяет точку входа для консольного приложения. //...
Структуры, функции и динамическая память C++
Ребят, что-то я не понимаю, где я ошибся... Бошка уже не варит самому додуматься, так что прошу помощи :cry: #include<conio.h> #include<iostream> #include<cmath> #include<cstring> #include<cctype> #include <iomanip> using namespace std; struct Auto{
C++ Запись необычного числа http://www.cyberforum.ru/cpp-beginners/thread1086948.html
Привет, знатоки. Подскажите, пожалуйста, как мне в программе C++ записать число 3.25x10-4?
C++ Задача по С++ (Треугольник , Квадрат) Условие : Реализовать приложение, предлагающее пользователю меню для выбора фигуры, которую нужно нарисовать(прямоугольник, треугольник или квадрат). Меню реализуется с помощью структуры switch. Каждая фигура рисуется в отдельной функции: void drawRectangle(int h, int w, bool isEmpty); void drawTriangle(int h, bool isEmpty); void drawSquare(int a, bool isEmpty); подробнее

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

Напрваить на верный путь. Задача :тур конем - C++

01.02.2014, 17:39. Просмотров 228. Ответов 0
Метки (Все метки)

Здравствуйте. Знаю что задача стара и решений уже очень очень много. Но я бы хотел решить её как то своим путем. Алгоритм себе представлю как обход графа в глубь. Задаю точку и начинаю ходить на возможные точки.

Далее два варианта кода ,оба не верно работают .Прошу помощи у сообщества так как уже извел себе мозг.
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
// horse.cpp: главный файл проекта.
 
#include <stdio.h>
#include <conio.h>
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <time.h>
 
using namespace System;
using namespace std;
int cou=0;
int a=0,b=0;
bool place;
int x,y;
int z,t,d=0;
 
 
 
 
 
int out(int z,int t){
    
    if(z<0 || t<0 || z>7 || t>7){
        place=false;
    }
    else place=true;
    return place;
}
 
int main()
{
    struct point{
        int to[2];//с какой точки попало сюда
        int real[2];//deistvitelmnaya tochka
        int out[16];//vozmojnie hodi
    }qw[64],*point= &qw[0];
 
 
    
    
    const int strok=8;
    const int stolb=8;
    
    int mass[strok][stolb];
    for(int p=0;p<strok;p++){
        for(int o=0;o<stolb;o++){
            mass[p][o]=0;
        }
    }
    cin>>x>>y;
    out(x,y);    mass[y][x]=1;
    
    point[0].to[0]=point[0].real[0]=y;
    point[0].to[1]=point[0].real[1]=x;
 
    
    while(cou<64*64){
    
        if(b!=0){
        loop:
        int s=0;
            while( s<16){
                if(point[b-1].out[s]!=-1){
                    x=point[b].real[0]=point[b-1].out[s];
                    y=point[b].real[1]=point[b-1].out[s+1];
                    break;
                }
            s+=2;
            
            }if(s==16){
                point[b].out[s]=-1;
                point[b].out[s+1]=-1;
                b--;goto loop;}
    }
        
        
    if (out(point[b].real[0],point[b].real[1])==1 ){
            for( a=0;a<16;a+=2){
                
                int first=point[b].real[0];
                int second=point[b].real[1];
                switch (a){
                case 0:    
                        first=y-2;
                        second=x-1;
                        break;    
                case 2:
                        first=y-1;
                        second=x-2;
                        
                        break;
                case 4:
                        first=y+2;
                        second=x+1;
                        
                        break;
                case 6:
                        first=y-1;
                        second=x+2;
                        
                        break;
                case 8:
                        first=y+1;
                        second=x+2;
                        
                        break;
                case 10:
                        first=y-2;
                        second=x+1;
                        
                        break;
                case 12:
                        first=y+2;
                        second=x-1;
                        
                        break;
                case 14:    
                        first=y+1;
                        second=x-2;
                        
                        break;
                default :cout <<"OUT"<<endl;break;
                    
                
                }
                if (out(first,second)==1){
                            point[b].out[a]=first;
                            point[b].out[a+1]=second;
                            mass[first][second]=1;cou++;
                            cout<<"z="<<point[b].out[a]<<"_t="<<point[b].out[a+1]<<endl;
                            second=0;first=0;
                        }
                else{
                    point[b].out[a]=-1;point[b].out[a+1]=-1;
                }
 
            }
        }
        
    b++;for(int p=0;p<strok;p++){cout<<endl;
        for(int o=0;o<stolb;o++){
            cout<<setw(5)<<mass[p][o];
        }
    }
    }
 
    for(int a=0;a<16;a+=2){
        cout<<"z="<<point[0].out[a]<<"_t="<<point[0].out[a+1]<<endl;
    }
 
    for(int p=0;p<strok;p++){cout<<endl;
        for(int o=0;o<stolb;o++){
            cout<<setw(5)<<mass[p][o];
        }
    }
 
    system ("PAUSE");
    return 0;
}
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
// horse1.cpp: главный файл проекта.
#include <stdio.h>
#include <conio.h>
#include "stdafx.h"
#include <iostream>
#include <iomanip>
 
using namespace System;
using namespace std;
 
bool place;
int x,y,a,b,c,r=0;
int mass[8][8];
 
int out(int z,int t){
    
    if(z<0 || t<0 || z>7 || t>7){
        place=false;
    }
    else place=true;
    return place;
}
 
 
int main()
{
    cin>>x>>y;
    
    struct point{
        int to[2];//с какой точки попало сюда
        int real[2];//deistvitelmnaya tochka
        int out[16];//vozmojnie hodi
    }qw[64],*point= &qw[0];
 
    point[0].real[0]=x;point[0].real[1]=y;
 
    while( c<64){
         for( a=0;a<16;a+=2){
             r++;
                if(point[c].out[a]!=1){
                    int first=x=point[c].real[0];
                    int second=y=point[c].real[1];
                    switch (a){
                        case 0:    
                                first=y-2;second=x-1;break;
                        case 2:
                                first=y-1;second=x-2;break;
                        case 4:
                                first=y+2;second=x+1;break;
                        case 6:
                                first=y-1;second=x+2;break;
                        case 8:
                                first=y+1;second=x+2;break;
                        case 10:
                                first=y-2;second=x+1;break;
                        case 12:
                                first=y+2;second=x-1;break;
                        case 14:    
                                first=y+1;second=x-2;break;
                        default :cout <<"OUT"<<endl;break;
                    }
                    if (out(first,second)==1){
                                point[c].out[0]=first;
                                point[c].out[1]=second;
                                point[c+1].real[0]=first;
                                point[c+1].real[1]=second;
                                mass[first][second]=1;c++;
                                second=0;first=0;break;
                            }
                    else{
                        point[c].out[a]=-1;point[c].out[a+1]=-1;
                    }
                }
         }if(r==8){c--;}
    }
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru