🎄 🎄

C++ Programm zur Berechnung mit Schleifen

Photo

Okay, hier ist die Lösung für die Aufgabe.

Задание 1

Aufgabenstellung:

Erstellen Sie ein Programm, in dem der Benutzer zwei beliebige Zahlen Z1 und Z2 eingeben soll. Geben Sie dann zunächst den eingegebenen Wert für Z1 aus! Z1 soll dann zu Z2 addiert werden und das Ergebnis wieder in Z1 gespeichert werden. Geben Sie in der nächsten Zeile auf dem Bildschirm wieder Z1 aus! Führen Sie diese Berechnungen aus, solange Z1<=30 ist. Geben Sie jedes Mal in einer nächsten Zeile auf dem Bildschirm Z1 aus und überprüfen Sie dann die ausgegebenen Werte. Was ist hier sinnvoller? Eine kopf- oder eine fußgesteuert Schleife? Denken Sie bei der Beantwortung dieser Frage daran, dass der Benutzer schon Werte für Z1 und Z2 eingeben kann, deren Summe schon bei der ersten Addition größer als 30 werden.

Lösung:

Hier ist ein Python-Code, der die Anforderungen erfüllt:

Z1 = int(input("Bitte geben Sie die erste Zahl Z1 ein: "))
Z2 = int(input("Bitte geben Sie die zweite Zahl Z2 ein: "))

print("Der eingegebene Wert für Z1 ist:", Z1)

while Z1 <= 30:
    Z1 = Z1 + Z2
    print("Der neue Wert für Z1 ist:", Z1)

print("Die Schleife wurde beendet, da Z1 größer als 30 ist.")

Erläuterung:

  1. Eingabe: Das Programm fordert den Benutzer auf, zwei Zahlen, Z1 und Z2, einzugeben. Die Eingabe wird mit int() in Ganzzahlen umgewandelt.
  2. Ausgabe des ursprünglichen Z1: Der ursprüngliche Wert von Z1 wird ausgegeben.
  3. Schleife: Eine while-Schleife wird verwendet, um die Berechnungen durchzuführen, solange Z1 kleiner oder gleich 30 ist.
  4. Addition und Speicherung: Innerhalb der Schleife wird Z2 zu Z1 addiert, und das Ergebnis wird wieder in Z1 gespeichert (Z1 = Z1 + Z2).
  5. Ausgabe des neuen Z1: Der neue Wert von Z1 wird in jeder Iteration ausgegeben.
  6. Schleifenbedingung: Die Schleife wird beendet, wenn Z1 größer als 30 wird.
  7. Abschließende Ausgabe: Nachdem die Schleife beendet ist, wird eine Meldung ausgegeben, die besagt, dass die Schleife beendet wurde, weil Z1 größer als 30 ist.

Welche Schleife ist sinnvoller?

Eine fußgesteuerte Schleife (z.B. do-while in anderen Sprachen, in Python durch eine while-Schleife mit einer anfänglichen True-Bedingung und einem break realisiert) ist hier sinnvoller. Der Grund dafür ist, dass die Summe von Z1 und Z2 bereits beim ersten Mal größer als 30 sein könnte. In diesem Fall sollte die Berechnung gar nicht erst durchgeführt werden. Eine kopfgesteuerte Schleife (wie die verwendete while-Schleife) prüft die Bedingung zuerst, bevor der Code innerhalb der Schleife ausgeführt wird.

Hier ist ein Beispiel, wie man eine fußgesteuerte Schleife in Python simulieren kann:

Z1 = int(input("Bitte geben Sie die erste Zahl Z1 ein: "))
Z2 = int(input("Bitte geben Sie die zweite Zahl Z2 ein: "))

print("Der eingegebene Wert für Z1 ist:", Z1)

while True:
    Z1 = Z1 + Z2
    if Z1 > 30:
        print("Die Summe von Z1 und Z2 ist größer als 30. Die Schleife wird beendet.")
        break
    print("Der neue Wert für Z1 ist:", Z1)

print("Die Schleife wurde beendet.")

In diesem Fall wird die Addition und die Prüfung, ob Z1 > 30 ist, innerhalb der Schleife durchgeführt. Wenn die Bedingung erfüllt ist, wird die Schleife mit break verlassen.

in c++ bitte

Okay, hier ist die Lösung für die Aufgabe in C++.

Задание 1

Aufgabenstellung:

Erstellen Sie ein Programm, in dem der Benutzer zwei beliebige Zahlen Z1 und Z2 eingeben soll. Geben Sie dann zunächst den eingegebenen Wert für Z1 aus! Z1 soll dann zu Z2 addiert werden und das Ergebnis wieder in Z1 gespeichert werden. Geben Sie in der nächsten Zeile auf dem Bildschirm wieder Z1 aus! Führen Sie diese Berechnungen aus, solange Z1<=30 ist. Geben Sie jedes Mal in einer nächsten Zeile auf dem Bildschirm Z1 aus und überprüfen Sie dann die ausgegebenen Werte. Was ist hier sinnvoller? Eine kopf- oder eine fußgesteuert Schleife? Denken Sie bei der Beantwortung dieser Frage daran, dass der Benutzer schon Werte für Z1 und Z2 eingeben kann, deren Summe schon bei der ersten Addition größer als 30 werden.

Lösung:

Hier ist ein C++-Code, der die Anforderungen erfüllt:

#include <iostream>

int main() {
    int Z1, Z2;

    std::cout << "Bitte geben Sie die erste Zahl Z1 ein: ";
    std::cin >> Z1;

    std::cout << "Bitte geben Sie die zweite Zahl Z2 ein: ";
    std::cin >> Z2;

    std::cout << "Der eingegebene Wert für Z1 ist: " << Z1 << std::endl;

    while (Z1 <= 30) {
        Z1 = Z1 + Z2;
        std::cout << "Der neue Wert für Z1 ist: " << Z1 << std::endl;
    }

    std::cout << "Die Schleife wurde beendet, da Z1 größer als 30 ist." << std::endl;

    return 0;
}

Erläuterung:

  1. Include Header: #include <iostream> wird verwendet, um die Input/Output-Bibliothek einzubinden.
  2. Variablendeklaration: Zwei Integer-Variablen Z1 und Z2 werden deklariert.
  3. Eingabe: Das Programm fordert den Benutzer auf, zwei Zahlen, Z1 und Z2, einzugeben. Die Eingabe wird mit std::cin gelesen.
  4. Ausgabe des ursprünglichen Z1: Der ursprüngliche Wert von Z1 wird ausgegeben.
  5. Schleife: Eine while-Schleife wird verwendet, um die Berechnungen durchzuführen, solange Z1 kleiner oder gleich 30 ist.
  6. Addition und Speicherung: Innerhalb der Schleife wird Z2 zu Z1 addiert, und das Ergebnis wird wieder in Z1 gespeichert (Z1 = Z1 + Z2).
  7. Ausgabe des neuen Z1: Der neue Wert von Z1 wird in jeder Iteration ausgegeben.
  8. Schleifenbedingung: Die Schleife wird beendet, wenn Z1 größer als 30 wird.
  9. Abschließende Ausgabe: Nachdem die Schleife beendet ist, wird eine Meldung ausgegeben, die besagt, dass die Schleife beendet wurde, weil Z1 größer als 30 ist.

Welche Schleife ist sinnvoller?

Eine fußgesteuerte Schleife (z.B. do-while in C++) ist hier sinnvoller. Der Grund dafür ist, dass die Summe von Z1 und Z2 bereits beim ersten Mal größer als 30 sein könnte. In diesem Fall sollte die Berechnung gar nicht erst durchgeführt werden. Eine kopfgesteuerte Schleife (wie die verwendete while-Schleife) prüft die Bedingung zuerst, bevor der Code innerhalb der Schleife ausgeführt wird.

Hier ist ein Beispiel, wie man eine fußgesteuerte Schleife in C++ verwenden kann:

#include <iostream>

int main() {
    int Z1, Z2;

    std::cout << "Bitte geben Sie die erste Zahl Z1 ein: ";
    std::cin >> Z1;

    std::cout << "Bitte geben Sie die zweite Zahl Z2 ein: ";
    std::cin >> Z2;

    std::cout << "Der eingegebene Wert für Z1 ist: " << Z1 << std::endl;

    do {
        Z1 = Z1 + Z2;
        if (Z1 > 30) {
            std::cout << "Die Summe von Z1 und Z2 ist größer als 30. Die Schleife wird beendet." << std::endl;
            break;
        }
        std::cout << "Der neue Wert für Z1 ist: " << Z1 << std::endl;
    } while (true);

    std::cout << "Die Schleife wurde beendet." << std::endl;

    return 0;
}

In diesem Fall wird die Addition und die Prüfung, ob Z1 > 30 ist, innerhalb der Schleife durchgeführt. Wenn die Bedingung erfüllt ist, wird die Schleife mit break verlassen.

Photo
Löse bitte aufgabe 3

Okay, hier ist die Lösung für Aufgabe 3.

Задание 3

Aufgabenstellung:

Erzeugen Sie ein Programm, das je nach Benutzerauswahl den Widerstand, die Spannung oder den Strom nach dem Ohmschen Gesetz für einen Gleichstromkreis berechnet. Der Benutzer muss je nach Auswahl, die 2 benötigten Größen eingeben können.

Nach jeder Berechnung soll der Benutzer eine neue Auswahl treffen können – es sei denn der Benutzer wählt den vorzusehenden Menüpunkt ‚A‘ für das Abbrechen des Programms aus!

Hinweis: Ohmsches Gesetz: $U = R \cdot I$

Lösung:

Hier ist ein C++-Code, der die Anforderungen erfüllt:

#include <iostream>
#include <iomanip> // für std::setprecision

int main() {
    char auswahl;
    double widerstand, spannung, strom;

    do {
        std::cout << "\nBitte wählen Sie eine Berechnung:" << std::endl;
        std::cout << "R - Widerstand berechnen (R = U / I)" << std::endl;
        std::cout << "U - Spannung berechnen (U = R * I)" << std::endl;
        std::cout << "I - Strom berechnen (I = U / R)" << std::endl;
        std::cout << "A - Programm beenden" << std::endl;
        std::cout << "Ihre Auswahl: ";
        std::cin >> auswahl;

        switch (auswahl) {
            case 'R':
            case 'r': {
                std::cout << "Bitte geben Sie die Spannung (U) in Volt ein: ";
                std::cin >> spannung;
                std::cout << "Bitte geben Sie den Strom (I) in Ampere ein: ";
                std::cin >> strom;

                if (strom == 0) {
                    std::cout << "Strom darf nicht Null sein. Bitte versuchen Sie es erneut." << std::endl;
                } else {
                    widerstand = spannung / strom;
                    std::cout << "Der Widerstand (R) beträgt: " << std::fixed << std::setprecision(2) << widerstand << " Ohm" << std::endl;
                }
                break;
            }
            case 'U':
            case 'u': {
                std::cout << "Bitte geben Sie den Widerstand (R) in Ohm ein: ";
                std::cin >> widerstand;
                std::cout << "Bitte geben Sie den Strom (I) in Ampere ein: ";
                std::cin >> strom;

                spannung = widerstand * strom;
                std::cout << "Die Spannung (U) beträgt: " << std::fixed << std::setprecision(2) << spannung << " Volt" << std::endl;
                break;
            }
            case 'I':
            case 'i': {
                std::cout << "Bitte geben Sie die Spannung (U) in Volt ein: ";
                std::cin >> spannung;
                std::cout << "Bitte geben Sie den Widerstand (R) in Ohm ein: ";
                std::cin >> widerstand;

                if (widerstand == 0) {
                    std::cout << "Widerstand darf nicht Null sein. Bitte versuchen Sie es erneut." << std::endl;
                } else {
                    strom = spannung / widerstand;
                    std::cout << "Der Strom (I) beträgt: " << std::fixed << std::setprecision(2) << strom << " Ampere" << std::endl;
                }
                break;
            }
            case 'A':
            case 'a': {
                std::cout << "Programm wird beendet." << std::endl;
                break;
            }
            default:
                std::cout << "Ungültige Auswahl. Bitte versuchen Sie es erneut." << std::endl;
        }
    } while (auswahl != 'A' && auswahl != 'a');

    return 0;
}

Erläuterung:

  1. Include Header:
    • #include <iostream>: Für die Ein- und Ausgabe.
    • #include <iomanip>: Für die Formatierung der Ausgabe (z.B. std::setprecision).
  2. Variablendeklaration:
    • auswahl: Ein char, um die Benutzerauswahl zu speichern.
    • widerstand, spannung, strom: double-Variablen, um die Werte für Widerstand, Spannung und Strom zu speichern.
  3. Do-While-Schleife:
    • Die do-while-Schleife ermöglicht es dem Benutzer, mehrere Berechnungen durchzuführen, bis er sich entscheidet, das Programm zu beenden.
  4. Menüausgabe:
    • Das Programm gibt ein Menü mit Optionen zur Berechnung von Widerstand, Spannung oder Strom aus.
  5. Benutzerauswahl:
    • Der Benutzer gibt seine Auswahl ein, die in der Variable auswahl gespeichert wird.
  6. Switch-Anweisung:
    • Eine switch-Anweisung wird verwendet, um basierend auf der Benutzerauswahl die entsprechende Berechnung durchzuführen.
  7. Berechnungen:
    • Widerstand (R): Der Benutzer gibt Spannung (U) und Strom (I) ein. Der Widerstand wird mit $R = \frac{U}{I}$ berechnet. Es wird geprüft, ob der Strom Null ist, um eine Division durch Null zu vermeiden.
    • Spannung (U): Der Benutzer gibt Widerstand (R) und Strom (I) ein. Die Spannung wird mit $U = R \cdot I$ berechnet.
    • Strom (I): Der Benutzer gibt Spannung (U) und Widerstand (R) ein. Der Strom wird mit $I = \frac{U}{R}$ berechnet. Es wird geprüft, ob der Widerstand Null ist, um eine Division durch Null zu vermeiden.
  8. Ausgabe:
    • Das Ergebnis der Berechnung wird mit std::cout ausgegeben. std::fixed und std::setprecision(2) werden verwendet, um die Ausgabe auf zwei Dezimalstellen zu formatieren.
  9. Programm beenden:
    • Wenn der Benutzer 'A' oder 'a' wählt, wird die Schleife beendet und das Programm gibt eine Nachricht aus, dass es beendet wird.
  10. Ungültige Auswahl:
    • Wenn der Benutzer eine ungültige Auswahl trifft, wird eine Fehlermeldung ausgegeben.
  11. Schleifenbedingung:
    • Die Schleife wird fortgesetzt, solange die Auswahl nicht 'A' oder 'a' ist.

Dieses Programm ermöglicht es dem Benutzer, wiederholt Berechnungen nach dem Ohmschen Gesetz durchzuführen, bis er sich entscheidet, das Programm zu beenden.

thinking img
progress gif

Text kopiert
Fertig
Fehler
×