damianlxlx5 Temat założony przez niniejszego użytkownika |
» 2014-01-30 21:29:53 Odswiezam |
|
pekfos |
» 2014-01-30 21:56:35 Wstaw pętlę nieskończoną i, w odpowiednich miejscach, break i/lub continue. To najłatwiejszy sposób bez przerabiania kodu. Najlepiej zacznij coś samemu robić. Wygląda na to, że zadajesz pytanie i bezczynnie (nie licząc odświeżania) czekasz. Nikt nie odpowiada - jest jakiś powód. Na forum są mechanizmy do automatycznego 'odświeżania' tematów. Dodając takie bezsensowne i nic nie wnoszące posty prędzej doprowadzisz do wyrzucenia tematu, niż do przyspieszenia pomocy. Zwłaszcza, że dyskusja zeszła z tematu. |
|
damianlxlx5 Temat założony przez niniejszego użytkownika |
» 2014-02-01 12:59:37 Zrobiłem coś takiego na zasadzie kolejnej instrukcji warunkowej if a jak miało by to wyglądać z pętlą i instrukcjami continue i break ? Oto mój obecny kod : #include <iostream> #include <windows.h> using namespace std; main()
{ char wybor; bool good, bad; float liczba, cyfra; float suma; { M: cout << "Wprowadz liczbe calkowita" << endl; cin >> liczba; while( cin.fail() ) { cin.clear(); cin.ignore( 50, '\n' ); cout << "Liczba musi byc liczba calkowita:\nWprowadz ponownie liczbe:" << endl; cin >> liczba; } cout << "Wprowadz druga liczbe calkowita" << endl; cin >> cyfra; while( cin.fail() ) { cin.clear(); cin.ignore( 50, '\n' ); cout << "Liczba musi byc liczba calkowita:\nWprowadz ponownie liczbe:" << endl; cin >> cyfra; } suma = liczba * cyfra; good = cin.good(); bad = cin.bad(); cin.clear(); cin.sync(); } if( suma < 100 ) { cout << "Suma dwoch liczb ktore podales nie przekracza 100" << endl; cout << "Wynik mnozenia tych dwoch liczb wynosi : " << suma << endl; cout << "Znakomicie" << endl; cout << "Chcesz kontynuowac (t/n)" << endl; cin >> wybor; if( wybor != 'n' ) { cout << "Wybrales kontynuacje programu" << endl; Sleep( 2000 ); goto M; } } else { cout << "Suma liczb przekracza 100" << endl; cout << "Wynik nie zostanie zwrocony" << endl; cout << "Sprobuj ponownie" << endl; Sleep( 2000 ); goto M; } }
|
|
leon_w |
» 2014-02-01 14:10:26 Bierzesz całą instrukcję, która ma sie powtarzać w klamry. Przed klamrą otwirającą dajesz np: while( 1 ) (to jest pętla nieskończona, ponieważ jej warunek jest zawsze spełniony). W if( wybor != 'n' ) { cout << "Wybrales kontynuacje programu" << endl; Sleep( 2000 ); goto M; }
|
zamiast "goto M;" dajesz "continue;" (wraca na początek pętli), a za klamrą dodajesz: zakańcza pętle. |
|
damianlxlx5 Temat założony przez niniejszego użytkownika |
» 2014-02-01 17:55:12 Zrobiłem coś takiego jednak nie działa to poprawnie.Nie wiem jak zagnieżdżać te pętla mam. Zrobiłem to tak ale jest to żle i czy mógłbyś mi napisać gdzie dokładnie tę instrukcję zamieścić w kodzie bo mam z tym problem niestety. #include <iostream> #include <windows.h> using namespace std; main() { char wybor; bool good, bad; float liczba, cyfra; float suma; while( 1 ) { { M: cout << "Wprowadz liczbe calkowita" << endl; cin >> liczba; while( cin.fail() ) { cin.clear(); cin.ignore( 50, '\n' ); cout << "Liczba musi byc liczba calkowita:\nWprowadz ponownie liczbe:" << endl; cin >> liczba; } cout << "Wprowadz druga liczbe calkowita" << endl; cin >> cyfra; while( cin.fail() ) { cin.clear(); cin.ignore( 50, '\n' ); cout << "Liczba musi byc liczba calkowita:\nWprowadz ponownie liczbe:" << endl; cin >> cyfra; } suma = liczba * cyfra; good = cin.good(); bad = cin.bad(); cin.clear(); cin.sync(); } if( suma < 100 ) { cout << "Suma dwoch liczb ktore podales nie przekracza 100" << endl; cout << "Wynik mnozenia tych dwoch liczb wynosi : " << suma << endl; cout << "Znakomicie" << endl; cout << "Chcesz kontynuowac (t/n)" << endl; cin >> wybor; cout << "Wybrales kontynuacje programu" << endl; Sleep( 2000 ); continue; } else break; } else { cout << "Suma liczb przekracza 100" << endl; cout << "Wynik nie zostanie zwrocony" << endl; cout << "Sprobuj ponownie" << endl; Sleep( 2000 ); goto M; } } |
|
alixir |
» 2014-02-01 19:11:35 Dalej gryzie mnie w oczy goto i label M: Nie wiem skąd masz takie niedobre nawyki, ale zacznij może od przeczytania kursów z tej strony, a myślę, że twoje problemy rozwiążą się same. |
|
leon_w |
» 2014-02-02 10:11:30 No masakra trzeba przyznać. Pomyśl trochę logicznie. Pytasz użytkownika czy chce kontynuować, zapisujesz jego odpowiedź do zmiennej i nic z nią nie robisz. Dlaczego usunąłeś tego ifa? Pętla nieskończona jest dobra, tylko klamrę zamykającą daj za ostatnim else (na samym końcu, przed klamrą zamykającą funkcje main).
Co do ifa którego usunąłeś: Pytasz użytkownika czy chce kontynuować, odpowiedź zapisujesz do zmiennej. Jeżeli odpowiedź jest różna od 'n', kontynuujesz działanie pętli ( continue). Jeżeli odpowiedź jest równa 'n'(nie jest różna od 'n'), zakańczasz działanie pętli (break).
|
|
damianlxlx5 Temat założony przez niniejszego użytkownika |
» 2014-02-02 14:28:23 Dobra udało mi się napisać coś takiego jednak nie rozumiem pewnej rzeczy. Najpierw przedstawię może mój kod i wiersz którego nie rozumiem przedstawię za pomocą komentarza. #include <iostream> #include <windows.h> using namespace std; main()
{ char wybor; bool good, bad; float liczba, cyfra; float suma; while( 1 ) { { M: cout << "Wprowadz liczbe calkowita" << endl; cin >> liczba; while( cin.fail() ) { cin.clear(); cin.ignore( 50, '\n' ); cout << "Liczba musi byc liczba calkowita:\nWprowadz ponownie liczbe:" << endl; cin >> liczba; } cout << "Wprowadz druga liczbe calkowita" << endl; cin >> cyfra; while( cin.fail() ) { cin.clear(); cin.ignore( 50, '\n' ); cout << "Liczba musi byc liczba calkowita:\nWprowadz ponownie liczbe:" << endl; cin >> cyfra; } suma = liczba * cyfra; good = cin.good(); bad = cin.bad(); cin.clear(); cin.sync(); } if( suma < 100 ) { cout << "Suma dwoch liczb ktore podales nie przekracza 100" << endl; cout << "Wynik mnozenia tych dwoch liczb wynosi : " << suma << endl; cout << "Znakomicie" << endl; cout << "Chcesz kontynuowac (t/n)" << endl; cin >> wybor; if( wybor != 'n' ) { cout << "Wybrales kontynuacje programu" << endl; Sleep( 2000 ); continue; } else( wybor == 'n' ); cout << "Wybrales zakonczenie programu" << endl; break; } else { cout << "Suma liczb przekracza 100" << endl; cout << "Wynik nie zostanie zwrocony" << endl; cout << "Sprobuj ponownie" << endl; Sleep( 2000 ); goto M; } } }
|
|
1 2 3 4 « 5 » 6 |