Wie kann man diesen Diagramm in einem Programm umschreiben C++?

Hallo Leute,

Ich sitze seit Stunden an diesem Diagramm. Ziel ist es, diesen in einem C++ Programm umzuschreiben.

Bei der Schleife mache ich immer irgendwaa falsch, wodurch meine Endergebnisse falsch sind.

Es ist das zweite Diagramm.

int main() {
 int x;
 cin >> x;

 if (x < 0) {
  cout << "Fehler" << endl;
 }

 else {
  while (x <= 1) {
  cout << x << endl;
  x = x - 2;
  }
 }

 return 0;

}

(1 votes)
Loading...

Similar Posts

Subscribe
Notify of
2 Answers
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
MichiruKaio
2 years ago

Danke für den Code 🙂 Das macht dtinen Fehler offensichtlich.

while (x <= 1) {
  cout << x << endl;
  x = x - 2;
  }

So lange x <= 1 ist führst du die while Schleife aus.

Bsp.:

x = 2

Ausgabe:

//nothing

Das Programm endet ohne jemals die While Schleife zu betreten, da 2 <= 1 False ist. Das trifft für alle x > 1 zu.

x = 1

Ausgabe:

1

-1

-3

-4

….

Du gibst den Wert x aus, danach rechnest du x = 1 – 2 = -1, da x immer kleiner wird und die while Schleife damit true bleibt hast du eine Endlosschleife produziert. 😉

x = 0

Ausgabe:

0

Durch deine erste if Bedingung kommst du niemals in die while Schleife. Ansonsten wäre es der nächste Kandidat geworden.

——-

Was du haben willst ist etwas komplett anderes. 😉

Du möchtest das abhängig der Eingabe die while so lange läuft bis x <= 1 zu trifft.

Es ist schon gut, dass du dir zum Test mehr ausgeben lässt.

1. Empfange eine Zahl >= 0

if (x < 0) {
  cout << "Fehler" << endl;
 }

Ist ein guter Ansatz um zu verhindern mit negativen Werten zu rechnen.

2. Die Hauptaufgabe

WENN x <= 1

DANN gebe X aus und beende die Funktion

SONST rechne x = x – 2 und mache weiter

Das heißt while entspricht dem Zeitpunkt so lange x > 1 ist.

Übrigens mit dieser while bräuchte es die obere If Abfrage gar nicht erst.

while (x > 1){
  x = x - 2
}
cout << x << endl;

Tipp zum Lösen:

Mache dir eine Tabelle mit den Werten für die Variable. Starte mit dem Eingabe-Wert.

Prüfe dann ob die Bedingungen für if / while / do while True oder False sind.

Notiere dir Jede Änderung des Wertes deiner Variablen.

noname204
2 years ago

man soll in der Schleife nur bleiben solange x <=1 NICHT gilt.