Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
van77715
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 50
#1

Как реализировать заполнение массива квадратами? - C++

26.09.2013, 16:35. Просмотров 598. Ответов 19
Метки нет (Все метки)

Я создал програму которая заполняет двумерный масив символами 35, а потом в рандомных местах создает прямоугольники символами 46, мне нужно чтобы все квадраты были связаны друг с другом линиями из знаков 46, как это осуществить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2013, 16:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как реализировать заполнение массива квадратами? (C++):

Заполнение массива квадратами натуральных чисел, начиная с 3 - C++
Создал класс Array с двумя полями: указатель на массив целых чисел и размер массива. 1. Конструктор, который принимает 1 параметр (размер...

Массив: Как реализировать изменения в массиве по заданным координатам на экране - C++
есть двумерный масив 78 100, и как реализировать что будет изменятся в масиве только возле координат y x или i j. Я знаю только system...

Являются ли элементы 1-го, квадратами элементов 2-го массива? - C++
Даны 2 одномерных массива (вводятся с клавиатуры), проверить, являются ли элементы 1-го, квадратами элементов 2-го массива.

Все отрицательные члены массива заменить их квадратами - C++
В массивах не силен, поэтому обращаюсь к знающим людям, форумные троли лесом. 1.Если в данном массиве целых чисел а1...аn, есть хотя...

Заменить все отрицательные элементы массива их квадратами - C++
Нужна помощь с задачей. Не пишу на c++, потому не знаю как это написать. 2) В двумерном вещественном динамическом массиве замените...

Как правильно реализовать заполнение двумерного массива элементами - C++
Здравствуйте! Имеется проблема такого рода: Имеется 5-6 классов, с базовым классом и 5- наследниками. Все классы - имеют разный...

19
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
26.09.2013, 16:44 #2
связаны были уже после построения всех прямоугольников из символов 46? или во время построения?
просто связаны через друг друга или каждый с каждым?
0
van77715
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 50
26.09.2013, 16:53  [ТС] #3
Цитата Сообщение от HedgehogLu Посмотреть сообщение
связаны были уже после построения всех прямоугольников из символов 46? или во время построения?
просто связаны через друг друга или каждый с каждым?
построило все прямоугольники >> теперь строит связи через 2 любых( ширина в 1 знак), нужно чтобы они все были вместе, и чтобы не было прямоугольника не связаного хотя бы с 1 прямоугольником еще.
0
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
26.09.2013, 17:02 #4
ну я бы перекрашивал
т.е. берете массив, находите первое попадание символа 46. перекрашиваете прямоугольник (каким либо заранее определенным символом не 35 и не 46) при этом получая его характеристики (начальные и конечные координаты или же начальные координаты и длину с ширной). затем ищите следующее попадание 46 символа. закрашиваете прямоугольник получая и его данные. Проводите между ними линию из закрашенных символов. Т.к. можно цепочкой, то можно забыть про первый прямоугольник а оставить данные только по второму и аналогично перейти к третьему и т.д. пока при поиске символа 46 не дойдете то конца массива.

После этого перекрашиваете все перекрашеные символы в символ 46

Добавлено через 1 минуту
Если перекрашивать нельзя, то просто создаете отдельный массив прямоугльников. А потом соединять их линиями в соответствии с требованиями к линиям.
0
van77715
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 50
26.09.2013, 17:10  [ТС] #5
Цитата Сообщение от HedgehogLu Посмотреть сообщение
ну я бы перекрашивал
т.е. берете массив, находите первое попадание символа 46. перекрашиваете прямоугольник (каким либо заранее определенным символом не 35 и не 46) при этом получая его характеристики (начальные и конечные координаты или же начальные координаты и длину с ширной). затем ищите следующее попадание 46 символа. закрашиваете прямоугольник получая и его данные. Проводите между ними линию из закрашенных символов. Т.к. можно цепочкой, то можно забыть про первый прямоугольник а оставить данные только по второму и аналогично перейти к третьему и т.д. пока при поиске символа 46 не дойдете то конца массива.

После этого перекрашиваете все перекрашеные символы в символ 46

Добавлено через 1 минуту
Если перекрашивать нельзя, то просто создаете отдельный массив прямоугльников. А потом соединять их линиями в соответствии с требованиями к линиям.
попробую
0
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
26.09.2013, 17:18 #6
успехов
0
van77715
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 50
26.09.2013, 18:01  [ТС] #7
Цитата Сообщение от HedgehogLu Посмотреть сообщение
успехов
как кстати проводить между ними линию?
через цикл фор и добавлять от 1 точки по 1?
0
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
26.09.2013, 18:05 #8
тут уже какие требования к линиям.
Должны быть они прямыми или ломанными?
Могут ли они пересекаться?
Могут ли они идти по диагонали?

Добавлено через 50 секунд
если просто линиями, то по формуле линии которая определена двумя точками
у=кх+в
0
van77715
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 50
26.09.2013, 18:10  [ТС] #9
Цитата Сообщение от HedgehogLu Посмотреть сообщение
тут уже какие требования к линиям.
Должны быть они прямыми или ломанными?
Могут ли они пересекаться?
Могут ли они идти по диагонали?

Добавлено через 50 секунд
если просто линиями, то по формуле линии которая определена двумя точками
у=кх+в
еще вопрос, можно и сразу записывать так?
j = j - 10...j + 10 ну от j - 10 до j +10
map[i][j] = 35

Добавлено через 3 минуты
Цитата Сообщение от HedgehogLu Посмотреть сообщение
тут уже какие требования к линиям.
Должны быть они прямыми или ломанными?
Могут ли они пересекаться?
Могут ли они идти по диагонали?

