|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.03.2016, 17:01 | #1 |
Пользователь
Регистрация: 11.02.2015
Сообщений: 57
|
Перемещение внутри матрицы
Вчерашний ответ на /http://www.programmersforum.ru/showthread.php?t=290988 мне очень здорово помог
Теперь появился уже другой вопрос Могу ли я взять элемент и записать его в другую ячейку иными словами переместить. например у меня массив символов mas и я хочу сделать такое действие. К примеру в mas[2,3] записан 0,и я его перемещаю например в адрес [4,3] (типа прыжка) и в итоге мой 0 на новом месте,а 2,3 содержит ' - ' (У меня массив символьный) И под вопрос Случайно выбирать куда переместить можно?Просто по заданию нужно случайным образом. Что мной было сделано Я нашёл номера строк и столбцов моих элементов матрицы,которые хочу переместить. Последний раз редактировалось schoolboy99; 25.03.2016 в 17:16. |
25.03.2016, 18:19 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,318
|
Можно и переместить. Пусть перемещается элемент [i1, j1], а матрица размера NxM. Нужно выбрать новое место, и пусть это [i2, j2]. На примере выбора координаты i2:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
25.03.2016, 19:33 | #3 |
Пользователь
Регистрация: 11.02.2015
Сообщений: 57
|
Спасибо вам большое,всё прекрасно работает
|
26.03.2016, 19:58 | #4 |
Пользователь
Регистрация: 11.02.2015
Сообщений: 57
|
Решил реализовать не с одним а со многими элементами/
И возникла проблема Он у меня выводит большое количество объектов,больше чем нужно и выводит 1 раз. Ниже мой код Я планировал сделать так,вот на матрице моей например 2 объекта. Следовательно цикл должен все 2 объекта переместить в случайном направлении. Например будет 10 объектов(конечно матрица будет большое) он 10 раз должен пройти и переместить каждый объект. На рисунке ниже Заполненное это матрица после ввода данных,а после стрелочки результат процедуры moving. По шагово он координаты запоминает но увы не перемещает. Ошибка в цикле,но невооружённым глазом трудно заметить. Код:
Последний раз редактировалось schoolboy99; 26.03.2016 в 20:02. |
26.03.2016, 20:42 | #5 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,318
|
Замечания по вашему коду:
randomize вызывать стоит 1 раз в самом начале работы программы; Похоже, endы не все на своих местах, поэтому код работает даже не так как предполагалось (форматирование кода не соответствует вложенности); Цикл по g не несет никакого смысла, так как внутри него одни и те же [i, j]; поскольку k и l всего лишь переменные, а не массивы, то таким образом будет запомнен только последний активный элемент; "random(N - 1) + 2" нужно прибавлять 1, а не 2; "j2 := random(N - 1) + 2;" опечатка - не N, а M. Если активных элементов немного относительно размера матрицы, то лучше, наверное, хранить их координаты списком, а не пробегать по всей матрице. Вот простой вариант с "пробегом" по всей матрице (и редактированием глобального массива напрямую, что не очень хорошо): Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 26.03.2016 в 20:46. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать ограничение на перемещение? Или я не знаю как называется это правильно. (См. внутри) Делфи | KotyaraYa | Помощь студентам | 5 | 17.12.2012 07:42 |
Нахождение слов-анаграмм, Ошибка выдается. Задание внутри. Код внутри. | TYMON | Общие вопросы .NET | 2 | 22.11.2010 21:07 |
Перемещение абзацев внутри ячейки | piatka | Microsoft Office Word | 6 | 18.05.2010 18:57 |
Перемещение рисунков внутри формы | Marsik | Помощь студентам | 10 | 01.11.2007 09:48 |