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

предлагаю людям класс "рекурсивный обход матрицы" для решения задач на такую тематику - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ [Матрица] Круг или квадрат? http://www.cyberforum.ru/cpp-beginners/thread337379.html
Доброго времени суток. Условие тут. Просьба подсказать алгоритм или выложить код с кратким описанием идеи решения. Сам довольно много думал, но ничего дельного не надумал... А задача должна быть...
C++ Visual C++ & Hello world Вот поставил Visual C++ 2005 Пишу: #include "stdafx.h" #include <iostream.h> int _tmain(int argc, _TCHAR* argv) { http://www.cyberforum.ru/cpp-beginners/thread337362.html
Быстрый перевод байта в вектор битов C++
Всем привет. Есть тут интересная задачка: перевести байт в вектор битов, да побыстрее. Я реализовал это дело через таблицу. Кто знает способ лучше ? public: void static CharToBits (const...
Почему тормозит играаа??? C++
Добрый день - решил недавно создать игрушку (третяя на моем счету)... но на этот раз игра не пошаговая - эдакое подобие бомбермена с инвентарем... Можете пожалуйста подсказать по какой причине...
C++ простые функции http://www.cyberforum.ru/cpp-beginners/thread337334.html
Всем приветик!!! Есть код: #include<iostream.h> #include<conio.h> #include<string.h> enum Shape{prizm,parallelepiped,cube,pyramid,cone,cylinder}; class Body {
C++ Построить эйлерову цепь в графе. Всем доброго времени суток! Помогите пожалуйста или подскажите как сделать следующее. Дали задание по дискретной математике построить эйлерову цепь в графе (нужно реализовать все программе, но вот не... подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
18690 / 6656 / 469
Регистрация: 30.03.2009
Сообщений: 18,627
Записей в блоге: 29
30.07.2011, 18:25
Цитата Сообщение от kravam Посмотреть сообщение
И только щас дорос до класса
И при этом не видишь, что при помощи класса решение получается более громоздким? Может для начала надо было бы найти задачи, которые действительно будет проще решать при помощи твоего класса?

Цитата Сообщение от kravam Посмотреть сообщение
Прикинь, я понимаю недостатки универсального интерфейса. Просто где-то внутрях, интуитивно, понимаю чем он чреват и всё тут. Ну так и достоинства его я тоже мыслю. Если сложная задача, по фиг на память- использовать мой интерфейс. Не хватает стека- забить. Я не строю иллюзий, как видишь
Реальные недостатки ты увидишь тогда, когда начнёшь его использовать в реальных условиях. Три твои задачи - это вовсе не реальные условия, а тестовые, потому как эти задачи проще решать без твоего класса

Цитата Сообщение от kravam Посмотреть сообщение
Допустим, нужно тебе попасть из точки A матрицы в точку B по определённым правилам. Вот перебираешь точки, которые этим правилам следуют. Причём начиная в каждой новой точке, всё как-бы по-новому воссоздаётся. Допустим, я "стоял" в точке (3, 5) (только не спрашивай меня, что значит термин "стоял"!) и выполнялся какой-то код. И этот код (как-то: поиск точек куда можно "прынуть", проверка- не конец ли пути) повторяется. А раз повторяется, не писать же его для каждой новой точки! Надо писать рекурсивную функцию для этого дела и параметром в неё передавать координаты текущей точки. Вот и всё
За это пока браться не стоит, но тем не менее напишу. Матрица с точки зрения поиска пути - есть не что иное, как граф. А потому класс по-хорошему надо писать как класс для решения поиска пути в графе. При этом матрицу реализовать как частный случай графа. здесь я приводил пример решения программы для решения судоку. Решалка строилась максимально абстрактно: есть столько-то клеток, которые объединены в столько-то пересекающихся групп и нужно расставить цифры, чтобы в каждой группе цифры не повторялись. При этом обычная квадратная судоку является частным случаем общей. При таком подходе можно задавать входные данные для судоку любой формы, но для квадратной, как для частного случая, процесс этот становится в разы более простым (потому как квадрат проще описывается, чем произвольный набор). Точно так же матрицу проще описать, чем граф произвольной формы: можно задать ширину и высоту и этой информации достаточно, чтобы класс внутри себя построил граф, который в мысленном представлении выглядел бы как прямоугольник

Цитата Сообщение от kravam Посмотреть сообщение
Вот что делается в рекурсивной функции:
1)во первых, ищутся точки куда можно пойти из этой точки
2)Проверка на то, конец пути или нет
3)Если не конец пути, то вызывается функция изменения, потом координаты текущей точки прибавляется к пройденному пути
4)снова вызывается эта функция ДЛЯ КАЖДОЙ ИЗ ТОЧЕК, найденных в пункте 1.
Вот с этого и надо было начинать. Описать некий класс задач с примерами, описать, что для решения этого класса задач было бы удобно пользоваться понятием "поиск пути в графе (матрице)", описать алгоритм на словах, а потом уже показать код. И поменьше быдлокодства и шапкозакидательства

Добавлено через 31 секунду
И ещё более-меняя внятно описать, как твоим классом пользоваться.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru