Visual C++ Entweder/oder Ausgabe



  • Cybertec schrieb:

    Wieso mischt du in deinem Programm C und C++?

    Und wieso ist die Variable Temperatur zuerst double, und dann willst du int machen? Mal davon abgesehen dass es eh nicht geht, was auch genau deine Fehlermeldung sagt.

    Außerdem ist in deiner Abfrage ein logischer Fehler vorhanden.

    Danke für die Hilfe jetzt funktioniert alles wie es soll.

    falls es irgendjemanden interessieren sollte 😉 mein Code ist :

    #include "StdAfx.h"
    #include <iostream>
    #include <stdio.h>

    using namespace std;
    int _tmain(int argc, _TCHAR* argv[])
    {
    int Temperatur = 30;
    cin >> Temperatur;

    if (Temperatur >= 30)
    {
    printf_s("Heute ist ein schöner Tag. Viel zu schön, um zu arbeiten!");
    }
    else
    {
    printf_s("Ist schon wieder Eiszeit? :D");
    }

    system("pause");
    return 0;
    }



  • sag mal, hast du im Unterricht geschlafen?! Auch wenn es funktioniert, dein Code ist Murks!



  • ohjeohje schrieb:

    sag mal, hast du im Unterricht geschlafen?! Auch wenn es funktioniert, dein Code ist Murks!

    Bin leider erst nachträglich in die Klasse gekommen, da ich ein Einstiegs-Qualifizierungs-Jahr mache und muss das alles jetzt nachholen.

    Wie wärs den wen du mir erzählst was ich besser machen kann, statt bloß festzustellen das es falsch ist ???
    Wäre ich die sehr dankbar für



  • also ich empfehle dir dich zunächst mal für eine Programmiersprache zu entscheiden. Entweder C oder C++, beides mischen ist nur so lange cool, bis es irgendwann irgendwo knallt.

    Bsp.:
    du nutzt cin zum Einlesen. Woher hast du diesen Befehl? cin ist C++. Als Ausgabe nutzt eine der prints, woher hast du diesen Befehl? Das Gegenstück zu cin ist cout...

    Das schnelle Aufholen-Wollen bringt dir nichts, wenn du nicht den Hauch einer Ahnung hast, was du da überhaupt tust.



  • ohjeohje schrieb:

    also ich empfehle dir dich zunächst mal für eine Programmiersprache zu entscheiden. Entweder C oder C++, beides mischen ist nur so lange cool, bis es irgendwann irgendwo knallt.

    Bsp.:
    du nutzt cin zum Einlesen. Woher hast du diesen Befehl? cin ist C++. Als Ausgabe nutzt eine der prints, woher hast du diesen Befehl? Das Gegenstück zu cin ist cout...

    Das schnelle Aufholen-Wollen bringt dir nichts, wenn du nicht den Hauch einer Ahnung hast, was du da überhaupt tust.

    Den Befehl prints habe ich aus diesem Post:

    Th69 schrieb:

    if-else-Anweisung

    Habe meinen Code nocheinmal überarbeitet.
    Ist es so besser?

    #include "stdafx.h"
    #include <iostream>

    using namespace std;
    int _tmain(int argc, _TCHAR* argv[])
    {
    double Temperatur;
    cout << "Wie warm bzw. kalt ist es heute?";
    cin >> Temperatur;

    if (Temperatur>30)
    {
    cout<< "Heute ist ein schöner Tag. Viel zu schön, um zu arbeiten!" << endl;
    }

    if (Temperatur==30)
    {
    cout<< "Heute ist ein schöner Tag. Viel zu schön, um zu arbeiten!" << endl;
    }

    if (Temperatur<30)
    {
    cout<< "Viel zu kalt um zu arbeiten : D" << endl;
    }

    system("pause");
    return 0;
    }



  • und den cin-Befehl aus dem Schulunterricht? Dann solltest du cin als Eingabe und cout als Ausgabe verwenden. Die if-else-Abfrage war schon ok mit dem >=
    Wichtig ist, wenn du einen integer anlegst, immer mit 0 initialisieren, einen double entsprechend mit 0.0

    für dein Programm reicht folgendes:

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int Temperatur = 0;
    
    	cin >> Temperatur;
    
    	if (Temperatur >= 30)
    	{
    		cout << "Heute ist ein schöner Tag. Viel zu schön, um zu arbeiten!";
    	}
    	else
    	{
    		cout << "Ist schon wieder Eiszeit? :D";
    	} 
    
    	return 0;
    }
    

    P.S. poste deinen Code immer in die entsprechenden Tags!



  • ohjeohje schrieb:

    und den cin-Befehl aus dem Schulunterricht? Dann solltest du cin als Eingabe und cout als Ausgabe verwenden. Die if-else-Abfrage war schon ok mit dem >=
    Wichtig ist, wenn du einen integer anlegst, immer mit 0 initialisieren, einen double entsprechend mit 0.0

    für dein Programm reicht folgendes:

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int Temperatur = 0;
    
    	cin >> Temperatur;
    
    	if (Temperatur >= 30)
    	{
    		cout << "Heute ist ein schöner Tag. Viel zu schön, um zu arbeiten!";
    	}
    	else
    	{
    		cout << "Ist schon wieder Eiszeit? :D";
    	} 
    
    	return 0;
    }
    

    P.S. poste deinen Code immer in die entsprechenden Tags!

    Ja, den cin-Befehl habe ich aus der Schule.

    Habe dies jetzt auf einer weiteren Aufgabe angewendet, allerdings habe ich statt int, double benutzt, da wir in der Schule auch double genutzt haben.
    Ist dies so in ordnung:

    using namespace std;
    int main()
    {
    		double Umsatz;
    		cout << "Geben Sie bitte den Umsatz ein:";
    		cin >> Umsatz;
    		cout << "" << endl;
    
    		if (Umsatz>=100000)
    		{
    			cout<< "Die Provision beträgt:" << (Umsatz/100)*7.5 << "EUR"<< endl;
    			cout << "" << endl;
    		}
    
    		else
    		{
    			cout<< "Die Provision beträgt:" << (Umsatz/100)*5 << "EUR"<< endl;
    			cout << "" << endl;
    		}
    
    	system("pause");
    	return 0;
    }
    


  • #include <iostream> vergessen und deinen Variable nicht initialisiert

    #include <iostream>
    using namespace std;
    
    int main()
    {
            double Umsatz = 0.0;
    
            cout << "Geben Sie bitte den Umsatz ein:";
            cin >> Umsatz;
            cout << "" << endl;
    
            if (Umsatz >= 100000)
            {
                cout << "Die Provision beträgt: " << (Umsatz/100)*7.5 << "EUR"<< endl;
                cout << "" << endl;
            }
    
            else
            {
                cout << "Die Provision beträgt: " << (Umsatz/100)*5 << "EUR"<< endl;
                cout << "" << endl;
            }
    
        system("pause");
        return 0;
    }
    


  • ohjeohje schrieb:

    #include <iostream> vergessen und deinen Variable nicht initialisiert

    #include <iostream>
    using namespace std;
    
    int main()
    {
            double Umsatz = 0.0;
    
            cout << "Geben Sie bitte den Umsatz ein:";
            cin >> Umsatz;
            cout << "" << endl;
           
     
       
            if (Umsatz >= 100000)
            {
                cout << "Die Provision beträgt: " << (Umsatz/100)*7.5 << "EUR"<< endl;
                cout << "" << endl;
            }
       
            else
            {
                cout << "Die Provision beträgt: " << (Umsatz/100)*5 << "EUR"<< endl;
                cout << "" << endl;
            }
     
     
        system("pause");
        return 0;
    }
    

    #include <iostream> habe ich vergessen zu kopieren, ohne würde das ganze ja nicht einmal laufen.

    Wofür muss ich die Variable initialisieren und was kann passieren wen ich das nicht mache?



  • Du initialisierst sie ja gleich via cin >> Umsatz; das =0; ist also unnötig.



  • matrix580 schrieb:

    Wofür muss ich die Variable initialisieren und was kann passieren wen ich das nicht mache?

    Leg mal eine Variable an, und lasse sie dir direkt wieder ausgeben. 😉

    #include <iostream>
    using namespace std;
    
    int main()
    {
        double Umsatz;
        cout<<Umsatz;
    
        system("pause");
        return 0;
    }
    


  • Folgendes Problem habe ich schon gelöst : D
    ich musste einfach else hinzufügen.

    Ich habe ein weiteres Problem bei einer anderen Aufgabe.
    Die Aufgabenstellung lautet:

    Situationsbeschreibung:
    Ein Bauartikelhändler gewährt seinen Kunden beim Kauf von Dachziegeln einen
    Mengenrabatt. Rabattstaffel:
    • bis 500 Stück: 2%
    • bis 1000 Stück: 5%
    • über 1000 Stück: 10%
    Kunden mit einer Geschäftsbeziehung von mehr als 10 Jahren und einer Menge von
    mehr als 1000 Stück erhalten einen zusätzlichen Rabatt von 5%.
    Sie sind Auszubildende der Softwarefirma CunoSoft und erhalten den Auftrag ein
    Programm zu erstellen, das nach Eingabe des Stückpreises, der Menge und der
    Dauer der Geschäftsbeziehung den Rabatt ermittelt und den Endpreis ausgibt.

    Mein Problem ist das wen ich nachdem ich die Menge, den Preis pro Stück und die Beziehung angegeben habe; er einfach abbricht die Konsole offen lässt, mich aber direkt zurück ins Visual C++ schickt.

    PS: Mir fällt grade auf, das er mir erst was ausgibt wen ich in Visual C++ erneut debuge.
    Allerdings gibt er mir wen ich unter 8 Jahre beziehung ausgebe gar nichts mehr aus
    Mein Code lautet

    #include "stdafx.h"
    #include <iostream>
    
    using namespace std;
    int main()
    {
    		double Menge=0.0;
    		double Preispro=0.0;
    		double Beziehung=0.0;
    
    		cout << "Preis pro Stück  :";
    		cin >> Preispro;
    
    		cout << "" << endl;
    
    		cout << "Menge:";
    		cin >> Menge;
    
    		cout << "" << endl;
    
    		cout << "Dauer der Geschäftsbeziehung :";
    		cin >> Beziehung;
    
    		if (Menge<500 && Beziehung>10000)
    		{
    			cout<< "Listenpreis :" << Preispro*Menge << "EUR"<< endl;
    			cout << "" << endl;
    			cout << "- Rabatt" << ((Preispro*Menge)/100)*2 << endl;
    			cout << "= Zielpreis" << Preispro*Menge-((Preispro*Menge)/100)*2 << endl;
    		}
    
    		if (Menge>500 && Beziehung>10000)
    
    		{
    			cout<< "Listenpreis:" << Preispro*Menge << "EUR"<< endl;
    			cout << "" << endl;
    			cout << "- Rabatt" << ((Preispro*Menge)/100)*5 << endl;
    			cout << "= Zielpreis" << Preispro*Menge-((Preispro*Menge)/100)*5 << endl;
    		}	
    
    		if (Menge>1000 && Beziehung<10)
    
    		{
    			cout<< "Listenpreis:" << Preispro*Menge << "EUR"<< endl;
    			cout << "" << endl;
    			cout << "- Rabatt" << ((Preispro*Menge)/100)*10 << endl;
    			cout << "= Zielpreis" << Preispro*Menge-((Preispro*Menge)/100)*10 << endl;	
    		}
    
    		if (Menge>1000 && Beziehung>=10)
    
    		{
    			cout<< "Listenpreis:" << Preispro*Menge << "EUR"<< endl;
    			cout << "" << endl;
    			cout << "- Rabatt" << ((Preispro*Menge)/100)*15 << endl;
    			cout << "= Zielpreis" << Preispro*Menge-((Preispro*Menge)/100)*15 << endl;	
    		}
    
    	system("pause");
    	return 0;
    }
    


  • Du solltest nach dem EVA(Eingabe-Verarbeitung-Ausgabe)-Prinzip arbeiten, d.h. zuerst die Preise berechnen und am Schluß die Ausgabe.
    In etwa so:

    // Eingabe
    ...
    
    // Verarbeitung
    double listenpreis = Preispro * Menge;
    double rabatt = 0;
    
    // hier nun deine if-else-Anweisungen
    if (...)
    {
      rabatt = ...;
    }
    else if (...)
    {
      rabatt = ...;
    }
    
    double zielpreis = listenpreis - rabatt;
    
    // Ausgabe
    cout<< "Listenpreis:" <<  listenpreis << "EUR"<< endl;
    cout << "" << endl;
    cout << "- Rabatt" << rabatt << endl;
    cout << "= Zielpreis" << zielpreis << endl;
    

    Und wenn du demnächst etwas über Funktionen lernst, dann kannst du die einzelnen Code-Teile auslagern.



  • Caligulaminus schrieb:

    Du initialisierst sie ja gleich via cin >> Umsatz; das =0; ist also unnötig.

    in dem fall vllt, aber ein guter softi initialisiert immer seine variablen!


Anmelden zum Antworten