problem z sinusem

0

jestem (bardzo:>) początkowym programistą. moj problem polega na tym, ze nie da sie z jakiegos powodu uruchomic ponizszego programu przez fakt, ze w dolnej czesci kodu znajduje sie komenda y=sin(a). w przypadku nadania zmiennej 'y' jakiejkolwiek innej wartości, program uruchamia się normalnie. co zrobić, by to działało z przypisaniem wartości sinusa z 'a'?

i drugi, mniej znaczący problem- chciałbym, żeby w kolumnie X wyswietlaly sie 2 liczby po przecinku, a w kolumnie Y - 4

bardzo prosze o pomoc

oto kod:

#include <iostream>
#include <iomanip.h>
using namespace std;
int main()

{
    float a,b,N,r,y; //deklaracja zmiennych (r = roznica miedzy punktami, y = wartosc funkcji)
 
    cout<<"Podaj wartosc poczatku przedzialu"<<endl;
    cin>>a;      //pobranie wartosci a
    cout<<"Podaj wartosc konca przedzialu"<<endl;
    cin>>b;      //pobranie wartosci b
    
    if (a>b)     //sprawdzenie poprawnosci podania wartosci
    cout<<"Wartosc koncowa nie moze byc nizsza od wartosci poczatkowej"<<endl;
    if (a>b)
    system("pause");
    if (a>b)
    return 0; 
    
    cout<<"Podaj ilosc punktow znajdujacych sie w przedziale"<<endl;
    cin>>N;      //pobranie wartosci N
    if (N<1)
    cout<<"Przedzial musi zawierac co najmniej 1 punkt"<<endl;
    if (N<1)
    system("pause");
    if (N<1)
    return 0;
    
    r=(b-a)/(N-1);  //wyliczenie odleglosci miedzy punktami
 
    cout<<"X\t\tY"<<endl;
    for(int i=1; i<=N; i++)
    {
            cout<<a; //wyswietlenie wartosci X
            cout<<"\t\t";
            
            if(a<-1)
            y=(-1);
            else if(a<8)
            y=sin(a);
            else
            y=7-a;
            
    cout<<y<<endl;
    a=a+r;
    
    
}
 
system("pause");
return 0; 
   
}
0

Kod straszny:

  • nie używaj system("pause");
  • co to za nagłówek iomanip.h? Nie znam takiego, nie miało być iomanip a z resztą po co Ci on tam skoro go nie używasz?
  • WTF?
    if (a>b)     //sprawdzenie poprawnosci podania wartosci
    cout<<"Wartosc koncowa nie moze byc nizsza od wartosci poczatkowej"<<endl;
    if (a>b)
    system("pause");
    if (a>b)
    return 0;

Powinno być raczej

    if (a>b)  {    //sprawdzenie poprawnosci podania wartosci
         cout<<"Wartosc koncowa nie moze byc nizsza od wartosci poczatkowej"<<endl;
         return 0; 
    }
  • by użyć sin potrzebny jest nagłówek cmath
0

wielkie dzieki. dziala. prosze jeszcze tylko o to ustawiania wyswietlania ilosci cyfr po przecinku- 2 cyfry po w kolumnie X (wartosci a) i 4 cyfry po w kolumnie Y (wartosci y)

0

cout.setprecision(<coś>);

0

winerfresh, a nie

cout << setprecision(<coś>); 

?
Bo Twój sposób użycia, przynajmniej u mnie, jest niekompilowalny.
(@autor, teraz już <iomanip> będzie potrzebny)

EDIT: Jest jeszcze cout.precision(<coś>);, więc stąd pewnie omyłka.

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