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

Заполнить матрицы по правилу - C++

Восстановить пароль Регистрация
 
AshBringer4eg
 Аватар для AshBringer4eg
26 / 26 / 3
Регистрация: 25.11.2010
Сообщений: 72
07.04.2011, 23:21     Заполнить матрицы по правилу #1
Доброго времени суток. Вот встал перед проблемой при работе с матрицей.
Необходимо заполнить матрицу 5х5 следующим образом
1 1 1 1 1__или__x 1 1 1 x
0 1 1 1 0_______0 x 1 x 0
0 0 1 0 0_______0 0 x 0 0
0 1 1 1 0_______0 x 1 x 0
1 1 1 1 1_______0 0 0 0 0

Исходников не прошу, хочу просто услышать мысли по этому поводу, алгоритмы реализации, мб примеры, а то щя по книжке С учу а там задачка интересная попалась, хочу сделать но не выходит
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2011, 23:21     Заполнить матрицы по правилу
Посмотрите здесь:

Заполнить матрицу по правилу C++
C++ Заполнить двумерный массив по правилу
Заполнить двумерный массив по правилу C++
Заполнить двумерный массив по правилу C++
Заполнить матрицу по правилу C++
Матрицу A (m, n) заполнить по указанному правилу C++
C++ Заполнить квадратную матрицу по правилу «шахматная доска»
C++ Заполнить массив размерностью 6x6 по правилу

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spickard
 Аватар для Spickard
7 / 7 / 1
Регистрация: 07.04.2011
Сообщений: 25
07.04.2011, 23:58     Заполнить матрицы по правилу #2
А можно название книги?)
1 вариант:
пусть n размерность матрицы
Можно так, заполняем по столбцам.
Первый элемент 1, дальше n-2 нулей, еденица.
следующий столбец, на одну единицу больше чем в прошлый раз, ещё на 2 уменьшаем число нулей, и опять столько же едениц.
и т.д.
Всё это в цикл соответственно вставить.

2 вариант по аналогии можно сделать, просто он чуть сложнее. Думаю разберётесь
AshBringer4eg
 Аватар для AshBringer4eg
26 / 26 / 3
Регистрация: 25.11.2010
Сообщений: 72
08.04.2011, 10:43  [ТС]     Заполнить матрицы по правилу #3
Название книги кануло в лета, просто у нее много страниц вырваных... варвары в нашем институте добили ее. А вобще хорошая книга "Как програмировать на С++" Харви Дейтл, Пол Дейтл. Есть в электронке.

А к матрицам я скажу что если сделать первую то вторую оч просто будет.
Там просто в цикле надо проверять (i==j)-координаты основной диагонали и (i==j-matrixSize) второстепенная диагональ. Вот и выходит
C++
1
2
3
4
if (i==j || i==j-matrixSize) 
{
 matr[i][j]="x";
}
Добавлено через 14 минут


Попробовал, не очень получилось, можно мысль развернуть по глубже если не сложно?)
Spickard
 Аватар для Spickard
7 / 7 / 1
Регистрация: 07.04.2011
Сообщений: 25
08.04.2011, 19:28     Заполнить матрицы по правилу #4
Чуть чуть забыл дописать в алгоритме: После перехода n/2 столбца начинаем прибавлять, если n чётно, то после n\2+1 стобца прибавляем 2 нуля, если нечётно то сначала 1 нуль потом по два.

Попробую на примере 2х матриц, например размерностей 5 и 4. Действуем по моему алгоритму.
0 шаг, матрицы инициализированы нулём.

00000 0000
00000 0000
00000 0000
00000 0000
00000

1 шаг. "заполняем по столбцам. Первый элемент 1, дальше n-2 нулей, еденица."
Тоесть получится 3 и 2 нуля соответственно.

10000 1000
00000 0000
00000 0000
00000 1000
10000

2 шаг. Переходим на следующий столбец.
получается 1 и 0 нулей.

11000 1100
01000 0100
00000 0100
01000 1100
11000

3 шаг. получается -1 и -2 нулей. Отрицательные значения не могут быть, поэтому везде по нулю.

11100 1110
01100 0110
00100 0110
01100 1110
11100

4 шаг. В первой матрице перешли на вторую половину, и т.к. она с нечётно размерностью поставили 1 нуль. Во второй соответственно 2.

11110 1111
01110 0110
00100 0110
01110 1111
11110

и т.д.



P.S. Кажется я немного перемудрил с алгоритмом. Наверняка есть проще решение.
AshBringer4eg
 Аватар для AshBringer4eg
26 / 26 / 3
Регистрация: 25.11.2010
Сообщений: 72
09.04.2011, 11:01  [ТС]     Заполнить матрицы по правилу #5
Довольно громоздкая, и по моему не стабильная конструкция, но я попробую : )
Что выйдет выложу сюда.
Spickard
 Аватар для Spickard
7 / 7 / 1
Регистрация: 07.04.2011
Сообщений: 25
09.04.2011, 12:23     Заполнить матрицы по правилу #6
Ну, сочинил "на ходу" может я просто плохо мысль изложил.
Yandex
Объявления
09.04.2011, 12:23     Заполнить матрицы по правилу
Ответ Создать тему
Опции темы

Текущее время: 16:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru