komiwojażer - koncepcja
Ostatnio zmodyfikowano 2016-05-18 11:53
Ares Temat założony przez niniejszego użytkownika |
komiwojażer - koncepcja » 2016-05-17 23:21:03 Witam wszystkich.
Piszę ten temat, ponieważ 'opracowałem' koncepcyjnie program, który rozwiąże problem komiwojażera. Do tego zadania chce wykorzystać metodę podziału i ograniczeń, ponieważ wydaje się być najprostsza.
W skrócie: Mamy macierz NxN , gdzie N to liczba miast, a dana macierz przechowuje wagi między miastami(odległości). Cała zabawa polega na modyfikacji tej macierzy, aż do jej odpowiedniego zredukowania - ale nie to jest teraz istotne.
Istotny jest sposób , w jaki program ma działać. Mój pomysł jest następujący: Jedną z klas będzie klasa 'Miasto'. Będzie ona zawierała nazwę miasta oraz jego współrzędne oraz odpowiednie metody. Drugą klasą będzie klasa 'Koszty' . Jej obiekty będą zawierały informację o tym jaka jest odległość między poszczególnym miastami. Następnie chce stworzyć klasę 'Relacje' , której to obiekt będzie zawierał macierz obiektów klasy 'Koszty'. Dodatkowo w tej klasie będą zdefiniowane wszystkie metody potrzebne do jej odpowiedniej redukcji. Ostatnio klasą jaką przewiduje, będzie klasa z kontenerem, do której to będą zapisywane obiekty klasy 'Miasto' w odpowiedniej kolejności , tzn. wyznaczające drogę komiwojażera.
I tutaj jest moje pytanie: Czy taki program, o takiej strukturze będzie w pełni programem obiektowym? Moja koncepcja nie przewiduje dziedziczenia , polimorfizmu ( ani też template'ów) co mnie nie pokoi.
Czy można w jakiś sposób wzbogacić to co opisałem wyżej o jakieś charakterystyczne dla programowania obiektowego rzeczy?
Proszę o opinie i pomoc w rozwiązaniu tego problemu.
Pozdrawiam Ares |
|
darko202 |
» 2016-05-18 11:53:41 1. >> Czy taki program, o takiej strukturze będzie w pełni programem obiektowym? Zadałeś bardzo trudne pytanie, gdyż przedstawiony opis to za mało, aby wydać jednoznaczną opinię. w moim odczuciu na podstawie tego co przedstawiłeś raczej nie jest to (w 100%) program obiektowy, 2. >> Moja koncepcja nie przewiduje dziedziczenia , polimorfizmu ( ani też template'ów) co mnie niepokoi. częściowo słusznie - ? brak dziedziczenia pomimo, ze wykorzystujesz w kolejnych klasach te same elementy widać jakiś zarys rozszerzenia - własności, metod poprzedniej klasy - widać takie możliwości - da się to tak zbudować oczywiście trudno rozstrzygnąć z powodu zbyt małej ilości informacji 3. >>Czy można w jakiś sposób wzbogacić to co opisałem wyżej o jakieś charakterystyczne dla programowania obiektowego rzeczy? w 100% tak. co jest charakterystyczne dla programowania obiektowego ? przeczytaj https://pl.wikibooks.org/wiki/PHP/Czym_jest_programowanie_obiektowe%3Fpopatrz na swój program i wskaż gdzie tego nie realizujesz trudno Ci pomóc mając tak mało informacji Ogólnie programowanie obiektowe nie jest trudne, ale sprawia problemy, bo ciągle uczą programowania obiektowego tak jakby to była kontynuacja programowania strukturalnego, a przecież tak nie jest. 4. Pokaż strukturę klas (pliki h. .hpp) to będzie można coś więcej powiedzieć. Powodzenia |
|
« 1 » |