Skocz do zawartości
Puchacz1

Pierwiastek Z ...

Rekomendowane odpowiedzi

więc tak część kody odpowiedzialna za obliczenia wygląda tak :

 

int main (){		 int x1;		 std::cout << " wprowadz wspolczynnik x ";		 std::cin >> x1;		 		 int y1;		 std::cout << " wprowadz wspolczynnik y ";		 std::cin >> y1;		 int x2;		 std::cout << " wprowadz wspolczynnik x ";		 std::cin >> x2;		 		 int y2;		 std::cout << " wprowadz wspolczynnik y ";		 std::cin >> y2;		 		 double pot;		 pot = pow(x1, 2);		 		 double pot2;		 pot2 = pow(x2, 2);		 		 double pot3;		 pot3 = pow(y1, 2);		 		 double pot4;		 pot4 = pow(y2, 2);		 		 		 float score0 = pot - 2 * x1 * x2 + pot2;		 float score1 = pot3 - 2 * y1 * y2 + pot4;		 float score2 = score0 + score1;		 		 		[b] double score3( score2,  2) { return pow(score2, 1 / 2);}[/b]		 		 std::cout << " odległość to " << score3  << std::endl;		 		 getch ();		 		 }

tutaj gdzie pogrubione kompilator wykrzacza błędy następującej treści :

 

expected `,' or `...' before numeric constant

a function-definition is not allowed here before '{' token

expected `,' or `;' before '{' token

 

co do 1 oraz 3 błędu zastanawiam się gdzie popełniłem błąd. Ale 2 błąd nie wiem od czego. Czy mógłby mi ktoś wskazać na mój błąd o pokierować jak zapisać to poprawnie.

 

doszedłem do tego, że mam jedną niezdeklarowaną zmienną... "score3". Tylko jak ją zapisać skoro ona jest wpisana w to działanie dotyczące pierwiastkowania ? :)

 

błędy wyeliminowane :). Pojawia się jednak jeszcze jeden błąd

 

initializer expression list treated as compound expression

expected `,' or `;' before '{' token - zastanawia mnie tylko gdzie popełniłem błąd :).

Edytowane przez Puchacz1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

kompilator nie zawsze wskazuje prawdziwą przyczynę błędu, lub podaje kilka błędów, choć tak naprawdę może być tylko 1 błąd.

 

Twój błąd jest prozaiczny i kompilator Ci o tym mówi dokładnie:

a function-definition is not allowed here before '{' token

czyli, że definicja funkcji nie jest dozwolona tutaj, przed znakiem '{'

 

Więc nie wiem kto Cię uczył programować, ale w c++ nie można definiować funkcji w funkcji... a Ty w funkcji main() definiujesz funkcję

double score3( score2, 2)

{

return pow(score2, 1 / 2);

}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

nikt mnie nie uczył... Nie jestem też doświadczony w tym co robię. Właściwie dopiero raczkuje... ew dopiero zacząłem.

 

Możesz mi powiedzieć jak to wkońcu zapisać tak aby było dobrze ??. W założeniu ta część kodu oblicza odległość z 2 współrzędnych (np. -1|0, 5|5)

 

jej wzór wygląda w sposób następujący

 

|AB| = [ (x1 - x2)^2 + (y1 - y2)^2 ] ^1/2

*(^2 - do kwadratu, tylko nie wiedziałem jak to tu zapisać)

*[...]^1/2 - pierwiastek z całości :D

 

 

 

float score0 = pot - 2 * x1 * x2 + pot2;

-ta funkcja odpowiada działaniu: (x1 - x2)^2

float score1 = pot3 - 2 * y1 * y2 + pot4;

-ta funkcja odpowiada działaniu: (y1 - y2)^2

float score2 = score0 + score1;

-ta fukcja to suma tych dwóch liczb.

 

ja widać pozostaje nam z tej liczby zrobić pierwiastek, ale teraz już nie wiem jak :)

 

ehh... poradziłem sobie ... takie to było proste :oops: :-P

Edytowane przez Puchacz1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

no i tu trzeba wyprostować Twój tok rozumowania :)

to:

float score0 = pot - 2 * x1 * x2 + pot2;

-ta funkcja odpowiada działaniu: (x1 - x2)^2

NIE JEST FUNKCJA w rozumieniu języka C/C++. To jest po prostu deklaracja zmiennej score0 typu float i przypisanie jej wyniku działania wykonanego po prawej stornie równości. To jest zwykła zmienna.

 

natomiast

double score3( score2, 2) { return pow(score2, 1 / 2);}

to JEST FUNKCJA. Funkcja charakteryzuje się tym, że po nazwie posiada nawiasy () w który można, choć nie trzeba podać parametry wywołania. I tego akurat NIE MOŻNA definiować wewnątrz innej funkcji.

 

Musiał byś to wyciągnąć poza funkcję main()

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...