Zapętlanie w C++


(Kacperpinek) #1

Witam

Napisałem taki oto program :slight_smile:

#include 

#include 

#include 


using namespace std;


int main()

{

    cout << "Program pozwoli obliczyc pole nastepujacych figur:" << endl;

    cout << "1. Trojkat" << endl;

    cout << "2. Trapez" << endl;

    cout << "3. Rownoleglobok" << endl;


    int numer, a, b, h, pole;

    cin >> numer;

    switch (numer)

    {

        case 1:


            cout << "Podaj dlugosc podstawy 'a': " << endl;

            cin >> a;

            cout << "Podaj wysokosc 'h': " << endl;

            cin >> h;

            if (a>0 && h>0)

            {

                pole=(a*h)/2;

            cout << " Pole trojkata wynosi: "<
            }


            else

            {

                cout << "Podstawa/wysokosc nie moga byc ujemne" <
            }

            break;


             case 2:


            cout << "Podaj dlugosc podstawy 'a' : " << endl;

            cin >> a;

            cout << "Podaj dlugosc podstawy 'b' : " << endl;

            cin >> b;

            cout << "Podaj wysokosc 'h'" << endl;

            cin >> h;

            if (a>0 && b>0 && h>0)

            {

            pole=((a+b)*h)/2;

            cout << " Pole trapezu wynosi: "<
            }


            else

            {

                cout << "Podstawa/wysokosc nie moze byc ujemna" <
            }

            break;


             case 3:


             cout << "Podaj dlugosc podstawy 'a' : " << endl;

            cin >> a;

            cout << "Podaj wysokosc 'h' : " << endl;

            cin >> h;

            if (a>0 && h>0)

            {

            pole=a*h;

            cout << "Pole rownolegloboku wynosi: "<
            }

            else

            {

                cout<<"Podstawa/wysokosc nie moze byc ujemna" <
            }

            break;

            default:

            cout << " Menu zawiera tylko trzy pozycje, sprobuj ponownie" <

    }


    getch();

    return 0;

}

Teraz moje pytanie. Chcę zrobić coś takiego, że np gdy wybiorę z 'menu' pozycję 4 to wyświetli menu jeszcze raz :slight_smile: i przy tym wyświetli komunikat, że Został wybrany zły numer, a po wykonaniu programu prawidłowo było zapytanie Czy chcę zakończyć program, czy wrócić do menu i wybrać inną pozycję.

Z góry dziękuję za pomoc :slight_smile:


(Drobok) #2
do{

//kod

}while(numer!=4);

A do menu napisz 4-wyjście z programu :slight_smile: Proponuję również użyć:

system("cls");

Bowiem twój program jest mało czytelny :slight_smile:


(Kacperpinek) #3

nigdy nie używałem do...while. mógłbyś jaśniej objaśnić gdzie, co, jak ? :smiley:


(Szymon Katra) #4
do

{

}

while(warunek)

Czyli w tłumaczeniu na zrozumiały język

wykonuj to co w klamrach

{

  //kod

}

dopóki warunek jest spełniony

Ewentualnie możesz użyć

while(warunek)

{

 //kod

}

Różnica między pętlą do..while a while jest taka, że w do..while warunek jest sprawdzany na końcu, a w while na początku. Oznacza to, że kod do..while wykona się ZAWSZE przynajmniej raz.


(Kacperpinek) #5

nie działa :frowning:

Dobra, już działa :smiley: metodą prób i błędów doszedłem do tego co jest źle :smiley: Dzięki :slight_smile:


(Pablo_Wawa) #6

A może zamiast pisać program metodą "prób i błędów" najpierw poczytałbyś coś o programowaniu strukturalnym (w C++)? Tak na początek.


(Rolek0) #7

Polecam przeczytać dobry tutorial np. http://xion.org.pl/productions/texts/coding/megatutorial/ :slight_smile: