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

Rozdział 15 (do..while) - kalkulator.

Ostatnio zmodyfikowano 2016-01-02 20:26
Autor Wiadomość
Kano1337
Temat założony przez niniejszego użytkownika
Rozdział 15 (do..while) - kalkulator.
» 2015-12-30 15:25:28
Witajcie
Parę dni temu zacząłem tutejszy kurs C++ i dotarłem do rozdziału 15, w którym jako jedno z zadań domowych miałem napisać kalkulator.

Oto mój wytwór:

C/C++
#include <iostream>

using namespace std;

int main()
{
    int dzialanie;
    float wynik = 2, liczba;
   
    do {
        cout << " Obecny wynik = " << wynik << endl;
        cout << "Podaj liczbe : ";
        cin.clear();
        cin.sync();
        cin >> liczba;
       
        if( liczba != 0 )
        {
            wybordzialania:
            cout << "Wybierz dzialanie: " << endl;
            cout << " [1] Dodawanie " << endl;
            cout << " [2] Odejmowanie" << endl;
            cout << " [3] Mnozenie" << endl;
            cout << " [4] Dzielenie" << endl;
            cout << " [5] Rezygnuj" << endl;
            cin.clear();
            cin.sync();
            cin >> dzialanie;
           
            switch( dzialanie )
            {
               
            case 1:
                cout << "Wynik dodawania =  " << wynik + liczba << endl;
                break;
               
            case 2:
                cout << "Wynik odejmowania = " << wynik - liczba << endl;
                break;
               
            case 3:
                cout << "Wynik mnozenia = " << wynik * liczba << endl;
                break;
               
            case 4:
                cout << "Wynik dzielenia = " << wynik / liczba << endl;
                break;
               
            case 5:
                return 0;
                break;
               
            default:
                cout << "Nie ma takiego dzialania !";
                goto wybordzialania;
               
            }
        }
       
        else
             cout << "Podales niedozwolony znak" << endl;
       
    } while( liczba != 0 );
   
    return 0;
}

Program działa jak powinien, jednak czy moglibyście rzucić okiem i ocenić poprawność zapisów ? Chciałbym wiedzieć co robię źle już na początku swojej przygody z programowaniem, żeby nie wyrobić sobie potem złych nawyków.
Najbardziej zastanawia mnie kwestia użycia instrukcji goto którą poznałem poza kursem - niektórzy piszą żeby tego nie używać.Co o tym sądzicie, może tak być czy powinienem użyć czegoś innego ?
P-142590
Razner
» 2015-12-30 16:40:47
W sumie by ominąć goto mógłbyś dać w default liczba=0 Tak to nie widzę żadnych niepotrzebnych rzeczy. :)
P-142594
czareekk
Nie kumam
» 2016-01-02 20:09:41
" wybordzialania: " musi być wcześniej zdefiniowany w source.h czy coś? Bo nie kumam co to.

Dobra zrozumiałem - moje pytanie było bardzo głupie :/ Nevermind.
P-142723
carlosmay
» 2016-01-02 20:26:27
Zamiast goto można tak zarządzać zmiennymi i używać je w warunkach pętli, aby wracały do początku w określonych sytuacjach.
goto w kodzie kilku liniowym łatwo zauważyć, ale w długim kodzie wprowadza zamęt.
Poza tym warto identyfikator powrotu wysunąć maksymalnie do lewej strony, aby nie ginął w gąszczu kodu.

Zamiast goto pętle. Narzędzie wymyślono, bo czasem jest potrzebne, ale warto traktować je jako ostateczność.

" wybordzialania: " musi być wcześniej zdefiniowany w source.h czy coś? 
 Najlepiej jak wcale go nie będzie.
P-142728
« 1 »
  Strona 1 z 1