seebeek17 9 Napisano 29 Maja 2013 Udostępnij Napisano 29 Maja 2013 (edytowane) siemka. Chcialem zrobic moją drugą wersje kalkulatora i myslalem ze wszystko dobrze a tu failed Otoz zrobilem osobne te z nawiasami(kolumny kodu??): void MenuLiczby(){ int LOpcja; cout << endl; cout << "Wybierz operacje: " << endl; cout << "1.Mnozenie" << endl; cout << "2.Dzielenie" << endl; cout << "3.Dodawanie" << endl; cout << "4.Odejmowanie" << endl; cout << endl; cout << "5.Cofnij" << endl; cin >> LOpcja; switch (LOpcja) { case 1: Mnozenie(); break; case 2: Dzielenie(); break; case 3: Dodawanie(); break; case 4: Odejmowanie(); break; case 5: GlMenu(); break; default: cout << "Nieznana opcja" << endl; cout << endl; } I dalej zrobilem cos źle z if i else: } void Mnozenie(){ int MnWybor1; cout << endl; cout << "Podaj pierwsza liczbe: " << endl; cin >> MnWybor1; int MnWybor2; cout << "Podaj druga liczbe: " << endl; cin >> MnWybor2; if (MnWybor1, MnWybor2 < 0.0) cout << "Bez liczb ujemnych" << endl; cout << endl; int MnMenu1; cout << "Co dalej?: " << endl; cout << "1.Jeszcze raz" << endl; cout << "2.Menu" << endl; cin >> MnMenu1; switch (MnMenu1) { case 1: Mnozenie(); break; case 2: GlMenu(); break; default: cout << "Nieznana opcja" << endl; cout << endl; } else (MnWybor1, MnWybor2 > 0.0); int MnWynik = MnWybor1 * MnWybor2; cout << MnWybor1 << " * " << MnWybor2 << " = " << MnWynik; cout << endl; int MnMenu2; cout << "Co dalej?: " << endl; cout << "1.Jeszcze raz" << endl; cout << "2.Menu" << endl; cin >> MnMenu2; switch (MnMenu2) { case 1: Mnozenie(); break; case 2: GlMenu(); break; default: cout << "Nieznana opcja" << endl; cout << endl; }} I jak kompiluje to pisze ze nie znalazlo Mnozenie(). PS.Dalej jest tez Odejmowanie(), Dzielenie(), Dodawanie() ale calego nie dalem bo jeszcze jakis noobek mi ukradnie moje błędy PS2. na koncu jest: void main() { MenuLiczby() Wyjscie } bo zrobilem osobno. Prosze o pomoc w poprawie kodu, tego if i else i wytlumaczeniu czemu nie chce znalesc tych funkcji np. Mnozenie(). @edit moge dac caly kod na PW jak by ktos chcial. Z gory dziekuje. Edytowane 29 Maja 2013 przez seebeek17 Link to post Share on other sites
kropka89 16 Napisano 29 Maja 2013 Udostępnij Napisano 29 Maja 2013 deklaracja funkcji? 1 Link to post Share on other sites
Dżi-Aj-Dżo 11 Napisano 29 Maja 2013 Udostępnij Napisano 29 Maja 2013 Przeciez autor tematu wyraznie zaznaczyl w jednym z poprzednich tematow ze umie programowac i bierze sie za pisanie botow i AI. Nie widze sensu pomagac. Z reszta wspominal ze robi super kalkulator - wlasnie widze, pozdrawiam Jedno z najgorszych rzeczy jakie przyszlo mi w zyciu zobaczyc jest chodzi o kod ... Jak widze co sie dzieje w Mnozenie() to chce umrzec. 1 Link to post Share on other sites
darasz89 190 Napisano 29 Maja 2013 Udostępnij Napisano 29 Maja 2013 wyslij mi caly kod na PW prawdopodobnie masz cos namieszane z klamerka i funkcja nie jest widoczna 1 Link to post Share on other sites
seebeek17 9 Napisano 31 Maja 2013 Autor Udostępnij Napisano 31 Maja 2013 Przeciez autor tematu wyraznie zaznaczyl w jednym z poprzednich tematow ze umie programowac i bierze sie za pisanie botow i AI. Nie widze sensu pomagac. Z reszta wspominal ze robi super kalkulator - wlasnie widze, pozdrawiam Jedno z najgorszych rzeczy jakie przyszlo mi w zyciu zobaczyc jest chodzi o kod ... Jak widze co sie dzieje w Mnozenie() to chce umrzec. Troche musialem wczesniej naklamac bo zazwyczaj kazdy mowi "ucz sie c++(czy czegos innego)" i ma sprawe gdzies i nie chce pomuc ani wytlumaczyc nawet troche tematu wiec napisalem ze umiem i 1 osoba pomogla. Kiedys zadalem moze teraz wydajace sie glupie pytanie-jak sie robi gry- i wszyscy pisali "ucz sie c++"... nie pisali po co, co mi to c++ da ale mialem sie uczyc a teraz wiem po co c++ w robieniu gier(np. AI, symulowanie ognia-"rand", czy w strategiach cos) wiec sie troche ucze tego, i nie trzeba odprawiac kogos z "ucz sie c++" gdy jest zainteresowany np. czyms z programowania, bo wystarczy troche wytlumaczyc a jak sie spodoba to sie czlowiek dalej uczy w danym zainteresowaniu a jak nie to gra dalej w Minecrafta albo CoD'a Link to post Share on other sites
darasz89 190 Napisano 31 Maja 2013 Udostępnij Napisano 31 Maja 2013 (edytowane) po pierwsze Twój problem leży, w tym iż wywołujesz funkcje przed jej definicja przez co kompilator nie może złożyć kodu gdyż nie widzi ciała funkcji masz 3 opcje rozwiązania tego problemu: - dodanie deklaracji wszystkich funkcji na początku kodu - przesunięcie definicji funkcji przed ich wywołanie - zrobienie headera z funkcjami po drugie masz błędy z klamerkami w if'ach - jeśli masz do wykonania więcej niż jedną operację zawsze ujmujesz je w klamerki inaczej np wywali Ci błąd przy else, że nie ma wcześniej użytego if'a, nie piszę już tutaj o błędach w samym działaniu programu ogólnie kod jest napisany bardzo chaotycznie i niezgodnie z "normami" ISO, ale to już szczegół mam nadzieję, że pomogłem powodzenia Edytowane 31 Maja 2013 przez darasz89 1 Link to post Share on other sites
seebeek17 9 Napisano 31 Maja 2013 Autor Udostępnij Napisano 31 Maja 2013 - dodanie deklaracji wszystkich funkcji na początku kodu jak to zrobić? - przesunięcie definicji funkcji przed ich wywołanie czyli? - zrobienie headera z funkcjami czego z funkcjami?? ogólnie kod jest napisany bardzo chaotycznie i niezgodnie z "normami" ISO Dziekuje Nie no, tak serio to tych 3 pierwszych nie czaje. Byl bym wdzieczny(i dal plusa ) jak bys jeszcze pomogl. I nwm. jak te klamry dac przy else i if'ie Link to post Share on other sites
darasz89 190 Napisano 31 Maja 2013 Udostępnij Napisano 31 Maja 2013 (edytowane) - dodanie deklaracji wszystkich funkcji na początku kodu dodajesz wpis będący zapowiedzią istnienia funkcji np: void Dodaj(); - przesunięcie definicji funkcji przed ich wywołanie załóżmy, że w funkcji A wywołujesz funkcję B, także definicja B musi być przed [wyżej] A - zrobienie headera z funkcjami http://www.learncpp.com/cpp-tutorial/19-header-files/ http://www.fizyka.umk.pl/~grochu/wiki/doku.php?id=zajecia:jpr:zajecia5 http://pl.wikibooks.org/wiki/C/Biblioteki http://www.edu.godula.com/?zo=cpp_17 co do if-else: http://hektor-programowanie.net/artykul.php?x=94 Edytowane 31 Maja 2013 przez darasz89 1 Link to post Share on other sites
seebeek17 9 Napisano 31 Maja 2013 Autor Udostępnij Napisano 31 Maja 2013 Dzieki darasz89, masz plusa.Jesli masz checi jeszcze pomoc to powiedz jak zrobic nie console application, tylko to drugie chyba windows application... aha a jeszcze to: - dodanie deklaracji wszystkich funkcji na początku kodu to dac na samym poczatku czy po #include? Link to post Share on other sites
darasz89 190 Napisano 31 Maja 2013 Udostępnij Napisano 31 Maja 2013 Jesli masz checi jeszcze pomoc to powiedz jak zrobic nie console application, tylko to drugie chyba windows application... normlanie? wybierasz projekt tworzysz interfejs i programujesz, poszukaj w google to dac na samym poczatku czy po #include? zaraz po using namespace std; 1 Link to post Share on other sites
seebeek17 9 Napisano 31 Maja 2013 Autor Udostępnij Napisano 31 Maja 2013 aha a mam jeszcze ostatnie, ostatnie pytanie... co mam zrobic ze jak sie wpisze druga liczbe ujemna to zeby do skutku prosilo o liczbe dodatnia tak jak mi sie udalo w DoWybor1? void Dodawanie(){ int DoWybor1; cout << endl; cout << "Podaj pierwsza liczbe: "; cin >> DoWybor1; if (DoWybor1 < 0.0) { cout << "Bez liczb ujemnych" << endl; Dodawanie(); } int DoWybor2; cout << "Podaj druga liczbe: "; cin >> DoWybor2; if (DoWybor2 < 0.0) cout << "Bez liczb ujemnych" << endl; int DoWynik = DoWybor1 + DoWybor2; cout << endl; cout << DoWybor1 << " + " << DoWybor2 << " = " << DoWynik; cout << endl; int DoMenu2; cout << endl; cout << "Co dalej?: " << endl; cout << "1.Jeszcze raz" << endl; cout << "2.Menu" << endl; cout << "Twoj wybor: "; cin >> DoMenu2; switch (DoMenu2) { case 1: MenuLiczby(); break; case 2: GlMenu(); break; default: cout << "Nieznana opcja" << endl; }} Link to post Share on other sites
darasz89 190 Napisano 31 Maja 2013 Udostępnij Napisano 31 Maja 2013 (edytowane) pętla do...while albo while http://guidecpp.cal.pl/cplus,loops http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Petla-do-while/18 Edytowane 31 Maja 2013 przez darasz89 1 Link to post Share on other sites
seebeek17 9 Napisano 1 Czerwca 2013 Autor Udostępnij Napisano 1 Czerwca 2013 aha to thx, kolejny plus to jeszcze jedno pytanko, napewno dla cb latwe jak zrobic cos na wzor aktywacji programu? np. mozna uzywac darmowej wersji ale jest opcja by aktywowac wpisujac kod. umiem to ale jak zrobic by zapamietalo aktywacje i nie trzeba bylo aktywowac za kazdym wlaczeniem programu?? co do do...while albo while to nie umiem, nwm jak to uzyc... zrobilem tak: void Dodawanie(){ int DoWybor1; cout << endl; cout << "Podaj pierwsza liczbe: "; cin >> DoWybor1; if (DoWybor1 < 0.0) { cout << "Bez liczb ujemnych" << endl; Dodawanie(); } int DoWybor2; cout << "Podaj druga liczbe: "; cin >> DoWybor2; while (DoWybor2 < 0.0) { cout << "Bez liczb ujemnych" << endl; break; } int DoWynik = DoWybor1 + DoWybor2; cout << endl; cout << DoWybor1 << " + " << DoWybor2 << " = " << DoWynik; cout << endl; int DoMenu2; cout << endl; cout << "Co dalej?: " << endl; cout << "1.Jeszcze raz" << endl; cout << "2.Menu" << endl; cout << "Twoj wybor: "; cin >> DoMenu2; switch (DoMenu2) { case 1: MenuLiczby(); break; case 2: GlMenu(); break; default: cout << "Nieznana opcja" << endl; }} i while ma mnie gdzies i i tak liczy ujemne help me ;( Link to post Share on other sites
mICh@eL 335 Napisano 1 Czerwca 2013 Udostępnij Napisano 1 Czerwca 2013 Powiedz mi jaki jest sens robić while a w środku break? Nie lepiej od razu ifa zastosować? 1 Link to post Share on other sites
seebeek17 9 Napisano 1 Czerwca 2013 Autor Udostępnij Napisano 1 Czerwca 2013 taki sens ze bez break to mi w nieskonczonosc robi napis bez liczb ujemnych moze mi ktos zrobic ten fragment z if albo while po int DoWybor2? Link to post Share on other sites
darasz89 190 Napisano 1 Czerwca 2013 Udostępnij Napisano 1 Czerwca 2013 np. mozna uzywac darmowej wersji ale jest opcja by aktywowac wpisujac kod. umiem to ale jak zrobic by zapamietalo aktywacje i nie trzeba bylo aktywowac za kazdym wlaczeniem programu?? uzyc zapisania konfiguracji do pliku a przy starcie sprawdzac czy kod zostal wpisany while (DoWybor2 < 0.0) { cout << "Bez liczb ujemnych" << endl; break; } break; tutaj jest głupotą zrób sobie flage [zmienna sterującą] którą ustaw na false, następnie do while wczytanie zmiennej i sprawdzenie czy jest dodatnia, jesli tak, to ustawiasz flage na true 1 Link to post Share on other sites
seebeek17 9 Napisano 1 Czerwca 2013 Autor Udostępnij Napisano 1 Czerwca 2013 break; tutaj jest głupotą zrób sobie flage [zmienna sterującą] którą ustaw na false, następnie do while wczytanie zmiennej i sprawdzenie czy jest dodatnia, jesli tak, to ustawiasz flage na true a czy(oczywiscie jesli chcesz) mozesz mi napisac taka zmienna sterujaca? moze to jest takie podawanie gotowca ale sumiennie przestudiuje i sie doucze tej zmiennej Link to post Share on other sites
darasz89 190 Napisano 1 Czerwca 2013 Udostępnij Napisano 1 Czerwca 2013 zrob sobie np bool ok = false; do{ wczytaj; sprawdz; }while(!ok); 1 Link to post Share on other sites
seebeek17 9 Napisano 1 Czerwca 2013 Autor Udostępnij Napisano 1 Czerwca 2013 nie czaje... bool DoWybor2 = false; do { cout << "Podaj druga liczbe: "; cin >> DoWybor2; } while(!DoWybor2); i nie dziala... jak to zrobic?? ;( PS. uzyc zapisania konfiguracji do pliku a przy starcie sprawdzac czy kod zostal wpisany i to jak zrobic...?? Link to post Share on other sites
darasz89 190 Napisano 1 Czerwca 2013 Udostępnij Napisano 1 Czerwca 2013 bool DoWybor2 = false; do { cout << "Podaj druga liczbe: "; cin >> DoWybor2; } while(!DoWybor2); nie, wczytujesz normalnie, tylko dodajesz nowa zmienna sterującą pętlą, poczytaj o pętlach i to jak zrobic...?? http://www.cplusplus.com/doc/tutorial/files/ 1 Link to post Share on other sites
seebeek17 9 Napisano 1 Czerwca 2013 Autor Udostępnij Napisano 1 Czerwca 2013 nie, wczytujesz normalnie, tylko dodajesz nowa zmienna sterującą pętlą, poczytaj o pętlach poczytalem o petlach i probowalem ale sie nie da skompilowac... ;/ prosze wez mi to napisz bo ty umiesz PS.dam ci kolejnego plusika! ;p Link to post Share on other sites
Chumanista 7 Napisano 2 Czerwca 2013 Udostępnij Napisano 2 Czerwca 2013 A tak byłoby zbyt prosto: int DoWybor2 = 0;do { cout << "Podaj druga liczbe (tylko dodatnie): "; cin >> DoWybor2;} while(DoWybor2<0); ? 1 Link to post Share on other sites
seebeek17 9 Napisano 2 Czerwca 2013 Autor Udostępnij Napisano 2 Czerwca 2013 dobra juz zrobilem, i przy okazji obczailem o co chodzi z petlami cos takiego: if (DoWybor2 < 0.00); { do { cout << "Bez liczb ujemnych" << endl; cout << endl; cout << "Podaj druga liczbe: "; cin >> DoWybor2; } while (DoWybor2 < 0.00); } hmm...ludzaco podobne do pana wyzej xD ok to juz prawie zrobione tylko jeszcze niewiem jak z ta aktywacja... niby zapisanie kodu do pliku zrobilem i odczytanie do konsolki tez ale jak zrobic by w okreslonym momencie pobieralo dany zapisany przy pierwszej aktywacji kod i wpisywalo go samo i pisalo program aktywowany i kliknac z getch(); ?? *program zostal juz aktywowany Link to post Share on other sites
Chumanista 7 Napisano 2 Czerwca 2013 Udostępnij Napisano 2 Czerwca 2013 1) do...while po ifie z tym samym warunkiem. Czego to ludzie nie wymyślą. Prościej można to samo zapisać: while (DoWybor2 < 0.00);{ cout << "Bez liczb ujemnych" << endl << endl << "Podaj druga liczbe: "; cin >> DoWybor2; } 2) Nie lepiej sprawdzić, czy plik (byłbym za kluczem w rejestrze) zawiera poprawny kod, a jeśli nie zapytać użyszkodnika? Choć uważam, że na tym poziomie zaawansowania do kluczy aktywacyjnych jeszcze kawałek... 1 Link to post Share on other sites
seebeek17 9 Napisano 2 Czerwca 2013 Autor Udostępnij Napisano 2 Czerwca 2013 aha dobra dzieki co do kluczy to nie wiem jak to zrobic(choc jesli chce mozesz mi cos podpowiedziec ) narazie(jesli nic o kluczach w rejestrze nie powiesz) to zadowole sie czyms np. wlacza sie program w darmowej wersji i jest opcja w menu "zarejestruj", potem po wpisaniu poprawnego kodu, restartuje sie(wylacza automatycznie po napisie "dziekujemy" i po getch() ) - w tym samym folderze co jest program robi plik .txt ,w ktorym zapisuje owy kod- i przy kazdym wlaczeniu programu sprawdza czy .txt z kodem jest i zaleznie od tego wlacza sie aktywowana lub nie wersja programu. chyba zrozumiale to napisalem dalo by sie cos takiego? PS. mam jeszcze plusy do rozdania! @edit i jeszcze jedno... jak zrobic by w tym .txt podczas sprawdzania licencji program szukal tylko kodu np. w 5 wierszu?? zeby nie czytal calego .txt tylko sam kod potrzebny do sprawdzenia w 5 wierszu(bo w 1-4 bedzie np. zarejestrowano dla....itd...)?? Link to post Share on other sites
Recommended Posts