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

Projekt- Kalkulator

Ostatnio zmodyfikowano 2009-11-28 22:18
Autor Wiadomość
Elaine
» 2009-11-20 00:01:29
Skoro nie widzi definicji stringstreama, to dopisz
C/C++
#include <sstream>
P-11691
naiL
Temat założony przez niniejszego użytkownika
» 2009-11-20 00:11:59
*upokorzony*
dzięki, eh Macie Wasz Mości Wiele Cierpliwości.
135|error: no match for 'operator>>' in 'LiczbaA >> Liczba_A'|
||=== Build finished: 1 errors, 0 warnings ===|
znaczy sie działać działa tylko taką uwagę mi wyświetla. Może to ustawienia kompilatora?
P-11692
Elaine
» 2009-11-20 11:13:29
ISO/IEC 14882:2003, 5.8.1
(...)The operands shall be of integral or enumeration type and integral promotions are performed.(...)
Innymi słowy, nie możesz przesunąć bitowo double o double. Czy przypadkiem nie miałeś na myśli
backup >> Liczba_A;
?
P-11693
naiL
Temat założony przez niniejszego użytkownika
» 2009-11-21 19:49:34
hmm zawiłość przedstawionego rozwiązania sprawiła pewnie że nawet nie potrafiłem jej ze zrozumieniem przepisać na własne potrzeby. Faktycznie. :)
P-11714
naiL
Temat założony przez niniejszego użytkownika
» 2009-11-22 00:17:16
Próbuje i próbuje. Przygotowuję sobie klocki do tego kalkulatora ale..
Główna funkcja programu ma za zadanie wyłapać który klawisz został naciśnięty.
0-9 cyfry lub enter lub =/+-* 4xstrzałki c-clear wpisu ostatniego. Na próbę ostateczną bo już nie wiem na ile takich samych sposobów to samo napisałem :)
wciskam klawisz0-9->to cyfra. ok. kazdy wybor cyfry wywola zamiast cout << to cyfra... ten fragment kodu o którym mowa była wyżej (jako funkcja zwróci wartość Liczba_A(typu double) do funkcji mam przekazać klawisz. ale....
nie działa :)
wciskam cyfre.. ok. wciskam litere-> to cyfra? wciskam strzałke->to cyfra\n w lewo. No dobrze że nie w bok... dzień świra. Czy to urok getch()?? Jest to pewnikiem znowu jakiś trywiał. Proszę o podpowiedz. Niżej fragment kodu na próbę. (planuję by każdy if opisywał jakąś zmienną dla switcha.

C/C++
if( klawisz >= 48 || klawisz <= 57 ) wybor = 1;
// tu ify do klawisza dające wybor=...7
swich( wybor )
case 1
: liczba_A = wczytywanie_liczbyA( klawisz );
dalej na próbę wczytujący klawisze kod.

C/C++
int main()
{
    using namespace std;
    int klawisz;
   
    do {
        klawisz = getch();
        if( klawisz == 13 || klawisz == 61 ) cout << "\n enter lub = \n";
       
        if( klawisz >= 48 || klawisz <= 57 ) cout << "\n to cyfry\n ";
       
        if( klawisz == 43 ) cout << "\nplus \n";
       
        if( klawisz == 45 ) cout << "\nminus \n";
       
        if( klawisz == 47 ) cout << "\ndzielenie\n ";
       
        if( klawisz == 42 ) cout << "\nmnozeninne\n ";
       
        if( klawisz == 44 ) cout << "\nprzecinek\n";
       
        if( klawisz == 224 || klawisz == 0 )
       
        {
            klawisz = getch();
            if( klawisz == 80 ) cout << "\ndo dolu\n ";
           
            if( klawisz == 75 ) cout << "\nw lewo\n ";
           
            if( klawisz == 72 ) cout << "\ndo gory\n ";
           
            if( klawisz == 77 ) cout << "\n w prawo\n ";
           
        }
    } while( klawisz != 27 );
   
    cout << "wylazl\n";
   
    return( 0 );
}

dlaczego wcisniecie czegokolwiek poza ifami daje wynik inny niż poza klawisz=getch()?? i tak sie wydaje że trzeba go wciskać dwa razy... wstyT

P-11717
DejaVu
» 2009-11-22 06:05:32
Strzałki należą do klawiszy funkcyjnych i ich kod ASCII składa się z dwóch bajtów. Wydaje mi się, że opisałem to w kursie.
P-11721
naiL
Temat założony przez niniejszego użytkownika
» 2009-11-22 09:57:22
tak.
strzałki akurat  sciagnąłem z obsługi_kasjera. if(klawisz=224||...){;)
problem raczej mam z kodami zakresu 48-57.
C/C++
if( klawisz >= 48 || klawisz <= 57 ) cout << "to cyfra ";

jeżeli nacisnę literę, program pokazuje, że to cyfra. i nic.
Jeżeli nacisnę +(który też ma swój if) to cyfra dodawanie.
Cały kalkulator będzie sterowany kilkoma ifami i switchem.
0-9-wywołają funkcję w której kod opracowany jest pi razy oko wyżej. Funkcja zwraca wartość double do obliczeń. Zaznaczona jest flaga że cyfra została pomyślnie wprowadzona. Potem +/-/* itp np strzałkami wybieram jak _kasjer cos/sin/x^n. bo trudno to przypisać znakom.
Ale jak w tym fragmencie jak i w kodzie string->double kilka postów wcześniej coś się mimo dobrych chęci kiełbasi(nawet kaszani). tak jakby nie było warunku 48<=klawisz<=57<-taki skrót myślowy.
eH......
sory.
C/C++
teraz wchodzi.pewnie uczniowski b ł ą d.
if( klawisz >= 48->AND <- klawisz <= 57 ) cout << "to cyfra ";

po and&& działa poprawnie.. w sumie dlaczego miałby nie wczytywać innych wartości tym ifem :]sory.
P-11723
naiL
Temat założony przez niniejszego użytkownika
» 2009-11-28 21:42:47
P-11876
1 2 « 3 » 4
Poprzednia strona Strona 3 z 4 Następna strona