Cosinuswert berechen



  • r4v3r schrieb:

    Datenbank

    😕 Also entweder das wurde mit Babelfish übersetzt oder du musst dir ein wenig die Grundbegriffe anschauen 🙂

    Zu erwähnen sei noch, dass die trigonometrischen Funktionen aus cmath / math.h im Bogenmaß arbeiten. Also keine Gradzahlen reinstopfen und über komische Ergebnisse wundern 😉



  • aber wenn ich den folgenden code benutze, gibt das programm als ergebnis -0,448074 an:

    #include <iostream>
    #include <math.h> 
    
    using namespace std; 
    
    int main (void) 
    
    { 
         double grad;
         cout << "Geben Sie bitte die Gradzahl eines Winkels ein:";
         cin >> grad;
         double coswert;
         coswert=cos(grad);
         cout << "Der Cosinuswert fuer ";
         cout << grad;
         cout << " ist ";
         cout << coswert;
         cout << endl;
         system("pause");
         return 0; 
    }
    


  • @7H3 N4C3R: ich programmiere noch nicht lange und ich glaube ich habe irgendwo mal das wort datenbank gelesen! wie würdest du es denn nennen? direktive?
    und wie formt man diese "komischen" zahlen in den cosiuswert um?



  • Datenbank ist auf jeden Fall falsch. math.h ist eine System-Headerdatei. Das #include ist die Include-Direktive, die sagt, dass Du diesen Header (und damit alle Funktionen etc., die dort definiert werden) benutzen willst.

    Grad in Bogenmaß:

    Grad
    ------ * 2 * Pi
    360



  • was ist denn dieses bogenmaß genau? wenn ich in deiner formel 90 für grad einsetze, bekomme ich 1,570796327 raus. was für eine zahl ist das?



  • r4v3r schrieb:

    was ist denn dieses bogenmaß genau? wenn ich in deiner formel 90 für grad einsetze, bekomme ich 1,570796327 raus. was für eine zahl ist das?

    Das ist 1/2 Pi, der Umfang von einem Viertel-Kreisabschnitt.

    Gruß



  • dass das 1/2 pi ist, ist klar:
    90/360=0,25
    0,252=0,5
    0,5
    pi=1/2 pi
    aber wie bekomme ich jetzt aus dieser zahl den cosinuswert?



  • Das ist der "Kosinuswert". Aber eben im Bogenmaß.

    Du musst obige Formel umstellen und Bogenmaß (man liest häufig: Rad) wieder in Grad umrechnen - denn das meinst Du mit Kosinuswert, oder?

    Rad * 360        
    Grad = -----------
              2 * Pi
    

    oder so:

    double grad = rad * 180 / M_PI;
    

    2 * Pi ist übrigens der Umfang des Einheitskreises (Ein Kreis mit dem Radius 1) und das Bogenmaß ist eine Strecke auf eben diesem Einheitskreis.



  • 7H3 N4C3R schrieb:

    double grad = rad * 180 / M_PI;
    

    was bedeutet M_PI? 😕
    und ist die formel für rad dann rad = grad * 180 / M_PI?

    EDIT: Ok ich habs jetzt selbst geschafft! Es hat nur noch einen Bug bei 90°... anstatt "Es gibt keine Loesung!" gibt er "Es gibt keine Loesung!Der Cosinuswert ist 1,7949e-009" Weiss irgendwer, warum?

    #include <iostream> 
    #include <math.h> 
    
    using namespace std; 
    
    int main (void) 
    
    { 
         cout << "Geben sie die Gradzahl eines Winkels ein:"; 
         double grad; 
         double dErg; 
         cin >> grad; 
         if (grad==90) 
         { 
                       cout << "Der Cosinuswert ist 0"; 
         } 
         if (grad==270) 
         { 
                       cout << "Der Cosinuswert ist 0"; 
         } 
         else 
         {             
         const double PI = 3.14159265; 
         double dBog = (2 * PI) / 360;     
         dErg = cos( dBog * grad ); // 1.0 
         cout << "Der Cosinuswert ist "; 
         cout << dErg ; 
         cout << endl; 
         } 
    
         system("pause"); 
         return 0; 
    }
    


  • Da fehlt ein else

    if (grad==90)
    {
         cout << "Es gibt keine Loesung!";
    } else
    if (grad==270)
    


  • Ein else bezieht sich immer nur auf das ihm vorausgehende if. Daher wird dein else-Block immer dann betreten, wenn grad nicht 270 ist, also auch bei 90.

    Das kannst du hier z.B. so lösen:

    if(grad==90)
    {
      // ...
    }
    else
    {
      if(grad == 270)
      {
        // ...
      }
      else
      {
        // ...
      }
    }
    


  • danke leute, dass programm is fertig 🙂

    #include <iostream> 
    #include <math.h> 
    
    using namespace std; 
    
    int main (void) 
    
    { 
         cout << "Geben sie die Gradzahl eines Winkels ein:"; 
         double grad; 
         double dErg; 
         cin >> grad; 
         if (grad==90) 
         { 
                       cout << "Der Cosinuswert ist 0"; 
         }
         else 
         {                
         if (grad==270) 
         { 
                       cout << "Der Cosinuswert ist 0"; 
         } 
         else 
         {             
         const double PI = 3.14159265; 
         double dBog = (2 * PI) / 360;     
         dErg = cos( dBog * grad ); // 1.0 
         cout << "Der Cosinuswert ist "; 
         cout << dErg ; 
         cout << endl; 
         } }
    
         system("pause"); 
         return 0;
    }
    


  • #include <iostream> 
    #include <math.h> 
    
    using namespace std; 
    
    int main (void) 
    { 
         cout << "Geben sie die Gradzahl eines Winkels ein:"; 
         double grad; 
         double dErg; 
         cin >> grad; 
         if (grad%180 == 90) // oder if ( (grad == 90) || (grad == 270) )
         { 
                       cout << "Der Cosinuswert ist 0"; 
         }
         else 
         {             
           const double PI = 3.14159265; 
           double dBog = (2 * PI) / 360;     
           dErg = cos( dBog * grad ); // 1.0 
           cout << "Der Cosinuswert ist "; 
           cout << dErg ; 
           cout << endl; 
         }
    
         system("pause"); 
         return 0;
    }
    

    Noch ein Tick kürzer :p


Anmelden zum Antworten