Quellcode erstellen !! ich komm nicht weiter hab meinen quellcode reingeschrieben den ich bisher habe könnt ihr mir weit
-
Hallo Liebe Leutz;
ich habe eine sehr dringende bitte ich schreibe morgen ne klassenarbeit in c++, und habe ne aufgabe die ich bisher nicht lösen kann könnt ihr mir vielleicht weiterhelfen?Gesucht ist der quellcode für di folgende aufgabenstellung einer leistungsberechnung:
-Nach der Tastatureingabe von einem Strom in A und einer Spannung in V wird die leistung berechent und auf den Bildschirm ausgegeben.
-für eine berechnete leistung kleiner 1000w wird die leistung in der einheit kw ausgegeben
-für eine leistung größer gleich 1000w wird die leistung in der einheit kw ausgegeben
-für leistungen zwischen 7w und 18w soll zusätzlich der folgende text ausgegeben werden:,,Es handelt sich eventuel um ein energiesparendes Leuchtmittel.´´
-formel zur leistungsberechnung: Leistung = Strom * SpannungDiesen Quellcode habe ich bereits geschrieben aber es funktioniert nicht.
{
float Strom;
float Spannung;
float Leistung;
float Leistung_in_kw;
cout<<"Bitte geben Sie den Strom in Ampere an und bestätigen Sie mit Enter: "<<"\n";
cin>>Strom;
cout<<"Bitte geben Sie die Spannung in Volt an und bestätigen Sie mit Enter: "<<"\n";
cin>>Spannung;
Leistung=StromSpannung;
Leistung_in_kw=(StromSpannung)/1000;
if(Leistung<1000.0){
cout<<"Die Leistung betraegt: "<<Leistung_in_kw<<" kw"<<"\n";
if(Leistung>=1000.0){
cout<<"Die Leistung betraegt: "<<Leistung_in_kw<<" kw"<<"\n";
if(Leistung_in_kw>=0.007<=0.018){
cout<<"Es handelt sich eventuel um ein energiesparendes Leuchtmittel! "<<Leistung_in_kw<<"kw"<<"\n";}
return 0;}}}
Vielen Dank im Voraus.
Lg tobi
-
Hast du das in deinem Editor auch so stehen (ich meine ohne Einrückungen)?
Denn mit Einrückungen sieht man den Fehler sofort:if(Leistung<1000.0) { cout<<"Die Leistung betraegt: "<<Leistung_in_kw<<" kw"<<"\n"; if(Leistung>=1000.0) { cout<<"Die Leistung betraegt: "<<Leistung_in_kw<<" kw"<<"\n"; if(Leistung_in_kw>=0.007<=0.018) { cout<<"Es handelt sich eventuel um ein energiesparendes Leuchtmittel! "<<Leistung_in_kw<<"kw"<<"\n"; } } }
-
Du musst bei jedem if die Klammer wieder schließen, mal ganz abgesehen davon, dass bei Zahlen größer, gleich und kleiner 1000 W genau das gleiche passiert. "funktioniert nicht" ist grundsätzlich eine sehr ungenaue Angabe. Ansonsten solltest du dein Programm in [cpp]Code[/cpp]-Tags schreiben.
-
Ich habs zwar gerade nicht getestet, aber mir fällt auf, dass du die if-Abfragen erst ganz am Ende wieder schließt. Das heißt wenn die Leistung nicht kleiner 1000 passiert gar nichts. Probiere es lieber so:
if(Leistung<1000.0) std::cout << "Die Leistung betraegt: " << Leistung_in_kw << " kw" << std::endl; if(Leistung>=1000.0) std::cout << "Die Leistung betraegt: " << Leistung_in_kw << " kw" << std::endl; if(Leistung_in_kw>=0.007<=0.018) std::cout << "Es handelt sich eventuel um ein energiesparendes Leuchtmittel! " << Leistung_in_kw << " kw" << std::endl;
Da die Anweisungen nur Einzeiler sind, brauchst du in diesem Fall sogar keine Klammern. Sobald die Anweisungen in einer if-Abfrage größer ind brauchst du schon welche! Wichtig ist dann, dass du sie auch wieder früh genug schließt.
Außerderm brauchst du das nicht so schreiben:
cout << " Text " << "\n";
Du kannst das \n direkt in den String schreiben, oder du benutzt direkt std::endl. Das setzt ein \n ein und flusht direkt den Ausgabepuffer.
Das ganz würde dann so aussehen:std::cout << "Text\n"; // oder std::cout << "Text" << std::endl;
P.S.:
"Funktioniert nicht" ist keine genaue Fehlerbeschreibung. Erkläre besser, wo genau dein Fehler liegt, und was der Compiler/Linker/Debugger sagt.EDIT:
Viel zu spät
-
if(Leistung_in_kw>=0.007<=0.018) <---ist keine Bedingung /fehler
und wie schon erwähnt sind die Klammern in Bezug auf return 0; falsch.
-
Und übrigens braucht man std::endl hier nicht / man sollte es nicht unbedingt verwenden, denn man muss den Konsolenpuffer nicht flushen (auch wenn es hier nicht viel ausmacht).
-
habe nun diesen Quellcode:
Kann mir aber nicht für die werte zwischen 7 und 18 die Zeichenkette ausgeben lassen kann mir jemand weiterhelfen
Und vielen dank an den helfer zuvor:Lg tobi
float Strom;
float Spannung;
float Leistung;
float Leistung_in_kw;
cout<<"Bitte geben Sie den Strom in Ampere an und bestätigen Sie mit Enter: "<<"\n";
cin>>Strom;
cout<<"Bitte geben Sie die Spannung in Volt an und bestätigen Sie mit Enter: "<<"\n";
cin>>Spannung;
Leistung=StromSpannung;
Leistung_in_kw=(StromSpannung)/1000;
if(Leistung<1000.0)
cout << "Die Leistung betraegt: " << Leistung_in_kw << " kw" << "\n";
if(Leistung>=1000.0)
cout << "Die Leistung betraegt: " << Leistung_in_kw << " kw" << "\n";
if(Leistung_in_kw>=0.007<=0.018)
cout << "Es handelt sich eventuel um ein energiesparendes Leuchtmittel! " << Leistung_in_kw << " kw" <<"\n";}
-
Hat doch schon mal jemand geschrieben.
Leistung_in_kw>=0.007 ergibt einen boolean und der wird dann mit 0.018 verglichen. Schreib lieber:if(Leistung >= 7 && Leistung <= 18)
-
HighLigerBiMBam schrieb:
if(Leistung_in_kw>=0.007<=0.018) <---ist keine Bedingung /fehler
und wie schon erwähnt sind die Klammern in Bezug auf return 0; falsch.
-
wxSkip schrieb:
Hat doch schon mal jemand geschrieben.
Leistung_in_kw>=0.007 ergibt einen boolean und der wird dann mit 0.018 verglichen. Schreib lieber:if(Leistung >= 7 && Leistung <= 18)