Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2008-04-05 15:56:10

  skotx - Członek DUG

skotx
Członek DUG
Skąd: Olkusz
Zarejestrowany: 2008-01-22

Obiektowe c++

Witam, panowie mam do was sprawę z wiązaną z w/w tematem. Mam napisać taki oto program za pomocą buildera na xp :/ :

Program demonstrujący konwersję i testujący umiejętności zamiany liczb z systemu dziesiętnego na kod Znak Moduł, Uzupełnienie do 1, Uzupełnienie do 2 (Windows)

I w tym jest problem że nie mam pojęcia jak się za to zabrać. W programowaniu strukturalnym jakoś dałbym rade, ale z obiektowym to już mam kłopot.
Natknął się może ktoś z was na dobry kurs obiektówki ?? Ja nie mogę nic konkretnego znaleźć, tak więc zwracam się do was.

Za wszelkie wskazówki jestem wdzięczny.


Jeśli mam wysłuchiwać czyichś poglądów, to niech będą one wypowiedziane w formie twierdzącej, wątpliwości sam mam dosyć.

Offline

 

#2  2008-04-06 03:17:43

  harry666t - Członek DUG

harry666t
Członek DUG
Zarejestrowany: 2007-01-28

Re: Obiektowe c++

Zastanawiam się, czy istota, która zleciła ci to zadanie, aby na pewno wie ockrfachdzi w programowaniu obiektowym. Bo zrobienie klasy oKurdeJakaFajnaKlasa i wrzucenie do niej kilku funkcji przeliczających z czegoś na coś jest równie obiektowe jak napisanie tego samego w "czystym" lispie.

W programowaniu obiektowym chodzi o tworzenie abstrakcyjnych klas różnych obiektów, reprezentujących klasy obiektów występujące w "prawdziwym" świecie, czyli np puszki z różnymi napojami, ludzie, samochody, pralki, karabiny, maskotki, i nadawanie im pewnych zachowań, np. z puszki można pociągnąć łyka (void wypij()), do człowieka zagadać (void talk()), z karabinu strzelić (void strzelaj(czlowiek *cel)), w pralce wyprać stado dzikich bestii (void wypierz(maskotki **m)). Jeżeli od pierwszej sekundy nie widzisz co najmniej jednej oczywistej korzyści (niech to będzie choćby poprawienie czytelności i usystematyzowanie kodu) z takiego podejścia do danego problemu, nie ma sensu próbować go rozwiązywać przy pomocy programowania obiektowego. Kod zamiast logiczniejszy będzie pełen bzdurnych fintifluszków (widział ktoś "hello world" w Javie? A w Pythonie? O to chodzi). Wielu ludzi myśli że OOP jest jakimś magicznym sposobem, aby absolutnie każdy program był w jakiś sposób bardziej zajebisty. Po prostu padli ofiarą działu marketingu jakiejś firmy.

Kiedy OOP jest dobre. Przykład. Robisz klasę jakichś przedmiotów, na przykład pieczywo, tak jak tu:

Kod:

class pieczywo {
public:
  void eat();
}

i jej implementację:

Kod:

void pieczywo::eat() {
  //yum yum! :D
}

potem rozszerzasz tę klasę, dziedzicząc z niej, bo chcesz na przykład oddelegować pączka:

Kod:

class ponczek : public pieczywo {
  bool jest_lukier;
public:
  ponczek() {jest_lukier = true;} // konstruktor!
  void zlizuj_lukier();
}

i implementacja...

Kod:

void ponczek::zlizuj_lukier() {
  jest_lukier = false;
}

Potem możesz na przykład utworzyć funkcję, która zje pieczywo:

Kod:

void pozeraj(pieczywo *p) {
  p->eat();
}

Oraz kazać jej zjeść pączka:

Kod:

void main bla bla bla {
  pieczywo *moje = new ponczek();
  pozeraj(moje);
}

Do tego typu zadań programowanie obiektowe jest bardzo przydatne - obiekty przekładają się 1:1 z obiektami w prawdziwym świecie. Ale po cholerę komu są potrzebne obiekty w kalkulatorze!?

Jeśli chcesz się uczyć programowania obiektowego na C++ (nie polecam ;/ STL == syf, użycie garbage collectora wymaga dogłębnej znajomości kilku dziedzin czarnej magii, zaś aby nie dostać zaawansowanej oczochujni podczas prób czytania nagłówków standardowej biblioteki (nieuniknione) trzeba sobie owe oczy wydłubać, najlepiej ostrym nożem, którym przedtem trzeba zarżnąć kozę), dosyć dobrą książką jest Thinking in C++ (Bruce Eckel, czy jak mu tam było), lata gdzieś z pewnością po sieci.

Gdybyś jednak chciał w programowaniu obiektowym odnaleźć trochę przyjemności, polecam Pythona, D, Javę, lub któryś z (a fe!) języków .NET, byle nie VB :P

Albo, jeśli potrzebujesz to na wczoraj, napisz w stylu strukturalnym / imperatywnym / kto-jak-tam-woli-ten-bałagan-nazywać, i podrzuć mi kod, to go spróbuję upięknić (o ile nie zapomnę).


[ /\/\/\ o_0 ----->>>       Ascii Art Userbar User ]

"steal and steal and steal some more and give it to all your friends and keep on stealin'"
- Reznor

Offline

 

#3  2008-04-06 14:00:02

  skotx - Członek DUG

skotx
Członek DUG
Skąd: Olkusz
Zarejestrowany: 2008-01-22

Re: Obiektowe c++

Zastanawiam się, czy istota, która zleciła ci to zadanie, aby na pewno wie ockrfachdzi w programowaniu obiektowym. Bo zrobienie klasy oKurdeJakaFajnaKlasa i wrzucenie do niej kilku funkcji przeliczających z czegoś na coś jest równie obiektowe jak napisanie tego samego w "czystym" lispie.

Ogólnie jest to projekt na inżynierie oprogramowania, więc w czym i jak to ma być wykonane kolesia nie obchodzi, ma to być tylko aplikacja okienkowa., bo tu chodzi bardziej o dokumentacje niż sam program. Ale też ten sam projekt mam zrobić na programowanie. Tez jako aplikacje okienkową tylko przy użyciu właśnie programowania obiektowego. Więc jeden projekt na dwa przedmioty.


Jeśli chcesz się uczyć programowania obiektowego na C++ (nie polecam ;/ STL == syf, użycie garbage collectora wymaga dogłębnej znajomości kilku dziedzin czarnej magii, zaś aby nie dostać zaawansowanej oczochujni podczas prób czytania nagłówków standardowej biblioteki (nieuniknione) trzeba sobie owe oczy wydłubać, najlepiej ostrym nożem, którym przedtem trzeba zarżnąć kozę), dosyć dobrą książką jest Thinking in C++ (Bruce Eckel, czy jak mu tam było), lata gdzieś z pewnością po sieci.

Zassałem już z neta "Thinking in C++" i zaczynam coś czytać.  Programować ogólnie nie lubię (co najwyżej w bash'u mogę coś wyskrobać), bo wolę inne dziedziny informatyki dlatego programowanie idzie mi z oporem.

Albo, jeśli potrzebujesz to na wczoraj, napisz w stylu strukturalnym / imperatywnym / kto-jak-tam-woli-ten-bałagan-nazywać, i podrzuć mi kod, to go spróbuję upięknić (o ile nie zapomnę).

Jak już mam jednak coś napisać to wolę to sam zrobić, żeby jednak czegoś się nauczyć. Jak będę miał jakiś problem to wtedy jak najbardziej napisze na forum ;) Póki co to trochę mi wyjaśniłeś na ten temat i za to ci dzięki. Właśnie teraz zastanawiam się jak robić tą konwersję :/ Jakiś dobry algorytm trzeba będzie wymyślić bo nie widzę gotowych funkcji w c++ która bo to za mnie zrobiła ehh


Jeśli mam wysłuchiwać czyichś poglądów, to niech będą one wypowiedziane w formie twierdzącej, wątpliwości sam mam dosyć.

Offline

 

#4  2008-04-06 18:46:04

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: Obiektowe c++

skotx, jesli okienkowa to tam kazdy obiekt jest obiektem (hmmm ciekawe). Inaczej mówiac wstawiajac przycisk tworzony jest obiekt. Wiec tak naprawde wszsutko bedzie obiektowo. Calosc rozbija sie raczej o stworzenie klasy na sile zeby tylko byla i dali spokój (znam to z uczelni ;] ).
Osobiscie jednak napisalbym to w javie.

harry666t, fajny tutorial nie mowiac o wymownej klasie :P. Racja, obiektowki staraja sie nauczyc na tak bzdurnych przykladach, ze trudno potam zauwazyc kiedy obiektowka jest szybsza i lepsza. Kiedys na programowaniu kazali napisac program z uzyciem klasy ktory bedzie wczytywal z podanego pliku w argumencie zawartosci i zapisywal w drugim (tez podanym w parametrze) to samo ale z maksymalna dlugoscia wiersza 80znakow :D. Coz tak ucza na studiach i beda uczyc :S

Offline

 

#5  2008-04-06 19:10:31

  skotx - Członek DUG

skotx
Członek DUG
Skąd: Olkusz
Zarejestrowany: 2008-01-22

Re: Obiektowe c++

Wiec tak naprawde wszsutko bedzie obiektowo. Calosc rozbija sie raczej o stworzenie klasy na sile zeby tylko byla i dali spokój (znam to z uczelni ;] ).
Osobiscie jednak napisalbym to w javie.

No fakt, tu masz rację. Co do javy to szkoda gadać, też tego języka nie lubię choć muszę się go nauczyć ehh Ogólnie to nie kształcę się w kierunku programisty, ale jak trzeba zrobić to trzeba i nie ma wyjścia.

Kiedys na programowaniu kazali napisac program z uzyciem klasy ktory bedzie wczytywal z podanego pliku w argumencie zawartosci i zapisywal w drugim (tez podanym w parametrze) to samo ale z maksymalna dlugoscia wiersza 80znakow :D. Coz tak ucza na studiach i beda uczyc :S

heh to ja miałem lepiej bo kolokwia z programowania pisaliśmy na kartkach hehe kompilator w głowie ;) zabawa przednia ;p Fakt, faktem że o wiele więcej teraz umie niż jakbym pisał kolokwia na kompie. Zaraz ten temat znajdzie się w dziale humor hehe

Nie znacie może jakiegoś rozwiązania jak zamieniać z binarnego na ZM, U1 i U2?? bo zakładam że z dec na ZM, U1 i U2 się nie da od razu, przynajmniej do tej pory nic nie znalazłem w necie.


Jeśli mam wysłuchiwać czyichś poglądów, to niech będą one wypowiedziane w formie twierdzącej, wątpliwości sam mam dosyć.

Offline

 

#6  2008-04-06 20:56:14

  harry666t - Członek DUG

harry666t
Członek DUG
Zarejestrowany: 2007-01-28

Re: Obiektowe c++

Coz tak ucza na studiach i beda uczyc :S

Dlatego rzuciłem studia w pieruny :D

Co do javy to szkoda gadać, też tego języka nie lubię choć muszę się go nauczyć

Java ssie, to racja, i to ssie potwornie. Ale lepsza jest niż C++, choćby ze względu na referencje zamiast wskaźników (zawsze mi się babrało, kiedy trzeba pisać gwiazdkę a kiedy nie, i z której strony zmiennej :P) oraz garbage collector (który jednak zdążyłem 400 razy przekląć pracując w netbeansie, gdy miałem sporo poniżej minimum wymaganej pamięci i bardzo wolny procek). Stwierdziłem też, wypróbowując niektóre własne pomysły (ostatnio mi się przyśniło programowanie genetyczne), że bardzo przydatne jest też superdokładne sprawdzanie typów. Ale poza tym - JAVA SSIE!

kolokwia z programowania pisaliśmy na kartkach

brzmi znajomo :)


[ /\/\/\ o_0 ----->>>       Ascii Art Userbar User ]

"steal and steal and steal some more and give it to all your friends and keep on stealin'"
- Reznor

Offline

 

#7  2008-04-06 22:36:54

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: Obiektowe c++

Chyba kazdy zna programownaie an kartce, ale do czasu jka jest to jeszcze, Pasca, C, C++, JAVA to jest spoko. Ale już taki ASM, czy kosmiczne zabawy z maszyna Turinga :D

skotx, eee no przeciez to nie ejst trudne zadanie algorytmicznie. Wiesz jak sie tworzy U1 i U2?

Offline

 

#8  2008-04-06 22:58:04

  skotx - Członek DUG

skotx
Członek DUG
Skąd: Olkusz
Zarejestrowany: 2008-01-22

Re: Obiektowe c++

Chyba kazdy zna programownaie an kartce, ale do czasu jka jest to jeszcze, Pasca, C, C++, JAVA to jest spoko. Ale już taki ASM, czy kosmiczne zabawy z maszyna Turinga :D

WSTI czy inna chora uczelnia?? :D

skotx, eee no przeciez to nie ejst trudne zadanie algorytmicznie. Wiesz jak sie tworzy U1 i U2?

Uczyłem się tego 1,5 roku temu, ale po 3 poprawkach z TPI to już takie rzeczy mam w 1 palcu heheh Tylko jak ja coś pisze, to lubię sobie życie utrudnić i robię to jakimś dziwnym sposobem wszystko. Szukam jakiegoś dobrego i prostego rozwiązania, żebym znowu nie musiał zmieniać wszystkiego na tydzień przed oddaniem jak na wcześniejszym projekcie (zmieniałem z tablic dynamicznych na vector'y). Dlatego wolę teraz 3 razy się zastanowić zanim zacznę pisać program.


Jeśli mam wysłuchiwać czyichś poglądów, to niech będą one wypowiedziane w formie twierdzącej, wątpliwości sam mam dosyć.

Offline

 

#9  2008-04-06 23:18:15

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: Obiektowe c++

Vectory dobra rzecz a praca na iteratorach hmmm tablice Ci tego nie da ;]

Wiec tak np. na U2 najlatwiej jest to zrobic tak (na przykladzie):
1) mamy liczbe -5 (10)
2) zamieniamy na binarke 0101 (2)
3) tworzymy liczbe w uzuplenieniu do jedene (U1)
not 0101 => 1010 (U1) {co odpowiada liczbie -5 (10); mowi o tym najstarszy bit równy jeden}
4) przechodzimy z U1 do U2
1010 + 1 = 1011 {no i mamy liczbę -5 (10) w U2 }

Pamietaj że te ML, U1 i U2 stosuje sie do zapisania tylko i wylacznie liczba <0.

Offline

 

#10  2008-04-06 23:26:26

  skotx - Członek DUG

skotx
Członek DUG
Skąd: Olkusz
Zarejestrowany: 2008-01-22

Re: Obiektowe c++

Ogólnie to mam o tym pojęcie tylko gorzej będzie z napisaniem efektywnego kodu w c++. To jest łatwe tylko jak przychodzi czas na napisanie kodu to wtedy już takie proste nie jest.
Jutro nad tym posiedzę i pewnie wymyśle coś sensownego.W sumie to trochę czasu na zrobienie tego jeszcze mam ;)
Póki co to na razie dzięki za zainteresowanie. Trzeba iść spać bo jutro znowu do roboty :/


Jeśli mam wysłuchiwać czyichś poglądów, to niech będą one wypowiedziane w formie twierdzącej, wątpliwości sam mam dosyć.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)