Funkcja skala(float v) w c++

Funkcja skala(float v) w c++
JU
  • Rejestracja:około 4 lata
  • Ostatnio:ponad 2 lata
  • Postów:7
0

Zdefiniuj funkcję skala(float v), której parametrem jest prędkość wiatru w węzłach, a wynikiem przeliczona prędkość w skali Beauforta. Sprawdź działanie funkcji dla podanych poniżej parametrów. Wynikiem funkcji skala(5) jest 2. Wynikiem funkcji skala(52) jest 10.

Kopiuj
#include <iostream>
using namespace std;
float skala(float v) {
	return(v+10/6);
}
int main() {
	cout << skala(5) <<endl;
	cout << skala(52) <<endl;
	return 0;
}

W którym miejscu jest błąd? Bo cały czas wychodzą inne wyniki, niż powinny.

stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:33 minuty
4

Zle masz nawiasy.

v+10/6 to v + (10/6) a ma byc (v + 10) / 6


λλλ
edytowany 2x, ostatnio: stivens
stivens
@kq: co tam pisales o tej istocie problemu, z ciekawosci?
kq
Że dzielenie całkowite ma wynik całkowity, ale brain fart bo przecież nawiasy jak najbardziej błędne tu ;​)
stivens
A, to tez fakt. Nie myslalem o tym. Ale na szczescie sie wszystko castuje do floata jak sie dobrze ponawiasuje
_13th_Dragon
Dodawaj nawiasy czy nie, i tak równanie niepoprawne
JU
  • Rejestracja:około 4 lata
  • Ostatnio:ponad 2 lata
  • Postów:7
0

@stivens: Niestety nawet po zmianie nawiasów wychodzą niewłaściwe wyniki.

AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 2 miesiące
  • Postów:3561
1
Julciax napisał(a):

@stivens: Niestety nawet po zmianie nawiasów wychodzą niewłaściwe wyniki.

Ileż wątków jeszcze zrobisz na jeden temat?
Dostałaś odpowiedź / jedną z odpowiedzi. Masz w ogóle kontakt z rzeczywistością własnych wątków?


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 1x, ostatnio: AnyKtokolwiek
_13th_Dragon
Bo to inne zagadnienie, jedno dotyczyło liczb, a drugie niepoprawnej odpowiedzi na pierwszy post :D
_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:16 dni
0
Julciax napisał(a):

@stivens: Niestety nawet po zmianie nawiasów wychodzą niewłaściwe wyniki.

Bo użyłeś niewłaściwej odpowiedzi. Problem nie w nawiasach lecz w równaniu.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:3 miesiące
  • Postów:179
0

Witam wszystkich forumowiczów.

Równanie (v+10)/6 jest okej.

@Julciax Źle wywołujesz testy. zamień

Kopiuj
skala(5)
skala(52)

Na

Kopiuj
skala(2)
skala(63)

Po prostu podajesz złe wartośći w argumentach podczas wywoływania funkcji. Oto cały problem.

Pozdrawiam wszystkich i życzę miłego dnia.

MarekR22
Moderator C/C++
  • Rejestracja:ponad 17 lat
  • Ostatnio:9 minut
1
pestka12 napisał(a):

Witam wszystkich forumowiczów.

Równanie (v+10)/6 jest okej.

@Julciax Źle wywołujesz testy. zamień

Kopiuj
skala(5)
skala(52)

Na

Kopiuj
skala(2)
skala(63)

Po prostu podajesz złe wartośći w argumentach podczas wywoływania funkcji. Oto cały problem.

Pozdrawiam wszystkich i życzę miłego dnia.

Testy to puszcza chyba sędzia, a nie on. (tak przynajmniej sugeruje ten screenshot).
Ergo twoja propozycja, by w kodzie zmienić argument skala jest bezsensu.
Lepiej niech poda linka do zadania.
Powinno być raczej coś w stylu:

Kopiuj
int main() {
    double x;
    while (std::cin >> x)
        std::cout << skala(x) << '\n';

    return 0;
}

Żeby uruchamianie testów samemu miało sens, to musi być jakaś weryfikacja: https://godbolt.org/z/rqrdaq


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 3x, ostatnio: MarekR22
MO
  • Rejestracja:około 10 lat
  • Ostatnio:około 23 godziny
  • Lokalizacja:Tam gdzie jest (centy)metro...
2

Skala Beauforta, nie jest liniowa. Radzę najpierw przeczytać jakie zakresy dotyczą jakich prędkości: https://pl.wikipedia.org/wiki/Skala_Beauforta


Każdy problem w informatyce można rozwiązać, dodając kolejny poziom pośredniości,z wyjątkiem problemu zbyt dużej liczby warstw pośredniości — David J. Wheeler
MarekR22
on użył liniowego przybliżenia z wiki.
_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:16 dni
1

Czyli może trze3ba zastosować inne równanie:
B = 1,127·V^2/3 (dla V w m/s) = 0,723·V^2/3
?


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon
JU
Tak również próbowałam, ale wtedy to już całkiem pokazuje, że jest error i żaden wynik się nie zgadza
_13th_Dragon
Szklana kula wskazuje że w tej próbie był błąd w 42 wierszu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.