Filar Społeczności Chell Opublikowano 10 Października 2016 Filar Społeczności Udostępnij Opublikowano 10 Października 2016 elo, w ponizszym kodzie kompilator wyrzuca mi ze 'plus' undeclared (first use this fuction). co jest? #include <iostream> #include <conio.h> #include <math.h> using namespace std; double plus(int x) { double xx; bool znak; while (znak==false) { switch (x) { case 1: cout << "Wprowadz dlugosc pierwszego boku: "; break; case 2: cout << "Wprowadz dlugosc drugiego boku: "; break; case 3: cout << "Wprowadz dlugosc trzeciego boku: "; break; case 4: cout << "Wprowadz dlugosc pierwszej przekatnej: "; break; case 5: cout << "Wprowadz dlugosc drugiej przekatnej: "; break; case 6: cout << "Wprowadz wielkosc kata miedzy przekatnymi: "; break; case 7: cout << "Wprowadz dlugosc boku: "; break; case 8: cout << "Wprowadz dlugosc promienia: "; break; } cin >> xx; if (xx>0) znak==true; else cout << "Wprowadz dodatnia wartosc."; } znak=false; return xx; } void drugie() { int katy,figura; double a,b,c; cout << "Ile katow ma interesujaca Cie figura? (3+): "; cin >> katy; switch (katy) { case 3: { a=plus(1); b=plus(2); c=plus(3); d=(a+b+c)/2; cout << "Pole trojkatu o bokach dlugosci " << a << ", " << b << " i " << c << " wynosi " << sqrt(d*(d-a)*(d-b)*(d-c)); } break; case 4: { a=plus(4); b=plus(5); c=plus(6); cout << "Pole czworokatu o przekatnych " << a << " i " << b << " oraz kacia miedzy przekatnymi " << c << " wynosi " << a*b/2*(c*180/M_PI); } break; default: { a=plus(7); b=plus(8); cout << "Pole " << katy << "-katnej figury o dlugosci boku " << a << " i promieniu " << b << " wynosi " << katy/2*a*b; } } } int main() { //pierwsze(); //getch(); //cout << endl; drugie(); getch(); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 10 Października 2016 Udostępnij Opublikowano 10 Października 2016 Zamień if (xx>0) znak==true; na if (xx>0) znak=true; i w void drugie() { int katy,figura; double a,b,c; // <<<< tutaj cout << "Ile katow ma interesujaca Cie figura? (3+): "; cin >> katy; zapomniałeś zadeklarować zmiennej 'd' Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Chell Opublikowano 11 Października 2016 Autor Filar Społeczności Udostępnij Opublikowano 11 Października 2016 fakt, poprawione, ale wciąż plus undeclared Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
tramur Opublikowano 11 Października 2016 Udostępnij Opublikowano 11 Października 2016 fakt, poprawione, ale wciąż plus undeclared Słowo "plus" jest zarezerwowane dla funkcji biblioteki STL (std::plus). Czyli masz dwie opcje: zmienić nazwę funkcji plus na jakąś inną, wyrzucić globalne using namespace std i wypisywać liczbę przez std::cout zamiast samego cout, wyrzucić globalne using namespace std i wstawić using std::cout, using std::cin i using std::endl. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Chell Opublikowano 11 Października 2016 Autor Filar Społeczności Udostępnij Opublikowano 11 Października 2016 ślicznie dziękuję! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 17 Listopada 2016 Udostępnij Opublikowano 17 Listopada 2016 Trochę stary temat, ale myślę że się przyda czytającym w przyszłości: double plus(int x) { double xx; bool znak; while (znak==false) { deklarujesz zmienne bez inicjalizacji. To znaczy że w tym momencie są tam śmieci. Następnie masz pętle while sprawdzającą czy znak==false. Skoro jednak tam jest śmieć to może się zdarzyć że zmienna od razu będzie ustawiona na true i while się nigdy nie wykona. Jeśli tak się stanie to przejdzie od razu do return xx; Ale w xx tez jest śmieć więc zwrócisz śmieciowa wartość, która może być ujemna chociaż w pętli masz warunki mające wykluczyć taką możliwość. W ten sposób otrzymujesz bugi które ciężko znaleźć bo raz się reprodukują a raz nie. W nieprzyjemnych przypadkach u ciebie zawsze będzie działać a przestanie np dopiero po przeniesieniu na inny komputer. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się