Problem z kompilacja

0

Witam kiedy kompiluje program:
[code]#include <iostream>
using namespace std;
double droga(double predkosc, double czas);
double predkosc(double droga, double czas);
double czas(double droga, double predkosc);
double predkosc, droga, czas;
int main()
{
const int i ;
cout<<"Witam w programie do obliczania predkosci, czasu i drogi!" <<endl;
<<"Funkcja do obliczania predkosci ma wartosc - 1" <<endl;
<<"Funkcja do obliczania drogi ma wartosc - 2" <<endl;
<<"Funkcja do obliczania czasu ma wartosc - 3" <<endl;
<<"Wybierz ktora funkcje chcesz obliczyc?: ";
cin>>i <<endl;
cout<<"Funkcja ktora wybrales/as ma wartosc " <<i <<endl;
if(i==1)
{
cout<<"Wiec robimy funkcje" <<i <<endl;
predkosc(droga, czas);
cout<<"To byla funckja obliczajaca predkosc!" <<endl;
}
else if(i==2)
{
cout<<"Wiec robimy funkcje" <<i <<endl;
droga(predkosc, czas);
cout<<"To byla funckja obliczajaca droge!" <<endl;
}
else if(i==3)
{
cout<<"Wiec robimy funkcje" <<i <<endl;
czas(droga, predkosc);
cout<<"To byla funckja obliczajaca czas!" <<endl;
}
else if(i!=1&&2&&3)
{
cout<<"Takiej funkcji nie ma!!!\n";
cout<<"Wlacz ponownie program!!!";
}
cout<<"Oferuje swoja pomoc programistyczna(C++) oraz graficzna(wektorowa), jezeli jestes zainteresowany\n pisz na "[email protected]"";
return i;
system("pause");
}
double droga(double predkosc, double czas)
{
cout<<"Dobrze wybrales funckje,\n nastepnie podaj rozmiary predkosci: ";
cin>>predkosc;
cout<<" oraz czasu: ";
cin>>czas;
droga=predkosc*czas;
cout<<"\nWedlug wzoru droga(?) = predkosc("<<predkosc<<")*czas("<<czas<<"), droga wynosi: "<<droga <<endl;
}
double predkosc(double droga, double czas)
{
cout<<"Dobrze wybrales funckje,\n nastepnie podaj rozmiary drogi: ";
cin>>droga;
cout<<" oraz czasu: ";
cin>>czas;
predkosc=droga/czas;
cout<<"\nWedlug wzoru predkosc(?) = droga("<<droga<<")/czas("<<czas<<"), droga wynosi: "<<predkosc <<endl;
}
double czas(double droga, double predkosc)
{
cout<<"Dobrze wybrales funckje,\n nastepnie podaj rozmiary predkosci: ";
cin>>predkosc;
cout<<" oraz drogi: ";
cin>>droga;
czas=droga/predkosc;
cout<<"\nWedlug wzoru czas(?) = droga("<<droga<<")/predkosc("<<predkosc<<"), droga wynosi: "<<droga<<endl;
}
[/code]

Wyskakuja mi takie bledy o co w nich chodzi probowalem juz u kolegi ktory ponoc dobrze ogarnia C++ ale nic z tego:
[code] while trying to match the argument list '(std::istream, const int)'
1>c:\users\michał\desktop\test\source.cpp(20): error C2664: 'predkosc' : cannot convert parameter 1 from 'double (__cdecl *)(double,double)' to 'double'
1> Context does not allow for disambiguation of overloaded function
1>c:\users\michał\desktop\test\source.cpp(26): error C2664: 'droga' : cannot convert parameter 1 from 'double (__cdecl *)(double,double)' to 'double'
1>c:\users\michał\desktop\test\source.cpp(32): error C2664: 'czas' : cannot convert parameter 1 from 'double (__cdecl *)(double,double)' to 'double'
1>c:\users\michał\desktop\test\source.cpp(50): error C2659: '=' : function as left operand
1>c:\users\michał\desktop\test\source.cpp(59): error C2659: '=' : function as left operand
1>c:\users\michał\desktop\test\source.cpp(68): error C2659: '=' : function as left operand
1>
1>Build FAILED.
1>
1>Time Elapsed 0001.72
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
[/code]

0

Masz kolizje nazw.
droga to zmienna czy funkcja?

0

sluchaj kolezka powiedzial zebym przed funkcja int main() zadeklarowal 3 zmienne wiec tak zrobilem bo przed tym kompilator pokazywal mi o 3 bledy wiecej ps. korzystam z MSV 2011

0

Masz kolizję nazw. Zmienna droga nazywa się tak samo jak funkcja droga(). I kompilator nie wie co zrobić miejscami.

0

dobra usunalem to z programu i nadal to samo dlaczego ?

0

Ten program w ogóle jest bez sensu. Tutaj w co drugiej linijce jest błąd. Wywal i napisz od nowa.

0

Błąd jest m. in. tutaj :

 
double droga(double predkosc, double czas);
double predkosc(double droga, double czas);
double czas(double droga, double predkosc);
double predkosc, droga, czas;

Inaczej nazwij zmienne, albo funkcje...
W ogóle pełno błędów w tym programie...

Tak na szybko poprawione, ale sprawdź :

 
#include <iostream>
using namespace std;

int main()
{
        short int i = 0; // zmienna sterujaca
         // w tych zmiennych bedziemy przechowywac wyniki poszczegolnych obliczen
	double predkosc_wynik;
	double droga_wynik;
	double czas_wynik;
        // w tych kolejnych 3 zmiennych bedziemy przechowywac dane wprowadzone przez uzytkownika, z klawiatury
	double predkosc_dane_klawiatury = 0;
	double droga_dane_z_klawiatury = 0;
	double czas_dane_z_kawiatury = 0;
        // menu
        cout<< "Witam w programie do obliczania predkosci, czasu i drogi!" <<endl;
        cout <<"Funkcja do obliczania predkosci ma wartosc - 1" <<endl;
        cout <<"Funkcja do obliczania drogi ma wartosc - 2" <<endl;
        cout <<"Funkcja do obliczania czasu ma wartosc - 3" <<endl;
        cout <<"Wybierz ktora funkcje chcesz obliczyc? : ";
        cin>>i; 
	cout<< endl;
        cout<<"Funkcja ktora wybrales/as ma wartosc " << i <<endl;
                if(i==1)
                {
                        cout<<"Wiec robimy funkcje " << i <<endl;
			cout << "Podaj droge : " << endl;
			cin >> droga_dane_z_klawiatury;
			cout << "Podaj czas : " << endl;
			cin >> czas_dane_z_kawiatury;
			predkosc_wynik = predkosc(droga_dane_z_klawiatury, czas_dane_z_kawiatury);
			cout << "Predkosc (wg wzoru to predkosc=droga/czas) = " << predkosc_wynik  << endl;
                        cout<<"To byla funckja obliczajaca predkosc!" <<endl;
                }
                else if(i==2)
                {
                        cout<<"Wiec robimy funkcje " << i <<endl;
			cout << "Podaj predkosc : " << endl;
			cin >> predkosc_dane_klawiatury;
			cout << "Podaj czas: " << endl;
			cin >> czas_dane_z_kawiatury;
			droga_wynik = droga(predkosc_dane_klawiatury, czas_dane_z_kawiatury);
			cout << "Droga (wg wzoru droga=predkosc*czas) to :  " << droga_wynik  << endl;
			cout <<"To byla funkcja obliczajaca droge!" <<endl;
                }
                else if(i==3)
                {
                        cout<<"Wiec robimy funkcje " << i <<endl;
			cout << "Podaj droge : " << endl;
			cin >> droga_dane_z_klawiatury;
			cout << "Podaj predkosc : " << endl;
			cin >> predkosc_dane_klawiatury;
			czas_wynik = czas(droga_dane_z_klawiatury, predkosc_dane_klawiatury);
			cout << "Czas (wg wzoru czas=droga/predkosc) to : " << czas_wynik << endl;
                        cout<<"To byla funckja obliczajaca czas!" <<endl;
                }
        else 
        if(i!=1&&2&&3)
        {
                        cout<<"Takiej funkcji nie ma!!!\n";
                        cout<<"Wlacz ponownie program!!!";
						return -1; // zwrocenie do systemu operacyjnego kodu sterujacego -1 (czyli blad)
        }
	cout << endl;
	cout << "===================================================================================================";
        cout<<"Oferuje swoja pomoc programistyczna(C++) oraz graficzna(wektorowa), jezeli jestes zainteresowany\n pisz na \"[email protected]\"";
        cout << endl;
	system("pause");
	return 0; // koniec programu 0=OK
}
// nasze funkcje wykonujace obliczenia
double droga(double predkosc, double czas)
{
        //wzor droga=predkosc*czas;
        return predkosc*czas;
}

double predkosc(double droga, double czas)
{
	  //wzor predkosc=droga/czas;
        return droga/czas;

}

double czas(double droga, double predkosc)
{
        //wzor czas=droga/predkosc;
        return droga/predkosc;
}
 



1 użytkowników online, w tym zalogowanych: 0, gości: 1