
Polar
Stały użytkownik-
Postów
1924 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
4
Treść opublikowana przez Polar
-
W sumie to co podałem wcześniej powinno być tak : #include <ctime>//...void delay(int ile){ clock_t start ,end; start = clock(); while(1) { end = clock(); if (end - start >= ile) break; }} Czas podajemy w ms. Pomysł jest mój, może się komuś przyda.
-
Miszczu DalejLamo :x przeczytaj sobie kilka razy co zostało napisane i w jakim sensie to jest napisane ( to o domyślnych konstruktorach/destruktorach , compare akapit1 akapit2 ) :o .
-
Może być , ale ja bym ci polecił książkę "Symfonia C++" J.Grębosz. Dlatego że tłumacze zachodnich książek zawsze dają [gluteus maximus] tłumacząc je i przekręcają tym samym sens... Nie ma to jak książka napisana przez Polaka dla Polaków zwłaszcza zawodowego programiste. Ale nie licz na to że jako początkujący zrozumiesz szybko nawet tak dobrze wyjaśnioną książkę bo ja parę lat temu miałem z tym problemy dopiero po drugim przeczytaniu załapałem wszystko. Nie chcem cię straszyć ale jak dostaniesz coś obiektowego do samodzielnego zbudowania i opakowania w klasy + dziedziczenie + polimorfizm + pojemniki i inne cuda to nie masz szans... się tego nauczyć w tak krótkim czasie. No chyba że to będzie jakiś banał... :twisted:
-
Mini-gun ( ten stało obrotowy ) z AVP2 i także Rail-gun ( ten z celownikiem optycznym ) i nie ma mocnych
-
Hem funkcji to za bardzo nie ma ale można to zrobić samemu bardzo prosto np taki kod wstawiasz na przycisk: [php:1:173735f534] static int i ; if (!i) { i = 1 ; Form2->Show() ; Form2->Color = clBtnFace ; // można bez tego wtedy już // na zawsze będzie czerwona } else { i = 0 ; Form2->Show(); Form2->Color = clRed ; } [/php:1:173735f534] Można go zmodyfikować w różny sposób dodać inny kolor do pierwszego if a do drugiego wstawić i = 0 ; i wtedy zmiany będą cykliczne.
-
[C] Wprowadzanie danych podczas pracy programu.
Polar odpowiedział(a) na pirveli temat w Programowanie
Heh jednym słowem nie ma to jak funkcja getch() z conio.h to powinien być standard jak w morde strzelił :D Ale chyba jest getch() na linuxie i conio.h... :x -
[php:1:e5b281a47d] #include <iostream> #include <dir.h> #include <stdlib.h> using namespace std ; int main() { char *p; char nazwa[255]; //char nazwa[] = "c:\\windows" ; //lub na stale podane cout << "podaj - nazwa katalogu do sprawdzenia: " ; cin >> nazwa ; cout << "szukanie katalogu... " << endl; while(1) // można bez while jeśli to ma się odbyć tylko raz { p = searchpath(nazwa); if (p == NULL) cout << "katalog nie istnieje" << 'r' ; else cout << "katalog istniejet" << 'r'; } // tak jak wcześniej cout << 'n' ; system("pause"); return 0; } [/php:1:e5b281a47d] Wszyskto jest w biblitece standardowej trzeba tylko to wykorzystać na różne sposoby. Ścieżke sobie albo podajesz albo ustalasz na stełe w tablicy znakowej albo w stringu. Jeśli wpisujesz/podajesz nazwę to może to być albo sama nazwa katalogu albo ścieżka np. "c:windows"...
-
Ich głównym zadaniem jest nadwanie wartości początkowej dla danych ( obiektów danej klasy , tablic , zmiennych ) w klasie, przy jednoczesnym ( a może właśnie dlatego ) tworzeniu obiektu. Konstruktor jest w klasie zawsze nawet jeśli nie zadeklarujesz go sobie, zawsze jest deklarowany konstruktor i destruktor domyślny który nic nie robi ( NAZWA_KLASY() && ~NAZWA_KLASY() ) z praktycznego punktu widzenia... :)
-
1. A po co ? Object Pascal w niczym nie ustępuje C++ , jest równie szybki. 2. Co chcesz od VCL, to jest ogólnie mówiąc najbardziej user-friendly biblioteka (MFC i WinApi, jest bleee) 3. Jak słyszę gadanie o dużym .exe to smutno mi się robi :) To nie te czasy już, bo teraz nie liczy się +400 kB kodu więcej tylko jego szykość i stabilność , a dam se głowę uciąć że te + 400kb kodu (czy ile tam jest w Delphi) sprawia że program wykonuje się szybciej mając to w sobie na stałe zintegrowane niż jakby miał to tworzyć dynamicznie przez MSWirusa czy odczytywać z jakiegoś pliku biliotek. Większy .exe , .dll ale szybszy i bezproblemowy. Ja nie gość :wink: ja tu już od dawna jestem :) :x
-
Można też tak różnica jest subtelna , ale jednak nie wpływa to zupełnie na szybkość działania... :lol: A przetestowałem to na moim sprzęcie i na int tablicy[50000], odwróconej od 49999 do 0 , czyli na maxa :twisted: i wynik to ~3 sec. [php:1:e8f8089fde] #include <stdio.h> #include <stdlib.h> void SortW(int * x , int ile) ; //------------------------------------------------------------------------------ int main() { int ile, i; const int rozmiar = 1000; int x[rozmiar]; printf ("podaj ilosc liczb które chcesz posortowac n"); scanf ("%d", &ile); printf ("podaj liczby n"); for (i=0;i<ile;i++) scanf ("%d", &x); SortW(x , ile); for ( int i = 0 ; i < ile ; i++ ) printf("posortowane liczby: %d n", x); system ("nPAUSE"); return (0); } //------------------------------------------------------------------------------ void SortW(int * x, int ile) { int i,j; int rob; for (i=1;i<ile;i++) { rob = x; j = i-1; while ((j>=0) && (x[j]>rob)) { x[j+1] = x[j]; j--; } x[j+1] = rob; } } //------------------------------------------------------------------------------ [/php:1:e8f8089fde]
-
Nie bede się rozwodzić nad niektórymi zapisami w tym kodzie (jak na moje oko to nie może wypisać liczb). Można to rozwiązać na wiele sposobów. Ja bym to zrobił tak: [php:1:573528eb40] #include <stdio.h> #include <stdlib.h> int * SortW(int x[] , int ile) ; //------------------------------------------------------------------------------ int main() { int ile, i; int x[1000]; printf ("podaj ilosc liczb które chcesz posortowac n"); scanf ("%d", &ile); printf ("podaj liczby n"); for (i=1;i<ile;i++) scanf ("%d", &x); int * wsk = SortW(x , ile); // *wsk jest ustawiony do tego co zwraca // funkcja sortujaca ( na talicy ) for ( int i = 0 ; i < ile-1 ; i++ ) printf("posortowane liczby: %d n", wsk); system ("nPAUSE"); return (0); } //------------------------------------------------------------------------------ int * SortW(int x[], int ile) // funkcja zwraca wskaznik int { int i,j; int rob; for (i=1;i<ile;i++) { rob = x; j = i-1; while ((j>=0) && (x[j]>rob)) { x[j+1] = x[j]; j--; } x[j+1] = rob; } return x ; // czyli wlasciwie zwraca talice , bo nazwa tablicy } // to wskaźnik do jej zerowego elementu //------------------------------------------------------------------------------ [/php:1:573528eb40]
-
Jednym takie coś odpowiada innym nie jest tyle kompilatorów C++ że każdy może wybrać coś dla siebie, kiedyś były wojny między zwolennikami MS i Borlanda teraz już to wszystko ucichło bo każdy kompilator ma swoje wady i zalety i żaden nie jest doskonały... :)
-
Może byś się podzielił tym co wiesz ? Bo zawsze znajdzie się ktoś komu sie to przyda. :)
-
Masz piękny kompilator Dev-C++ który jest 100% zgody z obecnym standardem ANSI C++ a przy tym darmowy i do celów zarobkowych może być uzywany nawet - Full GNU public license - i jest pozatym bardzo wygodny. Wadą jest to że nie ma tylu bibliotek co Borland i nie może robić aplikacji 16 bitowych. Funkcje sleep() można napisać samemu np: ( trzeba dodać na początek #include <time.h> ) void sleep(int czas){ clock_t start; while(start = clock() <= czas);} Może jest trochę chamska ( ta pentla pracuje cały czas ) ale dla upartego moze być. :) Albo poprostu dodać na początek #include <windows.h> i kodzie programu wstawić z wybrany czasem Sleep(czas).
-
Jeśli zadanie ma być w ANSI C no to pierwsze może być np. tak : #include <conio.h>#include <stdio.h>int dodawanie(void);int odejmowanie(void);//------------------------------------------------------------------------------int main(){ char i; printf("wcisnij 'o' dla odejmowania 'd' dla dodawania :"); while( (i = getch())!=27 ) { switch(i) { case 'd': dodawanie(); break; case 'o': odejmowanie(); break; default : printf("nzly wybor"); } }return 0;}//------------------------------------------------------------------------------int dodawanie(void){ int a = 2 , b = 8; printf("na + b = %i" , a+b); return 1;}//------------------------------------------------------------------------------int odejmowanie(void){ int a = 2 , b = 8; printf("na - b = %i" , a-b); return 2;}//------------------------------------------------------------------------------ Naciśnięcie ESC kończy program. (Chociaż nie mam pewności czy jest on w 100% zgodny z ANSI C)
-
True truth , Dev-C++ to chyba najlepszy w tej chwili kompilator C++ , szybki , stabilny, zgodny ze standardami i co najważniejsze darmowy, ale powinni poprawić współpracę z plikiem conio.h , bo jest on bardzo uzyteczny, przynajmniej dla mnie :) (dla tych co nie wiedzą Dev-C++ jest pisany w Delphi :D , znaczy edytor)
-
-
getchar(); musisz wstawić przed linijką return 0 ; i wtedy an pewno zadziała. Możesz sobie też dostawić na początek : #include <stdlib.h> // i zamiast getchar(); // wstawić sobie system("pause") ; Ale jednak jak dla mnie getch() ; jest chyba najbardziej uniwersalną funkcją do tego i wielu innych rzeczy. Chwała plikowi conio.h :)
-
Pomoże mi ktoś zrobić parę programów na zaliczenie?
Polar odpowiedział(a) na ms-trex temat w Programowanie
Takie kursy internetowe to jakby dodatek do tego co możesz nauczyć się z ksiązek , nie znam jeszcze nikogo kt o by sie nauczył języka z kursów w necie ( JA nie znam ). Jeśli chcesz się nauczyć porządnie, to tylko książki w wersji papierowej :) -
Pomoże mi ktoś zrobić parę programów na zaliczenie?
Polar odpowiedział(a) na ms-trex temat w Programowanie
Dlatego że w twoim programie można było tylko raz podać wartość zmiennej na samym początku a potem tej zmiennej nie można było już zmienić wpisać tam coś nowego ( innego ). Program kończył wyrażenie warunkowe - switch a ponieważ to switch było w środku while to rozpoczytał je od nowa mając ciągle tą samą zmienną którą wpisałeś na początku programu np. 33 i ciągle pisał wykrzyknik i tak w kółko w nieskończoność bo znał tylko jedną liczbę czyli np. 33. Tak jak to podał wojtt, wystarczyło tylko wstawić do wnętrza while cin >> x ; i po kłopocie. Sam możesz sobie zrobić , bardzo łatwo : for ( int i = 0; i< 256; i++) { cout << i << " to znak " << char(i) << endl; } Jak nie, jak tak :) -
Enigmatycznie :) Hehe trudno powiedzieć to zależy od kompilatora, ( konkretnie od programu ) . Np. w C++ Builder trzeba było zmienić jeden wpis w rejestrze aby działały polskie znaczki. A w Dev-C++ może jest coś innego, albo nie ma wcale takiej opcji ( i polskie znaczki nie są zalecane ).
-
To zależy od ustawienia kompilatora , musisz zabaczyć czy jest takie ustawienie w opcjach które to umożliwi. Ewentualnie zaciągnąc jakiegoś patcha z netu albo zmienić coś w rejestrzse systemu windows. Wszystkie kompilatory jaki znam mają z tym problemy , trzeba to ustawić poprostu. Pogooglaj sobie na pewno coś jest.
-
No asm trza znać chociażby do samych wstawek w pascalu , c++ bo to dużo daje na szybkości i wogóle... :P
-
Cały czas mam Delfina na dysku, ale z przepisaniem będzie trudno bo zapomniałem pascala prawie... Ale na pewno ktoś tu zna go...
-
C++Przekazywanie wskaznika tabeli wielowymiarowej do funkcji
Polar odpowiedział(a) na Budzix temat w Programowanie
Co??!! Paliłeś jakieś zioła razor?? Albo niekoniecznie... Dobra rada, może warto ją samemu zastosować? Nawaliłeś parę kilo kodu ale co z tego skoro błędnego? Czy dla Ciebie char tab[15][15] ma tylko 15 elementów? Wygląda, że tak, bo w Twoim kodzie jest: [php:1:2baaf680da] //... for ( int i = 0 ; i < 15 ; i++) wskaznik1 = wskaznik2; //... [/php:1:2baaf680da] Następnym razem sprawdź kod dla CAŁEJ tablicy, a nie tylko dla [0][0] i [0][1]. Nie prościej używać biblioteki standardowej, zamiast wygibasów ze wskaźnikami do tablic??? [php:1:2baaf680da] void wypelnij(char sz[][15]) { memcpy( zrudlo, sz, 15*15*sizeof(char) ); } [/php:1:2baaf680da] Oczywiście, czy tak czy tak, podejście nie jest zbyt piękne... Za dużo rzeczy jest wpisane na sztywno (rozmiar tablicy), brak hermetyzacji w klasach, itd. A wystarczyło tylko(?) napisać, że w C/C++ przekazywanie tablic można zrobić nie przez deklarację wskaźnika do tablicy(!) ale wystarczy parametr zadeklarować jako tablicę, mając na uwadze to, że pierwszy wymiar tablicy wielowymiarowej (w tym przypadku!) nie jest kompilatorowi do niczego potrzebny i można go pominąc, np. wypelnij(char tab[][15]);. Niestety to na programiście spoczywa obowiązek pamiętania o rozmiarach tablic. Następnie elementy tablicy należy skopiować. Tutaj jeszcze należy wspomnieć o dogodności C++ jaką jest sprawdzanie zgodności typów; Budzix jeżeli dokładnie spojrzysz na błędy pokazywane przez kompilator to możesz(?) domyśleć się jak należy zadeklarować parametr żeby dla kompilatora był on ok (uwaga:nie zawsze to logicznie ma sens...). Wracając do wkaźników: dla Twojego przypadku można użyć wskaźnika, tzn. wywołać metodę: wypelnij( &sz.pole ); jeśli zadeklarujesz: wypelnij(char sz[][15][15]) {...} wtedy typy zgadzają się, bo jest wskaźnik do tablicy dwuwymiarowej! Natomiast char *tab[][] oznacza tablicę wskaźników i dlatego nie działało. I co razor1 można czy nie można deklarować jako wskaźnika?! Oczywiście, że można: char (*sz)[15][15] jest równoważne char sz[][15][15]. Programując w C++ rozważył bym jeszcze możliwość wykorzystania wzorca klasy vector<> z biblioteki STL, wtedy mógłbyś używać konstrukcji vector1 = vector2; zamiast ręcznego kopiowania tablicy :). Wzorce (czy też szablony) są może troszkę zakręcone ale do używania klasy vector czy string nie potrzeba wcala wiedzieć "jak to się robi", a jedynie "jak tego używać". Po co się tak pieklisz ? Nerwowy jesteś czy co... :P :?: W tych 15 elementach chodziło mi o samo pokazanie ich kopiowania, mając na uwadze że wcześniej wpisaliśmy ich też 15.