IPB

Witaj Gościu ( Zaloguj | Rejestruj )

 
Reply to this topicStart new topic
funkcja undeclared
Chell
post 10.10.2016 - 18:47
Post #1


Mały samoprzylepny lemur
********

Wiek: 18 lat
Grupa: Użytkownicy
Postów: 1,323
Dołączył: 18.05.2011
Skąd: Kostrzyn / Poznań
Team: Yes

4tk

Uploader
Ostrzeżenia:
(0%) -----


elo, w ponizszym kodzie kompilator wyrzuca mi ze 'plus' undeclared (first use this fuction). co jest?
KOD
#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();
}


--------------------

JEŚLI WIDZISZ GRĘ TO WIEDZ ŻE TRWAŁA ONA DUŻO CZASU!!
Go to the top of the page
 
+Quote Post
post 10.10.2016 - 18:47
Post #





Wiek:



Uploader


Pani kontekstowa pokazuje swe wdzięki tylko w Valhalli lub wszędzie jeżeli nie jesteś zalogowany(a)! :3
Go to the top of the page
 
Quote Post
ediepl
post 10.10.2016 - 19:05
Post #2


Master of Forums
*********

Wiek: 21 lat
Grupa: Użytkownicy
Postów: 1,635
Dołączył: 21.01.2011
Skąd: Swarzędz

ediepl


Nagrody:
Najlepszy Silnik (CA 2012)

Uploader
Ostrzeżenia:
(0%) -----


Zamień
KOD
if (xx>0) znak==true;

na
KOD
if (xx>0) znak=true;


i w
KOD
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'
Go to the top of the page
 
+Quote Post
Chell
post 11.10.2016 - 7:30
Post #3


Mały samoprzylepny lemur
********

Wiek: 18 lat
Grupa: Użytkownicy
Postów: 1,323
Dołączył: 18.05.2011
Skąd: Kostrzyn / Poznań
Team: Yes

4tk

Uploader
Ostrzeżenia:
(0%) -----


fakt, poprawione, ale wciąż plus undeclared


--------------------

JEŚLI WIDZISZ GRĘ TO WIEDZ ŻE TRWAŁA ONA DUŻO CZASU!!
Go to the top of the page
 
+Quote Post
tramur
post 11.10.2016 - 8:59
Post #4


Chicken


Wiek: ?
Grupa: Użytkownicy
Postów: 46
Dołączył: 2.11.2011
Uploader
Ostrzeżenia:
(0%) -----


CYTAT(Chell @ 11.10.2016 - 8:30) *
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.


--------------------
Go to the top of the page
 
+Quote Post
Chell
post 11.10.2016 - 14:12
Post #5


Mały samoprzylepny lemur
********

Wiek: 18 lat
Grupa: Użytkownicy
Postów: 1,323
Dołączył: 18.05.2011
Skąd: Kostrzyn / Poznań
Team: Yes

4tk

Uploader
Ostrzeżenia:
(0%) -----


ślicznie dziękuję!


--------------------

JEŚLI WIDZISZ GRĘ TO WIEDZ ŻE TRWAŁA ONA DUŻO CZASU!!
Go to the top of the page
 
+Quote Post
Danielus
post 17.11.2016 - 11:30
Post #6


Forum Veteran
*****

Wiek: 24 lata
Grupa: Użytkownicy
Postów: 390
Dołączył: 1.07.2006
Skąd: Zakopane/Kraków
Uploader
Ostrzeżenia:
(0%) -----


Trochę stary temat, ale myślę że się przyda czytającym w przyszłości:

KOD
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.


--------------------
Warn nr 1(13.08.2009):
CYTAT

Za duża sygna. Warn.
Platyna

Etoro-Kopiuj najlepszych na rynku forex
skype: Arrekinpl
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 użytkownik(ów) przegląda ten temat (1 gości i 0 anonimowych użytkowników)
0 Użytkownicy:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2017 - 5:44