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

Упрощение логического выражения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Тип string и subscript out of range http://www.cyberforum.ru/cpp-beginners/thread926476.html
Доброго времени дня. Такая проблема. Обращаюсь к отдельному элементу массива: #include <iostream> #include <string> #include <conio.h> using namespace std;
C++ Если кого не затруднит, посмотрите где у меня ошибка Вот задание: Даны две последовательности a1, a2, …an и b1, b2, …bm. (n>m). В каждой из них члены различны. Верно, ли что все члены второй последовательности входят в первую последовательность? У меня всё время пишет, что входит, хотя и разные числа в обоих массивах забиваю. Вот код, если кого не затруднит, подскажите, где я что пропустил #include<iostream.h> #include<windows.h>... http://www.cyberforum.ru/cpp-beginners/thread926474.html
C++ char[]
#include <iostream> using namespace std; #define N 4 #define S 2 int main() { int rate; int s=0;
error lnk? C++
При компиляции вылазит такая штука: 1>ConsoleApplication.obj : error LNK2028: ёё√ыър эр эхЁрчЁх°хээє■ ыхъёхьє (0A0005DE) "public: __thiscall Student_Info::Student_Info(void)" (??0Student_Info@@$$FQAE@XZ) т ЇєэъЎшш "int __cdecl main(void)" (?main@@$$HYAHXZ) 1>ConsoleApplication.obj : error LNK2019: ёё√ыър эр эхЁрчЁх°хээ√щ тэх°эшщ ёшьтюы "public: __thiscall Student_Info::Student_Info(void)"...
C++ GUI http://www.cyberforum.ru/cpp-beginners/thread926445.html
Всем привет. Хотелось бы посоветоваться по поводу GUI. Выбираю библиотеку для разработки GUI. Вот какие кандидаты у меня есть: mfc, wtl/atl, qt. 1. Хотелось бы узнать что предпочтительнее использовать. 2. Есть ли какой нибудь смысл изучать mfc?
C++ Список написал функцию, которая удаляет звено списка, если выполняется условие( если параметр функции == полю звена), однако вылетает ошибка list iterator not incrementable, когда удаляется последнее звено void CarPark::GoOutCarPark(int number) { for (auto it = machine.begin(); it != machine.end(); it++) { if (number == it->GetNumber()) it = machine.erase(it); } } machine(список) подробнее

Показать сообщение отдельно
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
21.07.2013, 13:51     Упрощение логического выражения
У меня все это вышло вот так
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
#include <iostream>
#include <iomanip>
using namespace std;
 
const int hor = 8, ver = 8;
 
void boardPrint(int [][ver], int);
int minAcces(int, int, int [][ver], int [], int [], int [][ver]);
void downAcces(int, int, int [][ver], int [], int []);
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int board[hor][ver] = {0};
    int horizontal[hor] = {2, 1, -1, -2, -2, -1, 1, 2};
    int vertical[ver] = {-1, -2, -2, -1, 1, 2, 2, 1};
    int currentRow, currentColumn, moveNumber;
    bool status = false;
    int accessibility[hor][ver] = {{2,3,4,4,4,4,3,2},
                                   {3,4,6,6,6,6,4,3},
                                   {4,6,8,8,8,8,6,4},
                                   {4,6,8,8,8,8,6,4},
                                   {4,6,8,8,8,8,6,4},
                                   {4,6,8,8,8,8,6,4},
                                   {3,4,6,6,6,6,4,3},
                                   {2,3,4,4,4,4,3,2}};
    
    while (status == false)
    {
        cout << "Введите текущие координаты коня через пробел ([строка],[столбец])(0-7): ";
        cin >> currentRow >> currentColumn;
        if (currentRow < 8 && currentRow >=0 && currentColumn < 8 && currentColumn >=0)
            status = true;
        else
            cout << "Таких координат не существует. Попробуейте снова." << endl;
    }
 
    for (int i = 1; i <= 64; i++)
    {
        board[currentRow][currentColumn] = i;
        
        downAcces(currentRow, currentColumn, accessibility, horizontal, vertical);
        moveNumber = minAcces(currentRow, currentColumn, board, horizontal, vertical, accessibility);
 
        if (moveNumber != 9)
        {
            currentRow += vertical[moveNumber];
            currentColumn += horizontal[moveNumber];
        }
        
 
        else
        {
            cout << "Сделано ходов: " << i << endl;
            break;
        }
    }
    
    cout << endl;
    boardPrint(board, hor);
    system("pause");
    return 0;
}
 
 
 
void boardPrint(int b[][ver], int horiz)
{
    for (int i = 0; i < horiz; i++)
    {
        for (int j = 0; j < horiz; j++)
            cout << setw(4) << b[i][j];
        cout << endl << endl;
    }
}
 
 
int minAcces(int row, int column, int b[][ver], int hori[], int vert[], int accessibility[][ver])
{
    
    int minAcc = 9, moveNumber = 9;
 
    for (int j = 0; j < hor; j++)
        {
            if (row + vert[j] < 8 && row + vert[j] >=0 
                && column + hori[j] < 8 && column + hori[j] >=0 
                && b[row + vert[j]][column + hori[j]] == 0)
            {
                if (minAcc >= accessibility[row + vert[j]][column + hori[j]])
                {
                    minAcc = accessibility[row + vert[j]][column + hori[j]];
                    moveNumber = j;
                }
            }
        }
    return moveNumber;
}
 
 
void downAcces(int row, int column, int acces[][ver], int hori[], int vert[])
{
    for (int j = 0; j < hor; j++)
        {
            if (row + vert[j] < 8 && row + vert[j] >=0 
                && column + hori[j] < 8 && column + hori[j] >=0)
                acces[row + vert[j]][column + hori[j]]--;
            
        }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru