Skocz do zawartości

Aberration

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Aberration's Achievements

Newbie

Newbie (1/14)

0

Reputacja

  1. Mgła za pomocą windows.h - nóż w kieszeni się otwiera!!! Bo przypuśćmy, że udało ci się to zrobić (bo to nie jest aż takie trudne) ale co dalej, gdzie tekstury, światła, obroty, translację, animacje itd. Trochę się rozpędziełem, choć tak naprawdę nie wiem, co chcesz zrobić. Twój projekt jest statyczny i jeśli taki ma być to najłatwiej było by otworzyć 3DS Maxa, narysuj to sobie, zapisz do JPEG'a i wio. Jeśli jednak scena ma być dynamiczna, to nawet gdybyś przebrnął przez to całe kodowanie to i tak całość była by .... wolna. Dlatego weź sobie poczytaj o OpenGL'u (łatwiejszy) lub DirectX. OpenGL nie jest trudny, wystarczy znaleźć szkielet, a resztę sobie łatwo wpiszesz.
  2. Dozer napisał: Kodu nie chcę, bo doszedłem do wniosku, że to bardzo łatwe zadanie było i tak się w kurzyłem, bo byłem blisko. Dozer napisał: Patrząc po dacie postu to chyba chciałeś powiedzieć wysłałem, bo było do 22.11.04. Nicon napisał: Czego pierwszy rok??? Nicon napisał: Zazwyczaj są testy poprawnościowe i wydolnościowe. Na stronie olimpiady możesz sobie ściągnąć kilka testów, w tym dla każdego zadania jest jeden duży. Ja np. w samochodzikach robiąc duży test miałem ponad 800 sekund. Po użyciu drzew czerwono-czarnych robił to w sekundę. Co do forum, dlaczego by nie, ale coś mi się wydaję, że ktoś by na nie wchodził parę dni przed olimpiadą, parę po i tyle. Ja zrobiłem ska, sam i sko. Nad bankomatami myślałem nawet długo, ale próbowałem inną metodę niż bruteforce (gdzieś nie mam przekonania do takich metod). Próbowałem programowania dynamicznego i takich innych, ale nie wyszło. Gdyby nie to, że zadania pisałem na ostatnią chwilę (o 3:30 w poniedziałek 22.11.04 poszedłem spać, a w ten sam dzień miałem próbną maturę z polaka) to może bym coś sklecił. Ale cóż... zostaje mi tylko nadzieja, że próg nie będzie aż taki wysoki i sie jakoś załapie a dalej się poduczę:). A co do poduczenia, macie może jakieś ebooki z algorytmiki (struktury danych, algorytmy itd)???
  3. Nad bankomatami myślałem i nic nie wymyślałem:), bo zadania z olimpiady nie są łatwe. Ale zato zrobiłem trzy inne zadania.
  4. Aberration

    ASCII i liczby....

    char c[2]; c[0] = 112; // c[0] = (char)znak c[1] = 0; SetWindowText(edit, c);
  5. Aberration

    Operatory

    A jak inaczej chcesz to zrobić, aby funkcja ta znajdywała się w klasie i nie była zaprzyjaźniona?
  6. Dlaczego uważasz, że na maturze z infy będzie coś z grafiki? Na maturze będą podstawowe algorytmy (sortowanie, horner i.t.p.). Wątpie w to, by jakiekolwiek zadanie z programowania było z grafiki, bo co to by miało być? Narysować okrąg czy co? PS. Też mam zamiar zdawać z infy
  7. Aberration

    Operatory

    jeśli się nie mylę to musisz zmienić błędną linijkę na: friend CVector operator*( float r, CVector& a )
  8. Aberration

    Kompresja

    ZLIB używa (o ile się nie mylę) deflacji, która też jest używana np. w ZIPach i w plikach PNG. Można poniej poczytać na RFC1950-1952. A jeśli chcesz nie znany format, to poprostu koduj dane przed kompresją, lub przed zapisem skompresowanych danych.
  9. Ad1. LOGFONT info; HFONT yourfont; GetObject(yourfont,sizeof(info),&info); DestroyObject(yourfont); info.twój_parametr_co_chcesz_zmieńć = jego_nowa_wartość; yourfont = CreateFontIndirect(&info);
  10. 4.123 "śmieci" ma, ale 4.125 już nie. Jak już wspomniałem chodzi tu o binarne rozwinięcia tych liczb: 4.125 jest skończone, 4,123 nie. Jak chcesz, to sprawdź 4.125 w swoim programie.
  11. Bawiąc się trochę protokołami nie spotkałem się z protokołem który używa więcej niż jednego portu (np: http - 80, ftp - 21). Jeżeli jednak znasz prawidłowy port to za pomocą winsock napisz sobie serwer czatujący na tym porcie i zobacz jakie dane dostajesz. Po za tym wiel informacji na temat standardowych protokołów znajdziesz na RFC.
  12. Aberration

    UserKontrol?

    Marcin came back!!! Po pierwsze to sorry, że tak długo nie odpisywałem, ale nie mam stałego łącza, a ostatnio nawet przez phone mi co trochę rozłączało. Ale mam dla cierpliwych rozwiązanie. Po drugie to moje pierwsze wersja (ta z SetCapture) była zła. Dział ona poza obszarem okna tylko wtedy, gdy jakiś przycisk mysz jest pressed. A po za tym WM_NCMOUSEMOVE nie ma nic to rzeczy/ A po trzecie: TRACKMOUSEEVENT tme; case WM_MOUSEMOVE: if(firsttime){ firsttime = false; GetClientRect(okno,&rect); tme.cbSize = sizeof(tme); tme.dwFlags = TME_LEAVE; tme.dwHoverTime = 0; tme.hwndTrack = okno; TrackMouseEvent(&tme); InvalidateRect(okno,0,0); } return 0; case WM_MOUSELEAVE: firsttime = false; InvalidateRect(okno,0,0); return 0; Zmienna firsttime oznacza, czy najście na mysz jest po raz pierwszy. (Od niej zależy też wygląd buttona). Ważne jest także nowe dodane przezemnie rzeczy:WM_MOUSELEAVE i TrackMouseEvent(). TrackMouseEvent() jest odpowiedzialna za sprawdzanie (przy podanych parametrach) czy myszka opuściła obszar kontrolki i jeśli tak to wysyła do niej WM_MOUSELEAVE. Parametrem jest wskaźnik do struktury TRACKMOUSEEVENT: typedef struct tagTRACKMOUSEEVENT { DWORD cbSize; DWORD dwFlags; HWND hwndTrack; DWORD dwHoverTime; } TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT; cbSize - chyba wiadomo; dwFlags: #define TME_HOVER 0x00000001 - czuwanie czy mysz nie wchodzi na obszar okna #define TME_LEAVE 0x00000002 - czuwanie czy mysz nie opuściła #define TME_QUERY 0x40000000 - nie pamiętam #define TME_CANCEL 0x80000000 - anulowanie czuwania hwndTrack - okno dwHoverTime - czas czuwania jeśli TME_HOVER jest ustawiony I po czwarte: Już pewnie wpisujecie kod i do dzieła (tak też zrobiłem jak odnalazłem tą funkcję), a VC na to, że: undefinded symbol: TrackMouseEvent() I wogóle nie zna anie TME_LEAVE, anie WM_MOUSELEAVE czy struktury TRACKMOUSEEVENT Znajdują się one w jakimś nagłówku stansardowym, ale jakieś dafinicje nie pozwalają im się kompilować??? Dlatego podałem w poście wszystkie ważne definicje i stałe #ifndef WM_MOUSELEAVE #define WM_MOUSELEAVE 0x02A3 #endif , które musicie dołączyć. Build......... No i errorów mniej, bo undefinded przechodzi w unreferenced TrackMouseEvent: znalezioną przez siebie definicję funkcji WINUSERAPI BOOL WINAPI TrackMouseEvent( LPTRACKMOUSEEVENT lpEventTrack); musiałem poprzedzić extern "C" i wszystko gra.
  13. Aberration

    Pytanie o Display

    clever najwyraźniej miał trudne dni, wybaczcie mu. A jeśli chodzi o to, że raz działa a raz nie, to błąd jest na pewno. Czasem się zdarza taka jakby losowa sprawność programu, ponieważ wiele błędów zależy od różnych czynników. Dość często zdarza się, że poprzez drobny błąd w programie nadpisują się inne zmienne, stos lub nawet kod programu. W zależności od tego co się uszkodziło, różne czynniki mogą spowodować błąd. A tych nie zawsze jesteśmy w stanie odtworzyć.
  14. Deklarując zmienną jako unsigned dajesz kompilatorowi do zrozumienia jakich operacji ma używać (np. przy porównywaniu lub przy mnożeniu). Np: int i = -1; //hex = 0xffffffff unsigned int j = -1; //hex = 0xffffffff Jak widać nie ma różnicy pomiędzy binarnymi rozwinięciami tych liczb, a funkcja printf domyślnie uważa, że %d oznacza signed int. Ale jest chyba jakiś format dla unsigned, poszukaj w helpie.
  15. Funkcja atoi() w większości przypadków jest dobrym rozwiązaniem, ale nie zawsze. Jeśli np. ktoś wpisze 123napis to funkcja zwróci 123. Jeśli jako parametr poda się tekst, to zwróci on 0. A co jeśli ktoś rzeczywiście wpisze 0. Najlepszym sposobem będzie czytanie bajt po bajcie. bool myatoi(const char *str,int *var) { char d; int pos = 0; *var = 0; while(true) { d = str[pos++]; if((d>='0')&&(d<='9')) { (*var)*=10; (*var)+=d-'0'; } else if(!d)return true; else return false; } } Funkcja zwraca true tylko wtedy, gdy wszystkie znaki w str to cyfry. Opcjonalnie można dodać sprawdzanie znaku liczby lub wprowadzić inne systemy liczbowe(2,8,16).
×
×
  • Utwórz nowe...