Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

komiwojażer - koncepcja

Ostatnio zmodyfikowano 2016-05-18 11:53
Autor Wiadomość
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
P-148356
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%3F

popatrz 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

P-148364
« 1 »
  Strona 1 z 1