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

Не могу составить программу для заполнения матрицы по спирали с заданным интервалом между ячейками! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевести код символа числа в число http://www.cyberforum.ru/cpp-beginners/thread630384.html
Как средствами с/с++ перевести код символа целого числа в само целое число? char ch; int num; ch = getche(); // в переменную заносится код символа // в переменную num требуется занести целое число, соответствующее коду символа
C++ Сумма ряда Всем привет, помогите закодить формулу. http://www.cyberforum.ru/cpp-beginners/thread630378.html
Написать программу приведения матрицы к треугольному виду методом Гаусса, и вычислить определителя C++
Задание: Написать программу приведения матрицы к треугольному виду методом Гаусса, и вычислить определитель. Ошибка: Пытался сдать ее, а мне сказали что она неправильна, что после перестановки строк, определитель будет неправильно находиться. нужно что-то дополнить в функции opred. Я вообще без понятия что делать, может кто нибудь знает что нужно сделать??? Заранее спасибо)))) И вообще...
Первая задача в С++ C++
Здравствуйте. Я начать изучать самостоятельно язык С++. В колледже (пока 2 курса) учили Pascal и чуть-чуть C. Понял, что это моё, и мне нравится программирование, но такие темпы меня не устраивают. Решил изучать самостоятельно. Купил книгу (тут только консольные примеры, как раз для таких новичков, как я). Первая программа выглядит так: /* Программа №1 - Первая С++-программа. Введите эту...
C++ C++ под Windows http://www.cyberforum.ru/cpp-beginners/thread630350.html
Доброго дня! Разбираюсь в программировании на С++ под Windows? нахожусь в самом начале вот взял пример из книги прошу подскажите в чём ошибка... #include <windows.h> HINSTANCE hInst; // global handle to hold the application instance HWND wndHandle; // global variable to hold the window handle // forward declarations //bool initWindow( HINSTANCE hInstance ); LRESULT CALLBACK WndProc(...
C++ Существует ли элемент в <vector> Как можно без перебора выяснить существует ли элемент уже в списке vector<int> ? Может есть такая функция в list или в deque ? подробнее

Показать сообщение отдельно
demon_666_902
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 12
29.07.2012, 18:47     Не могу составить программу для заполнения матрицы по спирали с заданным интервалом между ячейками!
Здравствуйте, дорогие форумчане!!!
Делаю программу одному другу - он занимается игрой в государственные лотереи и попросил составить ему программу следующего содержания:

Дана последовательность 80 чисел (как она рассчитывается, думаю, можно упустить)...
Далее с этой последовательностью делаем следующее:

1) Он сам выбирает расстояние между элементами и матрица 9х9 заполняется с заданным интервалом (причем ячейка с индексом [9,9] (если нумерация элементов начать не с 0 как в С-подобных языках, а c 1),
например, если интервал=0, то матрица заполняется по обычной спирали (с этим проблем нет - еще в школе его разобрал), но если интервал > 1, то возникают проблемы... Вот как это выглядит при интервале 1 (покажу на матрице 5х5):

| 1| 9 | 2|10| 3|
| 8|16| |17|11|
|15| |20| | 4|
| 7|19| |18|12|
|14| 6|13| 5|free|

На этом 1 этап прохода заканчивается, как видно - пустую клетку вообще не учитываем и при вычислении следующего номера ячейки ее упускаем, как будто и нет ее. На следующем этапе ищем самую первую свободную ячейку (сверху вниз, слева - направо) - с этим проблем у меня не возникнет и заполняем оставшиеся пустые клетки.

| 1| 9 | 2|10| 3|
| 8|16|21|17|11|
|15|24|20|22| 4|
| 7|19|23|18|12|
|14| 6|13| 5|free|

Вот как это объяснить компилятору????
Можете предложить способы решения данной проблемы, а, в частности, я предлагаю свое видение решения:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
i = 1 // Порядковый номер элемента исходного массива
index = {0,0}; // Массив с координатами следующей ячейки, получаемой из функции
ind_i = 0; // Номер текущей строки элемента
ind_j = 0; // Номер текущего столбца элемента
dx = 1 // Шаг
while (i <= 80)
{
if (i == 0)
{
arr_res[ind_j, ind_i] = arr_src[i];
i++;
}
else
{
index = GetNextFreeCell(ind_j, ind_i, dx)
ind_i = index[0];
ind_j = index[1];
arr_res[ind_j][ind_i] = arr_src[i];
i++;
}
}
Но вот как реализовать функцию получения индекса следующей ячейки, в которую нужно вставить следующий элемент.... Вот этого я не знаю.... Может, кто-то может предложить способ решения проблемы????
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru