Wie schreibe ich einen Logarithmus in C++?
Hallo ich schreibe grad ein Programm in C++..
Da ich das noch nicht lange tue kenne ich noch nicht so viele Befehle.
Wie schreibe ich da einen Logarithmus von z.B.:
log 8 zur Basis 2 also 2hoch x gliech 8.
Würde mich über eure Hilfe freuen :)
3 Antworten
Guten Abend maxelelel,
hier ein kleines Beispielprogramm:
_#include <math.h> //die Unterstriche weglassen ;) nur wegen Darstellung hier nötig
_#include <iostream> //iostream zur Ausgabe, math für ln()
using namespace std; //bin schreibfaul:)
double logarithmus ( double Basis, double Wert ) /* * math.h liefert keine Funktion zu beliebigen Basen, dies muss durch das Logarithmusgesetz ermöglicht werden * */
{
double ergebnis = log(Wert)/log(Basis); //Logarithmusgesetz
return ergebnis; //Zurückgeben des Ergebnis
}
int main ( void ) //Test
{
double basis, wert, ergebnis;
cout<<"Basis?"<<endl;
cin>>basis;
cout<<"Wert?"<<endl;
cin>>wert;
ergebnis = logarithmus(basis, wert);
cout<<endl<<"Der Logarithmus von "<<wert<<" zur Basis "<<basis<<" ist: "<<ergebnis;
return 0;
}
Habs nicht ausprobiert, vllt ist ein tippfehler drin :) es geht ja um die Logik und du kannst es nun selbst versuchen.
Viel Spaß beim Programmieren,
Grüße 4sure
Für natürliche Logarithmen gibts in C++ log, für 10er-Logarithmen log10 (bei beiden muss cmath eingebunden werden). Für beliebige Basen musst du dir eine Funktion schreiben, da gelten dann Logarithmengesetze, also
log_a (b) = ln(b) / ln(a)
fang lieber einfacher an...
Ich habe schon einfachere Programme geschrieben wie zB Wachstum berechnen oder Schnittpunkte und Punkte ausrechnen und ich will die Programme ein wenig erweitern
Ups,
sehe gerade, das hat ceevee sowieso schon beantwortet... :)
auch wollte ich noch hinzufügen, dass man noch einige Feinheiten bezüglich des Definitionsbereichs der Basis beachten muss. Ich habe beim Coden leider noch vergessen, dass die Basis nicht negativ oder 0 sein darf (wenn man sich eine MENGE arbeit erspaaren will ;) ). Diese Fälle sollten noch unterschieden werden, dies sind aber lediglich Feinheiten. Ich hoffe ich habe trotzdem geholfen,
viele Grüße 4sure