Seite 1 von 1
Ausführen Programm
Verfasst: Mi Nov 02, 2016 11:55 am
von gamma
Hallo....
Ich lerne gerade programmieren in c++. Ich hab ein Programm geschrieben, welches ich auch kompelieren lässt, aber nicht ausführen. Ich benutze Mingw und gedit falls das wichtig ist zu erwähnen.
Wenn ich den Befehl g++ -std=c++11 -o geometrsichereihe geometrischereihe.cpp (geometrischereihe ist mein Programmname) eingebe und anschließend geometrischereihe eingebe,dann bekomme ich die Meldung:Der Befehl "." ist entweder falsch geschrieben oder konnte nicht gefunden werden.
Ich hab auch schon versucht die Datei mit./"Programmname" auszuführen aber dann bekomme ich die selbe Meldung. Kann mir da wer weiterhelfen?
Code: Alles auswählen
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int k{30};
double a,q,ergebnis;
cout<<"Geben sie einen Wert für a ein"<<endl;
cin>>a;
cout<<"Geben sie einen Wert für q ein"<<endl;
cin>>q;
for(int i{0};i<=k;i++){
ergebnis=pow(a*q,k);}
cout<<"Ergebnis:"<<ergebnis<<endl;
return 0;
}
Re: Ausführen Programm
Verfasst: Mi Nov 02, 2016 12:20 pm
von Necip
Dein Programm lässt sich so nicht compilieren!
Die Initialisierung von Variablen stimmt nicht.
So müsste es funktionieren:
Code: Alles auswählen
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int k = 30;
double a,q,ergebnis;
cout<<"Geben sie einen Wert für a ein"<<endl;
cin>>a;
cout<<"Geben sie einen Wert für q ein"<<endl;
cin>>q;
for(int i=0;i<=k;i++){
ergebnis=pow(a*q,k);}
cout<<"Ergebnis:"<<ergebnis<<endl;
return 0;
}
Re: Ausführen Programm
Verfasst: Mi Nov 02, 2016 3:24 pm
von gamma
Danke für die Antwort. Du hast doch jetzt einfach statt int a{30}, int a = 30 geschrieben oder? Ich habe die Konsole jetzt neue gestartet und nun funktionieren beide Methoden. Nur eine Frage zum Ergebnis habe ich noch zum Ergebnis. Für a=1 und q = 2 bekomme ich 1.07374e+009. Was bedeutet das e+009 und wie kann ich das als normale Kommazahl darstellen?
Re: Ausführen Programm
Verfasst: Mi Nov 02, 2016 7:37 pm
von Necip
Freud mich, dass die ersten Hürden überwunden sind! ^^
In C, C++ werden Werte den Variablen mit dem = Operator zugewiesen.
1.07374e+009 ist eine arithmetische Schreibweise, um große Zahlen auszudrücken.
Das e oder auch E steht für die Basis 10, die darauf folgende 9 ist die Potenz.
Die Zahl 1.07374 musst Du daher mit 10 hoch 9 oder dezimal ausgedrückt :1.000.000.000 multiplizieren,
also lautet das Ergebnis : 1.073.740.000
Um sehr kleine oder sehr große Zahlen dezimal auszudrücken bedarf es Funktionen.
Auf die schnelle habe ich diesen Link gefunden:
http://stackoverflow.com/questions/4217 ... uble-value
Re: Ausführen Programm
Verfasst: Mi Nov 02, 2016 10:47 pm
von Lirrec
Necip hat geschrieben:In C, C++ werden Werte den Variablen mit dem = Operator zugewiesen.
Die Syntax, welche gamma zum Initialisieren der Variablen verwendet hat ist durchaus ebenfalls richtig. Seit C++11 gibts es das Konzept der "Uniform Initialization" ( z.B. hier bei msdn beschrieben:
https://msdn.microsoft.com/en-us/library/dn387583.aspx).
Damit kann man generell alle Arten von Structs / Klassen sowie Standarddatentypen initialisieren. Außerdem lässt sich ein eigener Konstruktor implementieren um diesen Fall zu "überladen", damit kann man dann z.B. Vektoren wie folgt initialisieren:
Re: Ausführen Programm
Verfasst: Mi Nov 02, 2016 11:18 pm
von gamma
Danke dann stimmt mein Ergebnis also doch. Ich hab das als Physik Student nämlich fälschlicherweise als exponentialfunktion interpretiert. Danke nochmals für die Hilfe!
Re: Ausführen Programm
Verfasst: Do Nov 03, 2016 3:11 pm
von Xin
Deine Initialisierung mit {} war korrekt, aber etwas moderner.
Ich habe das Programm mal kurz kopiert und bekomme da auch 1.07374e+09 raus.
Wenn Du keine wissenschaftliche Schreibweise möchtest benutze fixed:
Aber schau Dir bitte auch nochmal die beiden Zeilen an:
Und ich meine nicht nur die Art und Weise, wie Du die Klammern setzt.
