Problem z zadaniem dotyczącym obliczania sinusa

0

zd zadania.png

Witam, mam problem z zadaniem, a mianowicie:

![title]https://ibb.co/fCZSt6

Wklepałem taki kod:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    float eps;
    float w;
    int i = 1;
    float suma;
    float sinus;

    cout << "podaj wartosc sinus";
    cin >> w;
    cout << "podaj granice dokladnosci";
    cin >> eps;

    sinus = sin(w);

    suma = w;
    while (w > eps or w < -eps) {
        i++;
        w = (-1) * w * w * w / (2 * i - 2) * (2 * i - 1);
        suma = suma + w;
    }

    cout << "sinus z szeregu: " << suma << endl;
    cout << "sinus z funkcji c++:" << sinus << endl;
    cout << "liczba wyrazow szeregu wiekszych od eps: " << i;
}

Z tym moim programem dzieją się dziwne rzeczy, gdy podaje w>1 to nie chce w ogóle działać, a jak już zadziała to zwraca głupie liczby. Nie wiem gdzie jest błąd logiczny.

0

Nie odwzorowałeś zadanego wzoru. Nie widzę w nim w3. Dodatkowo a / b * c to (a / b) * c. Użyj nawiasów.

0
	w=(-1)*pow(w,3)/((2*i-2)*(2*i-1));

```poprawione i działa! dziękuję
0

Wiesz może dlaczego przy większych liczbach podaje złe wyniki albo nie podaje wcale? To wina jakiegoś braku pamięci? zamieniłem float na long double, przy sin>3 zaczyna dawać dziwne rzeczy a przy chyba sin>5 nie podaje nic wcale.

1 użytkowników online, w tym zalogowanych: 0, gości: 1