Rozdział 15 . Zadanie pierwsze z pracy domowej
Ostatnio zmodyfikowano 2013-09-28 09:40
HiusVonBetton Temat założony przez niniejszego użytkownika |
Rozdział 15 . Zadanie pierwsze z pracy domowej » 2013-09-27 18:30:11 Witam. Mam pytanie czy w zadaniu : Napisz program, który wczyta liczbę, a następnie wypisze ją na ekranie. Zabezpiecz przed wczytaniem nieprawidłowej liczby. Wykorzystaj do tego celu wiedzę z jednego z poprzednich rozdziałów. Sposób działania programu: 1. Podaj liczbę 2. Jeżeli błąd, wróć do kroku 1. 3. Wypisz liczbę, która została podana. Można użyć instrukcji warunkowej " if ... else ", ponieważ w pierwszej kolejności to właśnie ta metoda jako pierwsza nasunęła mi się na myśl, lecz nie potrafię stworzyć kodu, który kończy pętlę, kiedy wybrana przeze mnie liczba zostaje wpisana. Nie mogłem sobie z tym poradzić , dlatego też przeszukałem forum i znalazłem ten kod : #include <iostream> using namespace std; int main() { double liczba; do { cin.clear(); cin.sync(); cout << "Podaj liczbe." << endl; cin >> liczba; } while( !cin.good() ); cout << "Podales liczbe: " << liczba << endl; cout << "Koniec"; return 0; }
który mi się nie spodobał i nie zadowolił mnie, ponieważ chcę, aby pętla kończyła się tylko i wyłącznie kiedy wpisana przeze mnie liczba będzie równa np. 3 Myślę, że potrafiłbym napisać kod wykorzystujący "if...else", lecz niestety niemożliwym jest wtedy użycie, równocześnie pętli, dlatego , proszę Was , o podanie mi pomysłu, bądź gotowego kodu wykorzystującego "if...else" oraz petle. Z góry dziękuję Szymon |
|
pekfos |
» 2013-09-27 19:11:15 Możesz rozwinąć warunek pętli. |
|
Nekronomik |
» 2013-09-27 19:24:33 Tu masz przykład, tyle że na pętli for: #include <iostream> using namespace std; int main() { int x; int y; cout << "podaj liczbe" << endl; cin >> x; for(;; ) { cout << "podaj ponownie ta sama liczbe" << endl; cin >> y; if( y == x ) { break; } else { cout << "zla liczba" << endl; } } cout << "Podales liczbe: " << x << endl; cout << "Koniec"; return 0; }
|
|
Buby |
» 2013-09-27 21:11:17 Kolega prosił o pętlę do => while. Oto ona - zmodyfikowałem twój program ;) P.s starczyło troszkę pogłówkować. #include <iostream> int main() { double liczba; do { std::cin.clear(); std::cin.sync(); std::cout << "Podaj liczbe." << std::endl; std::cin >> liczba; } while( liczba != 3 ); std::cout << "Podales liczbe: " << liczba << std::endl; std::cout << "Koniec"; return 0; } P.S Przepraszam, ale nie wiem jak formatować tu tekst - to mój pierwszy post, na tym forum. |
|
HiusVonBetton Temat założony przez niniejszego użytkownika |
» 2013-09-28 09:40:26 Dźieki, myślę, że najbliżej tego co chciałem osiągnąć był kolega Nekronomik, lecz ja chciałem użyć pętli do...while, do tego myślałem, że dam radę to zrobić na jednej niewiadomej, bez potrzeby używania dodatkowej "y", lecz tak na prawdę, to rozwiązanie Buby'iego spodobało mi się najbardziej, ponieważ właśnie to chciałem osiągnąć, tyle, że kod ten jest bez if...else, co chyba jednak nie da się połączyć z pętlą do...while.
Dziękuję za pomoc temat do zamknięcia |
|
« 1 » |