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

[Code::Blocks] Praca Domowa.

Ostatnio zmodyfikowano 2013-01-31 20:49
Autor Wiadomość
Fresh
Temat założony przez niniejszego użytkownika
[Code::Blocks] Praca Domowa.
» 2013-01-31 17:53:02
Witam. Jestem przy pracy domowej z funkcji switch,case. Mam do zrobienia kalkulator obsługujący +,-,* oraz / dla dwóch liczb. Zrobiłem tak jak na razie ale dalej nie wiem co jest źle i jak prawidłowo to zadanie zrobić. Mógłby ktoś wytłumaczyć tak co jest źle,co trzeba poprawić i na co, tak żebym już rozumiał :D?
A tu moja praca :
C/C++
#include <iostream>
int main()
{
    int liczba1;
    std::cout << "Podaj liczbe pierwsza: " << std::endl;
    std::cin >> liczba1;
    char mojaZmienna;
    std::cout << "Podaj znak (+,-,*,/): " << std::endl;
    std::cin >> mojaZmienna;
    int liczba2;
    std::cout << "Podaj liczbe druga: " << std::endl;
    std::cin >> liczba2;
    int wynik1;
    int wynik2;
    int wynik3;
    int wynik4;
    switch( mojaZmienna )
    {
    case 1:
        char mojaZmienna;
        mojaZmienna = '+';
        wynik1 = liczba1 + liczba2;
        std::cout << "Wynik z dodawania to: " << mojaZmienna << wynik1 << std::endl;
        break;
    case 2:
        char mojaZmienna2;
        mojaZmienna = '-';
        wynik2 = liczba1 - liczba2;
        std::cout << "Wynik z odejmowania to: " << mojaZmienna << std::endl;
    case 3:
        char mojaZmienna3;
        mojaZmienna = '*';
        wynik3 = liczba1 * liczba2;
        std::cout << "Wynik z mnozenia to: " << mojaZmienna << std::endl;
        break;
    case 4:
        char mojaZmienna4;
        mojaZmienna = '/';
        wynik4 = liczba1 / liczba2;
        std::cout << "Wynik z dzielenia to: " << mojaZmienna << std::endl;
        break;
    }
    return 0;
}

@Edit
Dobra pozmieniałem trochę (edytowałem już na dobry)i działa. Lecz jak zrobić gdy po wpisaniu 1 liczby, znaku i 2 liczby wyświetlał się wynik ? Bo niestety się nie wyświetla -.-
P-75466
RazzorFlame
» 2013-01-31 18:00:19
PODSTAWY!
C/C++
char mojaZmienna;
mojaZmienna = '+';
Czemu cały czas tworzysz nowe zmienne "mojaZmienna"... Wywal te 2 operacje całkowicie (to co ci zacytowałem) i analogicznie z innymi operatorami arytmetycznymi -,*,/. I po co w switchu dajesz case '1'... Wywal to i napisz w case znak tzn. case '+' i analogicznie z innymi znakami.

Dam ci przykład i przeanalizuj go:
C/C++
//w funkcji main

int liczba1 = 0, liczba2 = 0, wynik = 0;
char oper = 0;

cout << "Podaj liczbe1: ";
cin >> liczba1;
cout << "Podaj znak: ";
cin >> oper;
cout << "Podaj liczbe2: ";
cin >> liczba2;

switch( oper )
{
   
    case '+' //wpisano '+'
    wynik = liczba1 + liczba2;
    cout << wynik << endl;
    break;
   
    //tutaj inne
   
default:
   
    cout << "Zly znak!" << endl;
   
}

return 0;

}
 
P-75468
Fresh
Temat założony przez niniejszego użytkownika
» 2013-01-31 18:06:06
Dobra, dzięki wielkie :D Działa ;) A jak zrobić że po podaniu wyniku,mogę liczyć dalej? Bo Wyliczy mi np 2+2, poda wynik i już tylko mogę wcisnąć klawisz do wyłączenia programu.
P-75471
RazzorFlame
» 2013-01-31 20:49:16
Boże. Przeczytaj jeszcze raz kurs. To tak jak byś sie pytał jak napisać kawałek kodu w c++ i gdzie go umieścić. Pomyśl. Jeśli nie wiesz to program wykonuje polecenia po kolei. Tak jak np napiszesz:
C/C++
cout << "Pierwszy tekst" << endl;
cout << "Drugi tekst" << endl;
to wiadomo że ciąg znaków "Pierwszy tekst" zostanie wyświetlony pierwszy. I nie dlatego że taki tekst się wyświetla bo gdyby miało takie polecenia:
C/C++
cout << "Drugi tekst" << endl;
cout << "Pierwszy tekst" << endl;
To "Drugi tekst" wyświetli się pierwszy. Więc pomyśl gdzie dodać kod żeby wykonywał się po obliczeniach. TROCHE MYŚLENIA LUDZIE!
P-75502
« 1 »
  Strona 1 z 1