Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rozdział 15 . Zadanie pierwsze z pracy domowej

Ostatnio zmodyfikowano 2013-09-28 09:40
Autor Wiadomość
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 :

C/C++
#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



P-92741
pekfos
» 2013-09-27 19:11:15
Możesz rozwinąć warunek pętli.
P-92749
Nekronomik
» 2013-09-27 19:24:33
Tu masz przykład, tyle że na pętli for:
C/C++
#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;
}
P-92751
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ć.

C/C++
#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.
P-92760
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
P-92778
« 1 »
  Strona 1 z 1