Autor Wątek: Kilka spraw....  (Przeczytany 9163 razy)

beginner

  • Gość
# Luty 24, 2006, 17:49:58
Vitam all uzytkownikow, mam kilkia pytan do bardziej doswiadczonych.
1. Slyszalem ze jezyk c++ caly czas ewoluuje i niektore funkcje, slowa kluczowe itd wychodza z uzytku. Do nauki programowania kupilem sobie Symfonie c++ ale wiem, ze nie jest to ksiazka nowa i obawiam sie, ze moge nauczyc  sie z niej troche przestarzalych metod programowania. Zauwazylem np ze w symfonii zeby wypisac text uzywa sie  cout a gdzies w necie widzialem printf. Drugi przyklad to instrukcja goto uzywana przez autora w ksiazce a na forum przeczytalem ze jest juz nieuzywana.

2. Chcialem nauczyc sie programowania 3d ale nie wiem co wybrac: directx czy opengl? Co jest lepsze i jakie sa dobre ksiazki o tym? Chodzi mi o w miare nowe lektory bo po co  mi np directx 7?

3. Co wg Was jest najtrudniejsze: grafika, fizyka AI czy moze cos innego? Za co sie najpierw wziac?

Z gory dzieki,  pozdro.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

beginner

  • Gość
# Luty 24, 2006, 18:04:09
C++ nie ewoluuje :) Jest standard i tyle. Nie które funkcje pewnie przestaje sie używać, ale funkcje nie są cześcią jezyka, tylko jakichś tam bibliotek które ktoś sobie pisze.
Cout jest częscią standardu c++, a printf C, co nie znaczy że nie można go używać w C++. Ważne jest tylko to aby korzystać albo z tego alob z tego. Raczej nie mieszać ;)
Goto pochodzi raczej z czasów basica, i są inne dużo lepsze instrukcje powodujące skoki, dlatego sie z tego nie korzysta.
2. Narazie Naucz sie języka :)
3. Patrz 2 :)

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Luty 24, 2006, 18:10:50
AD2: Tego pytania nie powinieneś zadać. Innym radzę na nie nie odpowiadać, bo temat zostanie zamknięty. Patrz Regulamin (link u góry po prawej).

AD3: Najpierw nauczyć się dobrze języka programowania. Potem jakiś potrzebnych bibliotek, głównie jakiejś biblioteki graficznej (możesz jakieś prostej 2D typu SDL, Allegro czy stary DirectDraw albo od razu porządnej, jak DirectX czy OpenGL). Potem dalej się uczyć, jakoś samo wyjdzie w praniu co jest akurat potrzebne. Na pewno przyda się znajomość programowania obiektowego, trochę matematyki. Trudno to jasno zdefiniować, co po kolei, co jest trudniejsze i czego się trzeba uczyć.

AD1: Przede wszystkim te wszystkie teorie na temat tego co jest przestarzałe a co zalecane są trochę na wyrost i tylko niektórzy fanatycznie się tego trzymają. Wszystko co jest do dyspozycji i co działa może być OK :)

Wchodząc w szczegóły:
- instrukcja skoku goto jest niezalecana bo zaciemnia kod. Przydaje się w sporadycznych przypadkach (jakieś pokręcone sterowanie przepływem sterowania w funkcji która robi dużo różnych rzeczy i musi reagować na błędy albo, co bywa częściej, wyskoczenie z kilku pętli na raz), poza tym nie należy jej stosować, zwłaszcza tam gdzie sprawę załatwia zwykła pętla
- strumienie, czyli cin/cout są zalecane w C++, a funkcje z rodziny printf/scanf to pozostałość z C i są niezalecane

Poza tym co do Symfonii, to moim zdaniem świetna książką, a jeśli chodzi o różnice o które pytasz to:
- Grębosz używa tam napisów typu char*, w C++ do dyspozycji są dużo wygodnejsze, bezpieczniejsze i ogólnie fajniejsze napisy typu std::string z biblioteki standardowej
- O ile dobrze pamiętam Symfonia pomija temat przestrzeni nazw (namespace), Warto doczytać, bo to taki drobny szczegół który się przydaje.
- Grębosz niestety całkowicie pomija temat biblioteki standardowej, w tym głównie kontenerów (czyli vector, list, map itp.), a to bardzo ważne i użyteczne. Też warto o tym doczytać.

Tak jest przynajmniej w starym wydaniu które ja czytałem, bo teraz jest nowe.

Offline SauRooN

  • Użytkownik

# Luty 24, 2006, 19:18:15
Antrykot: kto Ci powiedział, że C++ nie ewoluuje? Średnio co 2 miesiące czytam nowe dokumenty komisji standaryzacyjnej C++.

beginner

  • Gość
# Luty 24, 2006, 20:28:09
Antrykot: kto Ci powiedział, że C++ nie ewoluuje? Średnio co 2 miesiące czytam nowe dokumenty komisji standaryzacyjnej C++.

Tylko co sie tam tak naprawde zmienia ? Podejrzewam że kosmetyka. (Moge sie mylić :) )

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Luty 24, 2006, 21:11:16
Cytuj
Cout jest częscią standardu c++, a printf C, co nie znaczy że nie można go używać w C++. Ważne jest tylko to aby korzystać albo z tego alob z tego. Raczej nie mieszać
printf jest także częścią standardu C++ - albo poprzez nagłówek <stdio.h>, który jest żywcem przeniesiony z C, ale jest obecnie "deprecated", albo poprzez nagłówek <cstdio>, który jest typowo C++ (printf znajduje się w nim w namespace std, a std::printf to już na pewno nie C). :)

Cytuj
- strumienie, czyli cin/cout są zalecane w C++, a funkcje z rodziny printf/scanf to pozostałość z C i są niezalecane
Niezalecane jest uzywanie <stdio.h>, najprawdopodobniej z powodu, że "śmieci" w globalnym namespace. Nie spotkałem się z oficjalnym stwierdzeniem tego samego o <cstdio>.

Cytuj
- Grębosz używa tam napisów typu char*, w C++ do dyspozycji są dużo wygodnejsze, bezpieczniejsze i ogólnie fajniejsze napisy typu std::string z biblioteki standardowej
Dużo wygodniejsze, ale nieco wolniejsze, więc w niekiedy char* jest znacznie lepszy. Poza tym, znajomość obu tych sposobów to absolutna podstawa w C++.

beginner

  • Gość
# Luty 24, 2006, 22:52:30
A i jeszcze jedno, jak chce zaprogramowac np srodowisko 3d to w jakim programie? Uzywam dev-c++ i nie wiem czy ma on takie mozliwosci. Czy ciezko mi bedzie sie przesiasc z aplikacji konsolowych na windowsowe z Borlada??

Offline artpoz

  • Użytkownik
    • blog o tworzeniu gier

# Luty 24, 2006, 23:08:56
A i jeszcze jedno, jak chce zaprogramowac np srodowisko 3d to w jakim programie? Uzywam dev-c++ i nie wiem czy ma on takie mozliwosci.
Ma.

Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Luty 25, 2006, 09:34:52
A i jeszcze jedno, jak chce zaprogramowac np srodowisko 3d to w jakim programie? Uzywam dev-c++ i nie wiem czy ma on takie mozliwosci.

Dev-C++ to środowisko programistyczne - można w nim zrobić WSZYSTKO, choćby i własny system operacyjny. W każdym środowisku z prawdziwego zdarzenia można zrobić wszystko, tylko nie zawsze można to zrobić szybko i wygodnie, ale to już inna sprawa :). Nie jest to żadna aluzja, Dev-a początkującym szczerze polecam.

Cytuj
Czy ciezko mi bedzie sie przesiasc z aplikacji konsolowych na windowsowe z Borlada??

Ogólnie napisanie pierwszej aplikacji pod okienka (mam na myśli programik otwierający puste okno) przy użyciu samego WinAPI jest nawet cholernie trudne dla kogoś, kto tego nigdy nie robił. Nawet jeśli wcześniej tworzyło się takie aplikacje w "wizualnych" środowiskach Microsoftu czy Borlanda. Ale zawsze można sobie wygenerować  gotowy szablon takiej prostej aplikacji w Dev-ie, a szczegóły próbować zrozumieć później.


Offline mr666

  • Użytkownik

# Luty 25, 2006, 12:39:55
Witam!

Chcialbym zazanczyc, ze ostatnio na necie spotkalem sie z informacja, ze pan Grebosz, wydal nowa ksiazke pt. "Symfonia C++ Standard", w ktorej uwzglednil nowy standard, jest tam tez opisana biblioteka STL, jak korzystac z typow string etc.. Spis tresci na stronie autora ksiazki, aby ja znalezdz wystarzczy wpisac jego nazwisko do googli.

// edit: aby nikt nie musial szukac :-P http://www.ifj.edu.pl/~grebosz/

pzdr
« Ostatnia zmiana: Luty 25, 2006, 13:30:00 wysłana przez mr666 »

beginner

  • Gość
# Luty 25, 2006, 14:18:52
Dzieki za odpowiedzi ale mam jeszcze jeden problem. Program kompiluje mi sie w dev'ie prawidlowo wiec wiem ze kod jest ok. Chcialbym zaczac pisac w borlandzie (tez aplikacje konsolowe) zeby byc juz obcykany z programem. Niestety kompilujac ten sam kod wywala mi rozne bledy :(  Wybieram NEW - OTHER - CONSOLE WIZARD - C++.

Offline mr666

  • Użytkownik

# Luty 25, 2006, 14:49:23
Witam!

Dzieki za odpowiedzi ale mam jeszcze jeden problem. Program kompiluje mi sie w dev'ie prawidlowo wiec wiem ze kod jest ok. Chcialbym zaczac pisac w borlandzie (tez aplikacje konsolowe) zeby byc juz obcykany z programem. Niestety kompilujac ten sam kod wywala mi rozne bledy :(  Wybieram NEW - OTHER - CONSOLE WIZARD - C++.

Jak bys napisal jakie bledy, to by pomoglo w rozwiazaniu Twojego problemu (a zazanczyles 'Console Application'?)

pzdr

beginner

  • Gość
# Marzec 01, 2006, 16:56:03
Moze zapytam inaczej: ktora opcje wybrac w borland'zie 6, zeby pisac aplikacje konsolowe? Z gory thx!

Offline Majtek

  • Użytkownik

# Marzec 01, 2006, 17:28:27
File->new->other->Console Wizard
Możesz odznaczyć  -> Use VCL

Masz chyba wielkie braki jeżeli takiej prostej nie umisz
« Ostatnia zmiana: Marzec 01, 2006, 17:30:57 wysłana przez Majtek »

beginner

  • Gość
# Marzec 01, 2006, 18:48:16
Tak robilem, zobacz 2 posty wyzej ale wtedy w poprawnym kodzie wywala mi bledy :(