Добавлено через 50 секунд
если просто линиями, то по формуле линии которая определена двумя точками
у=кх+в
линии и прямые и ломаные
по диагонали если будет зигзаг в длину 2 и ширину 2
могут пересекатся
0
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
26.09.2013, 18:16 #10
Цитата Сообщение от van77715 Посмотреть сообщение
еще вопрос, можно и сразу записывать так?
j = j - 10...j + 10 ну от j - 10 до j +10
map[i][j] = 35
что именно вы подразумевали.
т.к. изначальная формулировка ошибочна, в следствии того, что индексация элементов массива всегда идет с 0 и индекс являет собой беззнаковое целое число.
т.о. допустим если индекс у нас байт. то индекс -7 по сути равен 249

Добавлено через 3 минуты
Цитата Сообщение от van77715 Посмотреть сообщение
линии и прямые и ломаные
по диагонали
...
Цитата Сообщение от van77715 Посмотреть сообщение
могут пересекатся
тогда не парься соединяй поочередно прямоугольники обычными линиями по формуле кх+в, где точки для расчета прямой бери например центры прямоугльников.
0
van77715
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 50
26.09.2013, 18:18  [ТС] #11
Цитата Сообщение от HedgehogLu Посмотреть сообщение
что именно вы подразумевали.
т.к. изначальная формулировка ошибочна, в следствии того, что индексация элементов массива всегда идет с 0 и индекс являет собой беззнаковое целое число.
т.о. допустим если индекс у нас байт. то индекс -7 по сути равен 249
кстати, я вывожу масив обычными циклами фор(i)и в нем фор(j), мне нужно чтобы етот выведенный масив оставляло, и заменяло знаки в некоторой области, чтобы выводило область в массиве.
Например
000
000
001


000
010
000

100
000
000
чтобы выводило область возле 1
0
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
26.09.2013, 18:24 #12
тока тут есть одна оговорка, если тебе нельзя несколько прямоугольников связывать несколько раз, то при построении линии между двумя прямоугольниками надо будет ее проверять на пересечение любых других прямоугольников и соответственно персеченные исключать из дальнейшего расчета. (при перекрашивании тогда придется возвращать исходные значения 46 для прямоугльников при соединении. А именно:возвращать значения для соединяемых прямоугольников, при прорисовки линии в массиве проверять на перекрашенный элемент, и если такой попался, то восстанавливать весь прямоугольник который линия зацепила. В последющем при выборе следующего соединяемого прямоугольника прямоугольника пропускать уже восстановленные.

Добавлено через 1 минуту
на сегодня я с работы ушел. буду за компом не ранее чем через 2 - 3 часа Если к тому моменту вы проблему не решите, постараюсь дальше помочь в ее разрешении
0
van77715
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 50
26.09.2013, 18:28  [ТС] #13
Цитата Сообщение от HedgehogLu Посмотреть сообщение
тока тут есть одна оговорка, если тебе нельзя несколько прямоугольников связывать несколько раз, то при построении линии между двумя прямоугольниками надо будет ее проверять на пересечение любых других прямоугольников и соответственно персеченные исключать из дальнейшего расчета. (при перекрашивании тогда придется возвращать исходные значения 46 для прямоугльников при соединении. А именно:возвращать значения для соединяемых прямоугольников, при прорисовки линии в массиве проверять на перекрашенный элемент, и если такой попался, то восстанавливать весь прямоугольник который линия зацепила. В последющем при выборе следующего соединяемого прямоугольника прямоугольника пропускать уже восстановленные.

Добавлено через 1 минуту
на сегодня я с работы ушел. буду за компом не ранее чем через 2 - 3 часа Если к тому моменту вы проблему не решите, постараюсь дальше помочь в ее разрешении
спасибо вообщем
0
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
26.09.2013, 20:52 #14
если что я вернулся
0
van77715
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 50
26.09.2013, 22:23  [ТС] #15
Цитата Сообщение от HedgehogLu Посмотреть сообщение
если что я вернулся
кстати, я вывожу масив обычными циклами фор(i)и в нем фор(j), мне нужно чтобы етот выведенный масив оставляло, и заменяло знаки в некоторой области, чтобы выводило область в массиве.
Например
000
000
001


000
010
000

100
000
000
чтобы выводило область возле 1

Добавлено через 5 минут
Цитата Сообщение от van77715 Посмотреть сообщение
кстати, я вывожу масив обычными циклами фор(i)и в нем фор(j), мне нужно чтобы етот выведенный масив оставляло, и заменяло знаки в некоторой области, чтобы выводило область в массиве.
Например
000
000
001


000
010
000

100
000
000
чтобы выводило область возле 1
и как сделать чтобы екран централизировало на елементе масива который равен 0?
0
26.09.2013, 22:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2013, 22:23
Привет! Вот еще темы с ответами:

Заменить все элементы массива квадратами этих элементов - C++
2.Дан целочисленный массив В. Заменить все его элементы их квадратами. Помогите пожалуйста с решением,только начал изучать с++,а уже...

Вывести элементы массива являющиеся квадратами четных чисел - C++
Элементы массива-целые числа, равномерно распределенные в интервале . Вывести на печать (в консоле) исходный массив и элементы массива, явл...

Найти сумму элементов массива, являющихся точными квадратами - C++
Задание такое: Найти сумму элементов массива являющихся точными квадратами. Пожалуйста, помогите!!:-[

Найти элементы массива, являющиеся квадратами некоторого числа - C++
Даны целые положительные числа а1, а2 ..., аn. Найти среди них те, которые являются квадратами некоторого числа т. Заранее спасибо.


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru