Programm mit entweder das oder das

nico.gruber

Grünschnabel
Hallo zusammen,

ich habe folgendes Problem, und zwar will ich ein Konsolen Programm schreiben. Ich hab zum berechnen drei dinge zur auswahl
  • Spannung
  • Stromstärke
  • Widerstand
ich will anfangs eingeben was ich berechnen will und dann soll er nur den jeweiligen ablauf machen. bisher hat er immer nur den ablauf der berechnung von der Spannung wiederholt (rot gefärbt) obwohl ich eingebe das ich den widerstand suche.

string Eingabe;

cin >> Eingabe;


if(Eingabe == "Spannung");

{
cout << "Bitte den gegebenen Widerstand in Ohm eingeben" << endl;
cin >> Widerstand;
cout << "Bitte die gegebene Stromstaerke in Ampere eingeben" << endl;
cin >> Stromstaerke;
Spannung = Widerstand * Stromstaerke;
cout << "Die gesuchte Spannung betraegt " << Spannung << " Volt" << endl << endl << endl;


if(Eingabe == "Stromstärke");
{
cout << "Bitte den gegebenen Widerstand in Ohm eingeben" << endl;
cin >> Widerstand;
cout << "Bitte die gegebene Spannung in Volt eingeben" << endl;
cin >> Spannung;
Stromstaerke = Spannung / Widerstand;
cout << "Die gesuchte Stromstaerke betraegt " << Stromstaerke << " Ampere" << endl << endl << endl;

if(Eingabe == "Widerstand")
{
cout << "Bitte die gegebene Spannung In Volt eingeben" << endl;
cin >> Spannung;
cout << "Bitte die gegebene Stromstaerke in Ampere eingeben" << endl;
cin >> Stromstaerke;
Widerstand = Spannung / Stromstaerke;
cout << "Der gesuchte Widerstand betraegt " << Widerstand << " Ohm" << endl << endl << endl;
}
}


oben drüber leg ich noch die Variablen Spannung, Stromstärke und Widerstand fest.

kann mir jemand helfen wie ich das schreiben soll das er es abhängig von der VariableEingabe berechnet??
 
kann mir jemand helfen wie ich das schreiben soll das er es abhängig von der VariableEingabe berechnet??
Deine Klammerung ist ein bisschen seltsam. Sollte vor 'if(Eingabe == "Stromstärke")' nicht eine '}' sein und dafür keine am Ende?

Du sagst, es wiederholt immer nur die Spannung. Hast du einen Loop? Kannst du uns den kompletten Code zeigen? (Bitte nutze doch die Codetags: [code=cpp][/code])

Nebenbei: Grundsätzlich ist mit Umlauten immer Vorsicht geboten. Aber das ist ja hier nicht das Problem.

/EDIT: Ah, ich sehe ein Problem:
C++:
if(Eingabe == "Spannung"); //< Hier darf kein Semikolon stehen!
{
//...
So ist es für den Compiler ein "Falls Eingabe == 'Spannung', dann nichts. Weiter mit dem nächsten Block"
Korrekt wäre:
C++:
if(Eingabe == "Spannung")
{
//...
}
(Wie du es beim Letzten If auch gemacht hast.)

Gruss
cwriter
 
hier mal das komplette Programm. ich habe jetzt die { vor die if befehle aber es hat nichts daran geändert er startet trotzdem immer nur die Berechnung der Spannung



#include <iostream>
#include <string>

using namespace std;

int main()
{
double Spannung;
double Widerstand;
double Stromstaerke;

cout << "Stromstaerkenrechner V2.3" << endl;


cout << "Bitte die gesuchte Einheit eingeben" << endl;
string Eingabe;

cin >> Eingabe;


{if (Eingabe == "Spannung");

cout << "Bitte den gegebenen Widerstand in Ohm eingeben" << endl;
cin >> Widerstand;
cout << "Bitte die gegebene Stromstaerke in Ampere eingeben" << endl;
cin >> Stromstaerke;
Spannung = Widerstand * Stromstaerke;
cout << "Die gesuchte Spannung betraegt " << Spannung << " Volt" << endl << endl << endl;
}


{if (Eingabe == "Stromstärke");
cout << "Bitte den gegebenen Widerstand in Ohm eingeben" << endl;
cin >> Widerstand;
cout << "Bitte die gegebene Spannung in Volt eingeben" << endl;
cin >> Spannung;
Stromstaerke = Spannung / Widerstand;
cout << "Die gesuchte Stromstaerke betraegt " << Stromstaerke << " Ampere" << endl << endl << endl;
}

{if (Eingabe == "Widerstand")
cout << "Bitte die gegebene Spannung In Volt eingeben" << endl;
cin >> Spannung;
cout << "Bitte die gegebene Stromstaerke in Ampere eingeben" << endl;
cin >> Stromstaerke;
Widerstand = Spannung / Stromstaerke;
cout << "Der gesuchte Widerstand betraegt " << Widerstand << " Ohm" << endl << endl << endl;
}

system("pause");

return 0;
}
 
vor die if befehle aber es hat nichts daran geändert er startet trotzdem immer nur die Berechnung der Spannung
Äh ja, das ist falsch.

So sollte es gehen.
C++:
#include <iostream>
#include <string>

using namespace std;

int main()
{
double Spannung;
double Widerstand;
double Stromstaerke;

cout << "Stromstaerkenrechner V2.3" << endl;

cout << "Bitte die gesuchte Einheit eingeben" << endl;
string Eingabe;

cin >> Eingabe;


if (Eingabe == "Spannung")
{
cout << "Bitte den gegebenen Widerstand in Ohm eingeben" << endl;
cin >> Widerstand;
cout << "Bitte die gegebene Stromstaerke in Ampere eingeben" << endl;
cin >> Stromstaerke;
Spannung = Widerstand * Stromstaerke;
cout << "Die gesuchte Spannung betraegt " << Spannung << " Volt" << endl << endl << endl;
}

if (Eingabe == "Stromstärke")
{
cout << "Bitte den gegebenen Widerstand in Ohm eingeben" << endl;
cin >> Widerstand;
cout << "Bitte die gegebene Spannung in Volt eingeben" << endl;
cin >> Spannung;
Stromstaerke = Spannung / Widerstand;
cout << "Die gesuchte Stromstaerke betraegt " << Stromstaerke << " Ampere" << endl << endl << endl;
}

if (Eingabe == "Widerstand")
{
cout << "Bitte die gegebene Spannung In Volt eingeben" << endl;
cin >> Spannung;
cout << "Bitte die gegebene Stromstaerke in Ampere eingeben" << endl;
cin >> Stromstaerke;
Widerstand = Spannung / Stromstaerke;
cout << "Der gesuchte Widerstand betraegt " << Widerstand << " Ohm" << endl << endl << endl;
}

system("pause");

return 0;
}

Gruss
cwriter
 

Neue Beiträge

Zurück