Draconis Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 Witam W C++ pisałem kilka lat temu, lecz zmieniłem język, którym się posługiwałem na VB.net, gdyż uznałem go za odpowiedniejszy, niestety (a może i stety) muszę wrócić do C++, gdyż zamierzam zdać na maturze, a od 2009 Visual Basic przestał być dostępny, dodatkowo będę zdawać na Dev-C++. Aby sobie poprzypominać C++ próbuję napisać kilka prostych programów, lecz przy pierwszym (pierwszym trochę bardziej skomplikowanym od pobrania liczby z klawiatury i jej napisaniem na ekranie :)) zaczynam mieć problemy. Ok, starczy mojego drobnego użalania się. if (n>1) { while (n>1) { p=n%k; if (p=0) { n=n/k; cout << k << ", "; } if (p!=0) { k=k+1; } } } Powyżej jest wycinek z kodu (wiem, że ta metoda, nie jest najlepszym rozwiązaniem problemu), projekt się kompiluje prawidłowo, wszystkie zmienne są zadeklarowane, n jest wprowadzane z klawiatury, a k wynosi 2. Zgodnie z moimi przewidywaniami po podaniu np. liczby 6 powinno wyświetlić 2, 3 na ekranie. Czemu po podaniu dowolnej liczby program się zapętla nie podając żadnych wyników. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 while( n > 1 ) { p = n % k; if( p == 0 ) { n = n / k; cout << k << ", "; } else { k++; } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Draconis Opublikowano 4 Września 2010 Autor Udostępnij Opublikowano 4 Września 2010 Dzięki, pozapominałem najprostsze rzeczy np. takie że porównanie wymaga dwóch znaków "=" a nie jednego, inkrementacją(czy jak się to pisze) nie lubię się posługiwać, mam taki nawyk. Będę w tym temacie zadawał w przyszłości dalsze pytania (w końcu temat jest w liczbie mnogiej) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 4 Września 2010 Filar Społeczności Udostępnij Opublikowano 4 Września 2010 Dzięki, pozapominałem najprostsze rzeczy np. takie że porównanie wymaga dwóch znaków "=" a nie jednego, inkrementacją(czy jak się to pisze) nie lubię się posługiwać, mam taki nawyk. Będę w tym temacie zadawał w przyszłości dalsze pytania (w końcu temat jest w liczbie mnogiej) Jak nie chcesz pisać k++ to pisz k+=1; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 ja jestem za to ciekaw czy kompilator dla trzech wariantow inkrementacji: i++; i+=1; i=i+1; robi jakies roznice w kompilowaniu. znaczy i tak calosc to powinna sie sprowadzac do asmowego 'add i 0x1', jakim jest inkrementacja. Jesli dla niego to roznica sposobow wykonywania to szybciej bedzie dzialac inkrementacja nizeli i=i+1. ale to i tak malo wazny szczegol, z reguly programy nie sa az tak powolne aby sposob inkrementacji sie liczyl, ale jako ciekawostke bylbym chetny sie dowiedziec jak to z tym jest. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 4 Września 2010 Filar Społeczności Udostępnij Opublikowano 4 Września 2010 ja jestem za to ciekaw czy kompilator dla trzech wariantow inkrementacji: i++; i+=1; i=i+1; robi jakies roznice w kompilowaniu. znaczy i tak calosc to powinna sie sprowadzac do asmowego 'add i 0x1', jakim jest inkrementacja. Jesli dla niego to roznica sposobow wykonywania to szybciej bedzie dzialac inkrementacja nizeli i=i+1. ale to i tak malo wazny szczegol, z reguly programy nie sa az tak powolne aby sposob inkrementacji sie liczyl, ale jako ciekawostke bylbym chetny sie dowiedziec jak to z tym jest. jak masz sporo pętli for z dużą ilością obiektów to może się to przydać. (znaczy, wiedza, które się wykonuje najszybciej) o ile jest jakaś różnica of kors Trochę na necie poszukałem i wychodzi (chyba), że różnica może być co najwyżej w czasie kompilacji. chyba, że ktoś chciałby zwiększać liczbę o więcej niż 3, wtedy między i++++++++, a i+=4 są różnice. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Will Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 ja jestem za to ciekaw czy kompilator dla trzech wariantow inkrementacji: i++; i+=1; i=i+1; robi jakies roznice w kompilowaniu. znaczy i tak calosc to powinna sie sprowadzac do asmowego 'add i 0x1', jakim jest inkrementacja. Jesli dla niego to roznica sposobow wykonywania to szybciej bedzie dzialac inkrementacja nizeli i=i+1. ale to i tak malo wazny szczegol, z reguly programy nie sa az tak powolne aby sposob inkrementacji sie liczyl, ale jako ciekawostke bylbym chetny sie dowiedziec jak to z tym jest.; Na 99% te trzy inkrementacje w visualu są tak samo szybkie(przynajmniej w tej formie). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 Może bez optymalizacji kompilator by wygenerował inny kod dla każdej z tych konstrukcji, tak to to wszystko zostanie uznane za jedno i to samo i kompilator wygeneruje zależnie od kontekstu kod najlepszy dla danego trybu optymalizacji (rozmiar, szybkość). Tak więc to niema znaczenia z którego wariantu się tu skorzysta, to samo tyczy się: chyba, że ktoś chciałby zwiększać liczbę o więcej niż 3, wtedy między i++++++++, a i+=4 są różnice. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Draconis Opublikowano 4 Września 2010 Autor Udostępnij Opublikowano 4 Września 2010 chyba, że ktoś chciałby zwiększać liczbę o więcej niż 3, wtedy między i++++++++, a i+=4 są różnice. Istnieje coś takiego jak "i++++++++" ? Ech co powiecie na zmianę tematu na "Jaki sposób inkrementacji jest najlepszy i dlaczego?" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Draconis Opublikowano 7 Września 2010 Autor Udostępnij Opublikowano 7 Września 2010 wiwtnp Tym razem bez wstępu. Czy w c++ jest funkcja pierwiastkująca, niewymagająca dołączania bibliotek jak np. math.h ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 7 Września 2010 Udostępnij Opublikowano 7 Września 2010 calkowite: c=a^b zmiennoprzecinkowe: c=a; if(b==0) c=1; else for(int i=1;i<b;i++)c*=a; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Draconis Opublikowano 7 Września 2010 Autor Udostępnij Opublikowano 7 Września 2010 calkowite: c=a^b zmiennoprzecinkowe: c=a; if(b==0) c=1; else for(int i=1;i<b;i++)c*=a; A czy przypadkiem znakiem "^" nie oznacza się potęgowania? I czemu int t,k,c; c=2; t=9; k=t^c; zwraca mi, że k=11 (sumę c i t) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 7 Września 2010 Udostępnij Opublikowano 7 Września 2010 sry, przeczytalem potegowanie :D a ten znak ^ to nie pamietam czy dobry, ale operator bitowy << poteguje 2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 7 Września 2010 Udostępnij Opublikowano 7 Września 2010 Bo ^ to xor? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Draconis Opublikowano 7 Września 2010 Autor Udostępnij Opublikowano 7 Września 2010 Tak się zastanawiam, czy w C++ da się napisać program, którego wynikiem będzie jego kod źródłowy, czy może c++ jest za bardzo skomplikowany. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 7 Września 2010 Udostępnij Opublikowano 7 Września 2010 Jak dla mnie, to CZYSTO w C++ się tego nie da, jedynie z asmem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Draconis Opublikowano 7 Września 2010 Autor Udostępnij Opublikowano 7 Września 2010 Może trochę niezwiązane tematem,. Czy uważacie, że stosowanie referencji w zmiennych ma jakiś sens? e. Z mojego puntu widzenia jest to tylko nadawanie kilku nazw do jednej zmiennej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 7 Września 2010 Udostępnij Opublikowano 7 Września 2010 Referencje są do optymalizacji kodu wykonywalnego, po co kopiować, jeśli można bezpośrednio przesłać adres zmiennej? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Draconis Opublikowano 27 Września 2010 Autor Udostępnij Opublikowano 27 Września 2010 Kolejne pytanie. Używam biblioteki winbgim, czy jest możliwe stworzenie w niej aplikacji z dwoma (lub więcej) oknami graficznymi działającymi niezależnie od siebie i jeżeli tak to w jaki sposób je rozróżnić w kodzie) edit Używam biblioteki conio.h a konkretnie funkcji getch(), tylko, że w przypadku zmiany znaku lub naciśnięcia >1 naraz, program się zacina na ułamek sekundy co jest denerwujące, więc pytanie brzmi, czy jest jakaś praktyczniejsza metoda operacji na klawiszach w podstawowych bibliotekach? edit Zrobiłem swoją pierwszą minigrę w C++ i oczywiście chcę się nią pochwalić, mimo iż do tego się nie nadaje, Jest to moja wersja gry Lightcycle, więc chyba wszyscy wiedzą o co chodzi. W aktualnej wersji nie ma przeciwników. Najlepszy wynik jest zapisywany do pliku. O prymitywności tej wersji świadczy też to że po spakowaniu zajmuje ok 300kb Pobierz edit $Wrzuciłem wam wersję z błędnym sprawdzaniem więc proszę byście w pseudomenu nie wciskali niczego, co nie jest wymienione. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Draconis Opublikowano 27 Listopada 2010 Autor Udostępnij Opublikowano 27 Listopada 2010 Witam, niestety to znowu ja. Tym razem mam kolejny banalny kłopot z fstream, a właściwie nie wiem jak wykonać pewną czynność a mianowicie zapisanie i wczytanie do/z pliku tablicy dwuwymiarowej, z zastrzeżeniem, że wartości mają być ułożone graficznie w sposób odpowiadający tablicy (nie jestem pewien jak to napisać) czyli, żeby np. prostą tablicę uzyskaną kodem: int test[9][9]; int x,y,z; z=0; for(x=0;x<10;x++) { for(y=0;y<10;y++) { test[x][y]=z; z++; } } zapisać do pliku w formie 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 itd. Co jestem w stanie zrobić przy użyciu fstream, głównie chodzi mi o działanie w przeciwną stronę, czyli mamy plik w postaci np. 1 5 8 9 4 8 6 4 8 9 4 5 8 9 6 4 i chcę to zapisać do tablicy. W tym wypadku np. test2[3][3] tak by np. test2[1][0] przyjęło wartość bodajże 5 a test2[0][1] 4. Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Will Opublikowano 27 Listopada 2010 Udostępnij Opublikowano 27 Listopada 2010 1. Wczytać do tablicy jednowymiarowej a potem przerzucić do 2-wymiarowej. 2. zapisać && wczytać binarnie(opening mode -> binary). 3. "Latać" po pliku po kolejne indexy(wolne..) Ogólnie jeśli chcesz all czysto tekstowo to wczytaj całość a potem przetwarzaj choćby z stringstream. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się