Ausführen Programm

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
gamma
Beiträge: 33
Registriert: Sa Aug 20, 2016 11:30 am

Ausführen Programm

Beitrag von gamma » Mi Nov 02, 2016 11:55 am

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;
}

Benutzeravatar
Necip
Beiträge: 122
Registriert: Do Nov 17, 2011 12:03 pm
Kontaktdaten:

Re: Ausführen Programm

Beitrag von Necip » Mi Nov 02, 2016 12:20 pm

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;
    }

gamma
Beiträge: 33
Registriert: Sa Aug 20, 2016 11:30 am

Re: Ausführen Programm

Beitrag von gamma » Mi Nov 02, 2016 3:24 pm

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?

Benutzeravatar
Necip
Beiträge: 122
Registriert: Do Nov 17, 2011 12:03 pm
Kontaktdaten:

Re: Ausführen Programm

Beitrag von Necip » Mi Nov 02, 2016 7:37 pm

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

Lirrec
Beiträge: 15
Registriert: Mo Feb 20, 2012 11:55 am

Re: Ausführen Programm

Beitrag von Lirrec » Mi Nov 02, 2016 10:47 pm

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:

Code: Alles auswählen

std::vector<int> myInts { 1,2,3,4,10,20,30,40 };

gamma
Beiträge: 33
Registriert: Sa Aug 20, 2016 11:30 am

Re: Ausführen Programm

Beitrag von gamma » Mi Nov 02, 2016 11:18 pm

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!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Ausführen Programm

Beitrag von Xin » Do Nov 03, 2016 3:11 pm

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:

Code: Alles auswählen

        cout<<"Ergebnis:"<<fixed << ergebnis<<endl;
Aber schau Dir bitte auch nochmal die beiden Zeilen an:

Code: Alles auswählen

for(int i=0;i<=k;i++){ 
       ergebnis=pow(a*q,k);}
Und ich meine nicht nur die Art und Weise, wie Du die Klammern setzt. ;)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten