Puchacz1 Opublikowano 15 Stycznia 2008 Zgłoś Opublikowano 15 Stycznia 2008 (edytowane) 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 16 Stycznia 2008 przez Puchacz1 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 15 Stycznia 2008 Zgłoś Opublikowano 15 Stycznia 2008 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); } Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Puchacz1 Opublikowano 15 Stycznia 2008 Zgłoś Opublikowano 15 Stycznia 2008 (edytowane) 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 16 Stycznia 2008 przez Puchacz1 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 16 Stycznia 2008 Zgłoś Opublikowano 16 Stycznia 2008 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() Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Puchacz1 Opublikowano 16 Stycznia 2008 Zgłoś Opublikowano 16 Stycznia 2008 rozumiem :). Dzięki. A z problemem sobie poradziłem ... Jak na to teraz patrze to takie to proste było :D Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...