Gå til innhold

problem med sin()


Anbefalte innlegg

Hm.

Jeg sliter litt med sin() funksjonen.

Den gir liksom feil resultat.

 

#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

int main(int argc, char *argv[])
{
 float x;
 while (x)
 {
       cout << "sin ";
       x = false;
       cin >> x;
       x = sin(x);
       cout << " = " << x << "\n\n";
       }
   return EXIT_SUCCESS;
}

 

Resultater jeg får er f.eks:

sin(90) = 0.893997

sin(60) = -0.304811

 

sin(90) skal jo bli 1!

 

 

Mulig det er jeg som bruker funksjonen feil.

Vet ikke jeg..

Lenke til kommentar
Videoannonse
Annonse

Du får sin(90) = 0.893997 fordi sin() returnerer verdien i radianer.

 

Lenge siden jeg har holdt på med c++, men det er mulig det er en egen funk. for å få sinus i grader. På gamle kompilatorer kunne man bruke cosd() for å få utregning i grader, mulig det er noe som heter sind(). Vet ikke om dette går på nye kompilatorer.

 

Evt. regne om.

 

sin(x*pi/180)

Lenke til kommentar
SQRT(3)                             Linux Programmer's Manual                             SQRT(3)



NAME
      sqrt, sqrtf, sqrtl - square root function

SYNOPSIS
      #include <math.h>

      double sqrt(double x);

      float sqrtf(float x);

      long double sqrtl(long double x);

      Link with -lm.

DESCRIPTION
      The sqrt() function returns the non-negative square root of x.  It fails and sets errno to
      EDOM, if x is negative.

ERRORS
      EDOM   x is negative.

CONFORMING TO
      SVID 3, POSIX, BSD 4.3, ISO 9899.  The float and the long double variants are C99 require-
      ments.

SEE ALSO
      hypot(3)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...