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

rozdzial 15 kalkulator

Ostatnio zmodyfikowano 2012-08-28 16:42
Autor Wiadomość
manhatan
Temat założony przez niniejszego użytkownika
rozdzial 15 kalkulator
» 2012-07-25 18:39:00
C/C++
#include <iostream>
using namespace std;
int main()

{
    long double liczba1, liczba2;
    float wynik = 0;
    bool x;
    int menu;
    do
    {
        cout << "wynik = " << wynik << endl;
        if( x == 1 || liczba1 != 0 )
             cout << "podaj liczbe 1: " << endl;
       
        cin >> liczba1;
        cin.clear();
        cin.sync();
        x = cin.good();
        if( x != 1 || liczba1 == 0 )
             cout << "podales zla liczba, jeszcze raz" << endl;
       
    } while( x != 1 || liczba1 == 0 );
   
    cout << "podaj liczbe druga: " << endl;
    cin >> liczba2;
   
    if( liczba1 != 0 );
   
    cout << "dzialania do wyboru:" << endl;
    cout << "[1]dodawanie\n [2]odejmowanie\n [3]mnozenie\n [4]dzielenie\n [5]rezygnuj\n" << endl;
    cin >> menu;
   
   
    switch( menu )
    {
    case 1:
        wynik = liczba1 + liczba2;
        cout << "liczba1+liczba2= " << wynik << endl;
        break;
       
    case 2:
        wynik = liczba1 - liczba2;
        cout << "liczba1-liczba2= " << wynik << endl;
        break;
       
    case 3:
        wynik = liczba1 * liczba2;
        cout << "liczba1 * liczba2= " << wynik << endl;
        break;
       
    case 4:
        wynik = liczba1 / liczba2;
        cout << "liczba1 / liczba2= " << wynik << endl;
        break;
    case 5:
        cout << "podaj  " << endl;
        break;
    default:
        cout << " wybierz dzialanie: " << endl;
        cin >> menu;
       
    }
   
    return 0;
}


mam problem z jedną rzeczą. jak mam zrobić by w klamrze switch wybierajac liczbe inna niz od 1 do 5 dzialanie wybierania sie powtarzalo.
P-61104
SeaMonster131
» 2012-07-25 18:46:01
if( liczba1 != 0 );
 to Ci nic nie daje.

A co do problemu - zastosuj jakąś pętlę, np do{}while.
P-61106
manhatan
Temat założony przez niniejszego użytkownika
» 2012-07-25 19:23:58
mozna jakis konkretny przyklad?
P-61107
SeaMonster131
» 2012-07-25 19:24:49
Sam zastosowałeś taką pętlę w swoim kodzie.. ?
P-61108
manhatan
Temat założony przez niniejszego użytkownika
» 2012-07-25 19:34:19
probuje i nie wychodzi mi to zupelnie dlatego prosze o konkretny przyklad


P-61110
manhatan
Temat założony przez niniejszego użytkownika
» 2012-07-29 16:07:37
C/C++
#include <iostream>
using namespace std;
int main()
{
    float wynik;
    wynik = 0;
    int a, b, dzialanie;
   
    cout << "obecny wynik to: " << wynik << endl;
   
    cout << "podaj liczbe a: " << endl;
    cin >> a;
    if( a != 0 )
    {
        cout << "podaj liczbe b: " << endl;
        cin >> b;
       
        if( b == 0 )
        { cout << "bledna liczba, koniec programu." << endl;
        }
        if( b != 0 )
        {
           
            cout << "[1]dodawanie \n"
            "[2]odejmowanie \n"
            "[3]mnozenie \n"
            "[4]dzielenie \n"
            "[5]rezygnuj \n" << endl;
            cout << "wybierz dzialanie: " << endl;
            cin >> dzialanie;
           
            do
            {
               
                switch( dzialanie )
                {
                case 1:
                    wynik = a + b;
                    cout << "a+b= " << wynik << endl;
                    break;
                   
                case 2:
                    wynik = a - b;
                    cout << "a-b= " << wynik << endl;
                    break;
                   
                case 3:
                    wynik = a * b;
                    cout << "a*b= " << wynik << endl;
                    break;
                   
                case 4:
                    wynik = a / b;
                    cout << "a/b= " << wynik << endl;
                    break;
                   
                case 5:
                    cout << "do zobaczenia." << endl;
                    break;
                   
                default:
                    cout << "bledny numer" << endl;
                    cout << "podaj numer dzialania" << endl;
                    cin >> dzialanie;
                }
            } while( dzialanie > 5 );
           
        }
       
    }
   
    if( a == 0 )
         cout << "bledna liczba, koniec programu." << endl;
   
    return 0;
}

