Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывод из файла в структуру, ошибка в коде С++ https://www.cyberforum.ru/ cpp-beginners/ thread1961019.html
В чем ошибка в коде? В файле записаны имя и пол в строчку через пробел. Программа запускается но не вывод структуру. Буду признателен за помощь. Заранее спасибо #include<iostream>...
C++ Перегрузка оператора присваивание
Приветствую. Есть код: .h #include <iostream> using namespace std; template <class T> class Set { int g;
C++ Thread https://www.cyberforum.ru/ cpp-beginners/ thread1961017.html
Доброго времени суток господа! Вопрос в коде в комментариях. #include <iostream> #include <thread> enum { DELAY = 5 }; bool mutex = false; void TestFunction() {
C++ Поменять местами максимальный элемент главной диагонали и минимальный элемент нижней треугольной матрицы - поменять местами максимальный элемент главной диагонали и минимальный элемент нижней треугольной матрицы; Вывести на экран монитора матрицу, сформированный одномерный массив, https://www.cyberforum.ru/ cpp-beginners/ thread1961008.html
В дополнительный столбец матрицы записать разности между первым и последним элементами каждой строки C++
- в дополнительный столбец записать разности между первым и последним элементами каждой строки; Вывести на экран монитора матрицу, сформированный одномерный массив,
C++ В одномерный массив записать целые части значений матрицы, большие заданного числа https://www.cyberforum.ru/ cpp-beginners/ thread1961003.html
Здравствуйте,помогите, пожалуйста. (Dev-C++) Вещественная матрица G(7,7). - в одномерный массив С записать целые части значений матрицы, большие заданного числа.
C++ Рассчитать среднее арифметическое элементов главной диагонали матрицы Здравствуйте,помогите, пожалуйста. (Dev-C++) Вещественная матрица G(7,7). - рассчитать среднее арифметическое элементов главной диагонали исходной матрицы; https://www.cyberforum.ru/ cpp-beginners/ thread1961002.html В дополнительный столбец матрицы записать количество отрицательных элементов в каждой строке C++
Здравствуйте,помогите, пожалуйста. (Dev-C++) Вещественная матрица G(7,7). - в дополнительный столбец записать количество отрицательных элементов в каждой строке;
C++ Y=3sin(x+5) на отрезке [-2; 3] c шагом 0,25 https://www.cyberforum.ru/ cpp-beginners/ thread1960995.html
Помогите пожалуйста доделать программу. Определить, до или после минимального значения функция Y принимает свое первое нулевое значение: Y=3sin(x+5) на отрезке c шагом 0,25.С использованием...
C++ Переписать четные и нечетные элементы матрицы в отдельные массивы Задана целая квадратная матрица. Сформировать и вывести на экран два одномерных массива: в первый включить четные элементы матрицы, во второй – нечетные. https://www.cyberforum.ru/ cpp-beginners/ thread1960986.html
C++ Построчное считывание файла
Всё, я совсем запуталась. Помогите пожалуйста!!! Есть файл, который нужно считать. Но каждая его строка должна быть считана в массив. Но не выводиться на экран. ifstream...
C++ Создать новый массив, занеся в каждый элемент среднее арифметическое всех предыдущих элементов В общем у меня есть задание: Дан одномерный массив вещественных чисел А. .Отсортировать массив В методом выбора и вывести на экран оба массива. У меня возникли сложности именно с частью... https://www.cyberforum.ru/ cpp-beginners/ thread1960976.html
0 / 0 / 1
Регистрация: 11.07.2012
Сообщений: 13
19.04.2017, 09:03  [ТС] 0

Из листа клетчатой бумаги размером M умножить N клеток удалили некоторые клетки - C++ - Ответ 10346863

19.04.2017, 09:03. Показов 6458. Ответов 2
Метки (Все метки)

Ответ

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
#include <iostream> // std::cout and so on.
#include <vector> // for std::vector.
#include <utility> // for std::pair.
 
// 0 - cell enable;
// -1 - cell empty;
// 1.. - number of variant.
 
class Desk
{
public:
    // Init desk.
    Desk(int len, int hei)
        : length(len), height(hei)
    {
        board = new int*[height];
        for (int i = 0; i < height; ++i)
        {
            board[i] = new int[length];
 
            for (int j = 0; j < length; ++j)
            {
                board[i][j] = 0;
            }
        }
    }
 
    // Free resources.
    ~Desk()
    {
        for (int i = 0; i < height; ++i)
        {
            delete board[i];
        }
        delete board;
    }
 
public:
    // Handle desk.
    void handle()
    {
        count = 1;
 
        for (int i = 0; i < height; ++i)
        {
            for (int j = 0; j < length; ++j)
            {
                if (board[i][j] == 0)
                {
                    std::vector<std::pair<int, int> > co;
 
                    check(i,j, co); // write coordinates to storage.
                    confirm(co, count); // save coordinates.
                    ++count;
                }
            }
        }
    }
 
    void showDesk()
    {
        for (int i = 0; i < height; ++i)
        {
            for (int j = 0; j < length; ++j)
            {
                std::cout.width(3);
                std::cout << board[i][j];
            }
            std::cout << "\n";
        }
        std::cout << "\n" << std::endl;
    }
 
    void removeCell(int y, int x)
    {
        board[y][x] = -1;
    }
 
    int countResult() const
    {
        return count;
    }
 
private:
    // Check cell.
    void check(const int y, const int x, std::vector<std::pair<int, int> >& coordinates)
    {
        if (x == length || x == -1 || y == height || y == -1)
        {
            return;
        }
        else if (board[y][x] == -1) // if cell empty..
        {
            return;
        }
 
        // Finding equals coordinates.
        for (size_t i = 0; i < coordinates.size(); ++i)
        {
            if (coordinates[i].first == y && coordinates[i].second == x) // if fined - return.
            {
                return;
            }
        }
 
        std::pair<int, int> p(y, x);
        coordinates.push_back(p); // save current location.
 
        check(y, x+1, coordinates); // move forward.
        check(y, x-1, coordinates); // move backward.
        check(y-1, x, coordinates); // move up.
        check(y+1, x, coordinates); // move down.
    }
 
    void confirm(const std::vector<std::pair<int, int> >& coordinates, int value)
    {
        for (size_t i = 0; i < coordinates.size(); ++i)
        {
            board[coordinates[i].first][coordinates[i].second] = value;
        }
    }
 
private:
    const int length;
    const int height;
    int count;
    int** board;
};
 
int main()
{
    Desk desk(8, 8);
    desk.showDesk();
 
    desk.removeCell(0, 1);
    desk.removeCell(1, 0);
 
    desk.removeCell(0, 6);
    desk.removeCell(1, 7);
 
    desk.removeCell(6, 0);
    desk.removeCell(7, 1);
 
    desk.removeCell(6, 7);
    desk.removeCell(7, 6);
 
    desk.removeCell(4, 3);
    desk.removeCell(3, 2);
    desk.removeCell(2, 3);
    desk.removeCell(2, 4);
    desk.removeCell(3, 5);
    desk.removeCell(4, 4);
 
    desk.handle();
 
    desk.showDesk();
}
Нашел код, помогите в нем разобраться, если можно добавить комментарии к нему, как и что происходит

Вернуться к обсуждению:
Из листа клетчатой бумаги размером M умножить N клеток удалили некоторые клетки C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2017, 09:03
Готовые ответы и решения:

Из листа клетчатой бумаги N*N вырезали М клеток, на сколько кусков распадается оставшаяся часть листа?
условие:из листа клетчатой бумаги N*N клеток вырезали М клеток . на сколько кусков распадается...

Из листа клетчатой бумаги размером М*Н клеток удалили некоторые клетки. На сколько кусков распадется оставшаяся часть листа?
Срочно нужна помощь в выполнении данной задачи, т.к. в Паскале я полный 0. кому не сложно и есть...

На сколько кусков распадется часть листа, если из него вырезать некоторые клетки? Есть алгоритм.
Из листа клетчатой бумаги размером М*N клеток удалили некоторые клетки. На сколько кусков...

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

2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2017, 09:03
Помогаю со студенческими работами здесь

Как сделать, чтобы с активного листа некоторые ячейки копировались в один лист, а некоторые - в другой?
задача. есть таблица в которой 4 столбца. эти четыре столбца должны с капировался так. Первый...

Список всех клеток, на которые может попасть конь с указанной клетки за один ход
Вам дана строка, содержащая координату клетки на шахматном поле (например, “A2”). Напишите функцию...

По заданному номеру клетки найти номера всех клеток, имеющих с ней общую сторону
Проблема такая. Не могу сделать вот эту задачу: Клетки шахматной доски пронумерованы от 1 до 64 по...

По заданному номеру клетки выдать номера всех клеток имеющих с ней общую сторону
Клетки шахматной доски пронумерованы от 1 до 64 по строкам слева напрпаво и снизу вверх.По...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru