GRY-Online.pl --> Archiwum Forum

Poradniki www/książki dla totalnego lame-beginnera C++ :)

12.04.2002
15:54
smile
[1]

Riven [ infamousbutcher ]

Poradniki www/książki dla totalnego lame-beginnera C++ :)

Ostatnio napaliłem się na programowanie w C++ (na początek w dosie), niestety jestem absolutnie zielony jeśli chodzi o kodowanie w jakimkolwiek języku ;), poszukuję więc jakiś dobrych poradników (najlepiej za darmo, on line ;) lub tytułów literackich dla takiego zielska jak ja ;). Możecie coś polecić?

Rv

12.04.2002
15:57
smile
[2]

tygrysek [ behemot ]

Ja ponowię pytanie jak Riven, ale tematem jest C. Jaki jest najlepszy, a jaki najtańszy kompiltor pod Windows'em ??? AvE

12.04.2002
15:58
smile
[3]

Peleque [ Generaďż˝ ]

Darmo to to nie bedzie ale na pewno warto "Symfonia C++" Grębosza

12.04.2002
15:59
[4]

Fudoshin [ Generaďż˝ ]

Ansi c++ Bieleckiego c++ w 24 godziny Ale bardzo duzo osob poleca wlasnie Symfonie (po czym mozna wnioskowac, ze jest to najlepsza tego typu ksiazka) :)

12.04.2002
16:08
[5]

JackSmith [ ]

Tygrysek - najlepszy ( bo bardzo bardzo podobny do Microsoft Visual C jest całkowicie za FREE - LCC-WIN 32 ( wpisz w googlach a dostaniesz link do strony bo teraz nie pamiętam ) To jest kompletne środowisko z super kompilatorem, które po odpowiednim ustawieniu opcji potrafi 7 KB kod źródłowy zamienić na 6 KB execa !!! ) - na przykład poniższy kod w "czystym C" oraz native API [cut] ************************* #include <windows.h> #define ID_SMALLER 1 #define ID_LARGER 2 #define BTN_WIDTH (8 * cxChar) #define BTN_HEIGHT (4 * cyChar) LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; HINSTANCE hInst ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) ‹ static TCHAR szAppName[] = TEXT ("OwnDraw") ; MSG msg ; HWND hwnd ; WNDCLASS wndclass ; hInst = hInstance ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = szAppName ; wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass)) ‹ MessageBox (NULL, TEXT ("This program requires Windows NT!"), szAppName, MB_ICONERROR) ; return 0 ; › hwnd = CreateWindow (szAppName, TEXT ("Owner-Draw Button Demo"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL) ; ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; while (GetMessage (&msg, NULL, 0, 0)) ‹ TranslateMessage (&msg) ; DispatchMessage (&msg) ; › return msg.wParam ; › void Triangle (HDC hdc, POINT pt[]) ‹ SelectObject (hdc, GetStockObject (BLACK_BRUSH)) ; Polygon (hdc, pt, 3) ; SelectObject (hdc, GetStockObject (WHITE_BRUSH)) ; › LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ‹ static HWND hwndSmaller, hwndLarger ; static int cxClient, cyClient, cxChar, cyChar ; int cx, cy ; LPDRAWITEMSTRUCT pdis ; POINT pt[3] ; RECT rc ; switch (message) ‹ case WM_CREATE : cxChar = LOWORD (GetDialogBaseUnits ()) ; cyChar = HIWORD (GetDialogBaseUnits ()) ; // Create the owner-draw pushbuttons hwndSmaller = CreateWindow (TEXT ("button"), TEXT (""), WS_CHILD | WS_VISIBLE | BS_OWNERDRAW, 0, 0, BTN_WIDTH, BTN_HEIGHT, hwnd, (HMENU) ID_SMALLER, hInst, NULL) ; hwndLarger = CreateWindow (TEXT ("button"), TEXT (""), WS_CHILD | WS_VISIBLE | BS_OWNERDRAW, 0, 0, BTN_WIDTH, BTN_HEIGHT, hwnd, (HMENU) ID_LARGER, hInst, NULL) ; return 0 ; case WM_SIZE : cxClient = LOWORD (lParam) ; cyClient = HIWORD (lParam) ; // Move the buttons to the new center MoveWindow (hwndSmaller, cxClient / 2 - 3 * BTN_WIDTH / 2, cyClient / 2 - BTN_HEIGHT / 2, BTN_WIDTH, BTN_HEIGHT, TRUE) ; MoveWindow (hwndLarger, cxClient / 2 + BTN_WIDTH / 2, cyClient / 2 - BTN_HEIGHT / 2, BTN_WIDTH, BTN_HEIGHT, TRUE) ; return 0 ; case WM_COMMAND : GetWindowRect (hwnd, &rc) ; // Make the window 10% smaller or larger switch (wParam) ‹ case ID_SMALLER : rc.left += cxClient / 20 ; rc.right -= cxClient / 20 ; rc.top += cyClient / 20 ; rc.bottom -= cyClient / 20 ; break ; case ID_LARGER : rc.left -= cxClient / 20 ; rc.right += cxClient / 20 ; rc.top -= cyClient / 20 ; rc.bottom += cyClient / 20 ; break ; › MoveWindow (hwnd, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, TRUE) ; return 0 ; case WM_DRAWITEM : pdis = (LPDRAWITEMSTRUCT) lParam ; // Fill area with white and frame it black FillRect (pdis->hDC, &pdis->rcItem, (HBRUSH) GetStockObject (WHITE_BRUSH)) ; FrameRect (pdis->hDC, &pdis->rcItem, (HBRUSH) GetStockObject (BLACK_BRUSH)) ; // Draw inward and outward black triangles cx = pdis->rcItem.right - pdis->rcItem.left ; cy = pdis->rcItem.bottom - pdis->rcItem.top ; switch (pdis->CtlID) ‹ case ID_SMALLER : pt[0].x = 3 * cx / 8 ; pt[0].y = 1 * cy / 8 ; pt[1].x = 5 * cx / 8 ; pt[1].y = 1 * cy / 8 ; pt[2].x = 4 * cx / 8 ; pt[2].y = 3 * cy / 8 ; Triangle (pdis->hDC, pt) ; pt[0].x = 7 * cx / 8 ; pt[0].y = 3 * cy / 8 ; pt[1].x = 7 * cx / 8 ; pt[1].y = 5 * cy / 8 ; pt[2].x = 5 * cx / 8 ; pt[2].y = 4 * cy / 8 ; Triangle (pdis->hDC, pt) ; pt[0].x = 5 * cx / 8 ; pt[0].y = 7 * cy / 8 ; pt[1].x = 3 * cx / 8 ; pt[1].y = 7 * cy / 8 ; pt[2].x = 4 * cx / 8 ; pt[2].y = 5 * cy / 8 ; Triangle (pdis->hDC, pt) ; pt[0].x = 1 * cx / 8 ; pt[0].y = 5 * cy / 8 ; pt[1].x = 1 * cx / 8 ; pt[1].y = 3 * cy / 8 ; pt[2].x = 3 * cx / 8 ; pt[2].y = 4 * cy / 8 ; Triangle (pdis->hDC, pt) ; break ; case ID_LARGER : pt[0].x = 5 * cx / 8 ; pt[0].y = 3 * cy / 8 ; pt[1].x = 3 * cx / 8 ; pt[1].y = 3 * cy / 8 ; pt[2].x = 4 * cx / 8 ; pt[2].y = 1 * cy / 8 ; Triangle (pdis->hDC, pt) ; pt[0].x = 5 * cx / 8 ; pt[0].y = 5 * cy / 8 ; pt[1].x = 5 * cx / 8 ; pt[1].y = 3 * cy / 8 ; pt[2].x = 7 * cx / 8 ; pt[2].y = 4 * cy / 8 ; Triangle (pdis->hDC, pt) ; pt[0].x = 3 * cx / 8 ; pt[0].y = 5 * cy / 8 ; pt[1].x = 5 * cx / 8 ; pt[1].y = 5 * cy / 8 ; pt[2].x = 4 * cx / 8 ; pt[2].y = 7 * cy / 8 ; Triangle (pdis->hDC, pt) ; pt[0].x = 3 * cx / 8 ; pt[0].y = 3 * cy / 8 ; pt[1].x = 3 * cx / 8 ; pt[1].y = 5 * cy / 8 ; pt[2].x = 1 * cx / 8 ; pt[2].y = 4 * cy / 8 ; Triangle (pdis->hDC, pt) ; break ; › // Invert the rectangle if the button is selected if (pdis->itemState & ODS_SELECTED) InvertRect (pdis->hDC, &pdis->rcItem) ; // Draw a focus rectangle if the button has the focus if (pdis->itemState & ODS_FOCUS) ‹ pdis->rcItem.left += cx / 16 ; pdis->rcItem.top += cy / 16 ; pdis->rcItem.right -= cx / 16 ; pdis->rcItem.bottom -= cy / 16 ; DrawFocusRect (pdis->hDC, &pdis->rcItem) ; › return 0 ; case WM_DESTROY : PostQuitMessage (0) ; return 0 ; › return DefWindowProc (hwnd, message, wParam, lParam) ; › [cut] *********************

12.04.2002
16:10
smile
[6]

tygrysek [ behemot ]

JackSmith --> kłaniam się nisko :-) AvE

12.04.2002
16:15
[7]

JackSmith [ ]

eeeee - to nie moje źródełko - to jest jeden z przykładów książki Petzolda - Programowanie w windows. Tłumaczenie wydał RM chyba, co prawda za prawie 150 PLN - osobiście uważam za najlepszą książke o programowaniu Windowsów - widziałem też gdzieś w sieci skan wersji anglojęzycznej. Natomiast jako podręcznik podstaw C to mogę polecić tytuł ANSI C - to podstawa :-))

12.04.2002
16:23
[8]

Joanna [ Kerowyn ]

Fudoshin ---> Bieleckiego???? Chyba gorszego autora nie ma (no może się zmienił od czasu dwumlasku myszy :) ). Jesli chodzi o język C to obowiązkową lekturą chociaż nie związaną z żadną implementacją tego języka jest: Dennis M. Ritchie (twórca języka C) i Brian W. Kernigham "Język C"

12.04.2002
16:33
[9]

JackSmith [ ]

Asiu - o tym właśnie pisałem, tylko że teraz to się nazywa Autor - Kernighan Brian W., Ritchie Dennis M. Tytuł - Język ANSI C do tego jeszcze warto dokupić z tego samego wydawnictwa: Autor - Drozdek Adam, Simon Donald L. Tytuł - Struktury danych w języku C i wcześniej wspomnianego Petzolda, jeżeli się chce pisać pod Windowsy :-))

12.04.2002
16:35
[10]

JackSmith [ ]

A do C++ to chyba podręcznik autora C++ Autor - Stroustrup Bjarne Tytuł - Język C++

12.04.2002
16:36
[11]

Riven [ infamousbutcher ]

Thx! Napewno kupie ktorys z proponowanych przez Was tytulow, czy jednak znacie moze jakies dobre kursy on-line? Pozdro, Rv

12.04.2002
16:36
[12]

dudek101 [ Konsul ]

ksiazki bieleckiego najlepiej sobie odpuscic, jedyny sens korzystania z nich byl wtedy gdy mialo sie z nim zajecia :) na poczatek ansi c - nie ma nic lepszego za free mozna chyba sciagnac starsze wersje kompilatorow (bez srodowiska) ze stron borlanda, troche trzeba pogrzebac na stronie i pozniej o ile dobrze pamietam trzeba cos jeszcze zalatwic mailem, dokladnie nie pamietam - to bylo ze 2 lata temu

12.04.2002
16:47
[13]

Fudoshin [ Generaďż˝ ]

Hmm do nauki faktycznie nie jest idealna :) ale troche mi pomogla w zrozumieniu tematu :)

12.04.2002
17:01
[14]

Joanna [ Kerowyn ]

Fudoshin ---> Bielecki był znany z tego, ze na chama kopiował oryginalne podręczniki do programów. Potrafił wydac kilkanaście róznych książek w roku. Oczywiście często nie rozumiał tego co pisał, a na dokładkę stosował własną nomenklaturę. Czasami kupowałam jego wypociny poprostu dla tego, że podręczniki oryginalne były niedostępne. Jednak o ile się przydawały to tylko jako żródło opisów funkcji itp. Natomiast warto było kupić produkty Borlanda - do wersji profesional dołączali (i pewnie nadal tak robią) masę (dobrych! w odróżnieniu od MS) podręczników.

12.04.2002
17:09
[15]

JackSmith [ ]

szukając kursów w necie - wpisz poprostu w googlach p"programowanie", kurs C++ ( nie wiem czy najlepszy - ponieważ preferuję C ) masz pod wskazanym linkiem powodzenia w nauce

12.04.2002
17:45
[16]

Riven [ infamousbutcher ]

JackSmith --> thx! Wlanie zaczynam lekture podanej przez Ciebie strony, wydaje sie interesujaca... Pozdro, Rv

12.04.2002
17:47
[17]

harakiri [ Konsul ]

Jesli masz jakies podstawy, szukaj Kernighan, Ritchie, "The C programming Language", na 100% jest gdzies w sieci w wersji HTML. To jest oryginal wspomnianego wczesniej "Jezyk Ansi C", tak wiec nie kupuj, tylko poszukaj w sieci. Jesli zaczynasz od zera, polecam lekture Algorytmy+struktury danych = progarmy (Algorithms + Data Structures = Programs) Wirtha. Co prawda ksiazka dotyczy Pascala, ale jest dobrym wprowadzeniem do programowania. Nie kupuj za to tych wszystkich C w 15 minut, C dla debili itp., bo to tylko strata pieniedzy i ksiaki o kant dupy potluc. Moze oswoja cie z jezykem, ale na pewno nie sa wprowadzeniem do programowania.

12.04.2002
17:51
[18]

harakiri [ Konsul ]

A, i jeszcze mocno wskazany dobry podrecznik do matematyki;)

12.04.2002
18:35
[19]

MOD [ Generaďż˝ ]

Oczywiscie Symfonia C++ Nie wiem czy gdzies jest lepsza ksiazka o programowaniu obiektowym. Kompilator Dev C++ Fajna stronka: (kursy & linki do kompilatorow)

12.04.2002
18:50
[20]

Kubol [ Pretorianin ]

harakiri --> Algorytmy i struktury danych ... - jeśli znasz Pascala, ( co więcej jeśli go lubisz ) to może być, jeśli nie spełniasz jednego z tych warunków, to książka jest szitem ( to nie tylko moje zdanie). Ansi C i książka Keringhama to nie całkiem to samo ( zależy to od daty wydania - starsze wersje Keringhama zawieraję pewne archaiczne konstrukcje, których współczesne kompilatory raczej nie przełykają. Dobra jest Symfonia c++ ( ale niektórych moich znajomych wku.... specyficzny chumor autora )

12.04.2002
19:06
[21]

Regis [ ]

Absolutnie najbardziej polecam Symfonie c++

12.04.2002
19:20
smile
[22]

tymczasowy13968 [ Junior ]

idź do księgarni kup sobie książkę programowania w C++ Helionu kumpel tak zrobił i znudziło mu się programowanie

06.05.2002
21:23
smile
[23]

NoFuck [ Centurion ]

jak ksiazka zwiazana z programowaniem to tylko heliona i najlepiej zacznij od mniej wyrafinowanych pozycji, zeby cie nie zniechecili, bo jak pojdziesz na szeroka wode, to mozesz niewyplynac pozdrowionka :)

© 2000-2024 GRY-OnLine S.A.