ponawiam pytanie, w ktorym miejscu trzeba umiescic klamre do while zeby po wybraniu niewlasciwego case'a na nowo moc wybrac numer dzialania...
P-61381
BialyQ
» 2012-08-27 23:54:13
Witaj :) Sam się uczę od niedawna c++ . Jestem przy lekcji 19, ale ten kalkulator z lekcji 15 nie sprawił mi problemu ;)
Podaje Ci kod i przeanalizuj go. Może Ci pomoże ;)
C/C++
#include <iostream>
int main()
{
   
    int liczba;
    float a;
    float b;
    std::cout << "********************************************************************************";
    std::cout << "Kalkulator V 1.0 by BialyQ. Wszystkie prawa zastrzezone ! :):):):):):):):):):):)";
    std::cout << "********************************************************************************";
    std::cout << "Wybierz jakie dzialanie chcesz przeprowadzic, wpisujac i zatwierdzajac liczbe z nawiasu [...]" << std::endl;
    std::cout << "--------------------------------------------------------------------------------" << std::endl;
    std::cout << "*****************" << std::endl;
    std::cout << "*[1] Dodawanie  *" << std::endl;
    std::cout << "*[2] Odejmowanie*" << std::endl;
    std::cout << "*[3] Mnozenie   *" << std::endl;
    std::cout << "*[4] Dzielenie  *" << std::endl;
    std::cout << "*[5] Wyjscie    *" << std::endl;
    std::cout << "*****************" << std::endl;
    do
    {
       
       
        std::cin >> liczba;
        if( liczba < 5 && liczba > 0 )
        {
            std::cout << "Wpisz liczbe #1" << std::endl;
            std::cin >> a;
            std::cout << "Wpisz liczbe #2" << std::endl;
            std::cin >> b;
        }
        else
             std::cout << "Kategoria oznaczona cyfra " << liczba << " nie istnieje !" << std::endl;
       
        switch( liczba )
        {
        case 1:
            std::cout << "Wynik: " << a + b << std::endl << std::endl;
            break;
        case 2:
            std::cout << "Wynik: " << a - b << std::endl << std::endl;
            break;
        case 3:
            std::cout << "Wynik: " << a * b << std::endl << std::endl;
            break;
        case 4:
            std::cout << "Wynik: " << a / b << std::endl << std::endl;
            break;
        }
        std::cout << "----------------------------------------------------" << std::endl;
        std::cout << "Wykonaj kolejne dzialanie wpisujac liczbe od 1 do 4:" << std::endl;
       
    } while( liczba != 5 );
   
    return 0;
}
@Down. Dzięki za kod :)
P-63831
Chris4132
» 2012-08-28 10:08:48
manhatan, w warunek kończący pętle wpisz
while( dzialanie != 5 )
, a żeby znów wczytać case na początku pętli wpisz
std::cin >> dzialanie
 i będzie ok :) Nie zapomnij o średnikach! :) Jeśli dobrze rozumiem o co ci chodzi to powinno rozwiązać wszystkie twoje problemy. Jak chcesz wyświetlić menu ponownie, za każdym razem powtarzania pętli to wpisz pod
do
 twój kod wyświetlający menu :) Ale to powinieneś wiedzieć. :)

BialyQ nie pisz {code} tylko {cpp} kod {/cpp} zamiast {} pisz [] :)
P-63846
« 1 » 2
  Strona 1 z 2 Następna strona