Funktionen in C++

Gast #3874163
Hi,

hab versucht ein Programm zu schreiben, das mir die Funktionswerte von 
f(x)=e^(sin(x)) bestimmt.

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
  double x;
  cout << "Gib ein x ein!" << endl;
  cin >> x;
  double sin_x = sin(x);
  double exp(1.0);

  cout << pow(exp(1.0),sin_x) << endl;

}

Wo ist denn hier der Fehler? Jedenfalls ist in der vorletzten Zeile exp 
rot unterkringelt, mit dem Hinweis: Error: Der Ausdruck muss einen 
(pointer-to-)Funktionstyp aufweisen. Irgendwie kann ich damit jetzt 
überhaupt nichts anfangen

LG
Gast #3874169
sieht ja auch komisch aus.

> double exp(1.0);
was meinst du damit?

double exp = 1.0?

> cout << pow(exp(1.0),sin_x) << endl;
hier schon wieder

exp(1.0)
was soll das sort?


entweder willst du eine variable anlegen mit dem Namen exp oder eine 
Funktion aufrufen.
#3874174
exp ist eine Funktion. Genauso wie sin.

Du hast ja auch nicht
1
double sin(x);
geschrieben. Sondern du hast eine Variable definiert
1
double sin_x
die du mit dem Ergebnis des Funktionsaufrufs sin(x) initiallisiert hast.
1
double sin_x = sin(x);


exp ist eine Funktion. Aber du hast keine Variable, die das Ergebnis des 
Funktionsaufrufs aufnehmen würde.
Moderator #3874191
Statt
1
  double exp(1.0);
2

3
  cout << pow(exp(1.0),sin_x) << endl;

wolltest du wahrscheinlich schreiben:
1
  double e = exp(1.0);  // Eulersche Zahl e = 2.71828...
2

3
  cout << pow(e, sin_x) << endl;   // e ** sin_x

pow(e, irgendwas) ist aber gerade exp(irgendwas), denn genau so ist die
exp-Funktion definiert. Allso schreibst du besser:
1
  cout << exp(sin_x) << endl;   // e ** sin_x

und lässt die Zeile darüber weg.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.