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

Kalkulator - problem z kompilacją (kompilator wykrył blędy)

Ostatnio zmodyfikowano 2012-06-20 16:33
Autor Wiadomość
Berux
Temat założony przez niniejszego użytkownika
Kalkulator - problem z kompilacją (kompilator wykrył blędy)
» 2012-06-20 14:06:39
Zacząłem pisać kalkulator. Ledwo napisałem funkcję 'dodawanie'. skompilowałem i błąd.


C/C++
#include <iostream>
#include <cstdlib>
#include <math.h>

using namespace std;

void dodawanie()
{
    float czynnik1, czynnik2;
   
    do
    {
        cout << "Podaj pierwszy czynnik: ";
       
        cin.clear();
        cin.sync();
        cin >> czynnik1;
       
        cout << "Podaj drugi czynnik: ";
        cin.clear();
        cin.sync();
        cin >> czynnik2;
       
        if( cin.good == false )
        {
            cout << "Nie podales liczby!" << endl << endl;
        }
       
        if( czynnik1 != 0 && !( cin.good == false ) || czynnik1 == 0 && !( cin.good == false ) || czynnik2 != 0 && !( cin.good == false ) || czynnik2 == 0 && !( cin.good == false ) )
        {
            cout << czynnik1 << " + " << czynnik2 << " = " << czynnik1 + czynnik2 << endl << endl;
        }
       
    } while( cin.good == false );
   
}

int main()
{
    dodawanie();
    return 0;
}

Bląd:

Compiling: C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp
C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp: In function 'void dodawanie()':
C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp:24: error: invalid use of member (did you forget the '&' ?)
C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp:29: error: invalid use of member (did you forget the '&' ?)
C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp:29: error: invalid use of member (did you forget the '&' ?)
C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp:29: error: invalid use of member (did you forget the '&' ?)
C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp:29: error: invalid use of member (did you forget the '&' ?)
C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp:34: error: invalid use of member (did you forget the '&' ?)
Process terminated with status 1 (0 minutes, 0 seconds)
6 errors, 0 warnings
 Proszę o pomoc. 
P-58747
Vallher
» 2012-06-20 14:12:56
Nie cin.good, a cin.good().
P-58749
Berux
Temat założony przez niniejszego użytkownika
» 2012-06-20 14:15:21
Dzięki, nie zauważyłem.
P-58750
Berux
Temat założony przez niniejszego użytkownika
» 2012-06-20 14:59:19
mam jeszcze jeden problem z kalkulatorem
gdy po wpisaniu najpierw np.s, to pisze że to nie liczba ale do s przypisuje 0 i robi dzialanie z zerem, a gdy dwa razy wpisze się np.s, to nic nie wypisuje tylko od nowa zaczyna program

kod:

C/C++
#include <iostream>
#include <cstdlib>
#include <math.h>

using namespace std;

void dodawanie()
{
    float czynnik1, czynnik2;
   
    do
    {
        cout << "Podaj pierwszy czynnik: ";
       
        cin.clear();
        cin.sync();
        cin >> czynnik1;
       
        cout << "Podaj drugi czynnik: ";
        cin.clear();
        cin.sync();
        cin >> czynnik2;
       
        if( czynnik1 == cin.good() == false || czynnik2 == cin.good() == false || czynnik1 == cin.good() == false && czynnik2 == cin.good() == false )
        {
            cout << "Nie podales liczby!" << endl << endl;
        }
       
        if( czynnik1 != 0 && !( cin.good() == false ) || czynnik1 == 0 && !( cin.good() == false ) || czynnik2 != 0 && !( cin.good() == false ) || czynnik2 == 0 && !( cin.good() == false ) )
        {
            cout << czynnik1 << " + " << czynnik2 << " = " << czynnik1 + czynnik2 << endl << endl;
        }
       
    } while( cin.good() == false );
   
}


Proszę o pomoc.
P-58753
Vallher
» 2012-06-20 15:04:07
Bo te pętle if są bez sensu : D

Albo odrazu po wprowadzeniu zmiennej sprawdzaj czy dobrze to zrobiłeś, a jak chcesz sprawdzać przed wykonaniem działania to musisz utworzyć dodatkową zmienna bool, która będzie pamiętać czy 1 liczba tez była dobrze wczytana.
P-58755
Berux
Temat założony przez niniejszego użytkownika
» 2012-06-20 15:26:30
A do zmiennej bool to jak to zapisać?
P-58757
Vallher
» 2012-06-20 15:32:06
no to tworzysz 2 zmienne
bool a, b;

a później w programie:

 
C/C++
cin.clear();
cin.sync();
cin >> czynnik1;
a = cin.good();

cout << "Podaj drugi czynnik: ";
cin.clear();
cin.sync();
cin >> czynnik2;
b = cin.good();
i warunek pętli 
( a && b )
 zapewnia, że obie zmienne są poprawnie wczytane.
P-58758
Berux
Temat założony przez niniejszego użytkownika
» 2012-06-20 15:41:33
Dobra, tylko jak mam napisać w tym kodzie:

C/C++
if( czynnik1 != 0 && !( cin.good() == false ) || czynnik1 == 0 && !( cin.good() == false ) || czynnik2 != 0 && !( cin.good() == false ) || czynnik2 == 0 && !( cin.good() == false ) )
{
    cout << czynnik1 << " + " << czynnik2 << " = " << czynnik1 + czynnik2 << endl << endl;
}
żeby nic nie obliczało jak a lub b lub obie zmienne będą równe false?
P-58760
« 1 » 2
  Strona 1 z 2 Następna strona