cin User Eingabe (Anfänger Frage) c++



  • außerdem wird float(4/3) noch Probleme bereiten, korrekter wäre float(4)/3. Wobei in deinem Fall aber double günstiger wäre, da das Ergebnis auch double ist.
    Und weil du double-Literale auch in den Quelltext direkt schreiben kannst, ist 4.0/3 am günstigsten.



  • #include <cstdlib>
    #include <iostream>
    #include <cmath>
    #include <windows.h>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    //Formeln
    
    //V=G*H
    
     //Bei Pyramide , Kegel etc (Volumen)
    
    //V=1/3*G*H   
    //O=G+M 
    
    //Bei Kugel (Volumen, Oberflaeche)
    
    //4/3 * PI*r3
    
    //o=4*PI*r^2
    
    //Pi= 3,14159265
    
        //char und int Variabeln
    
                              //Beliebige Eingabe
        char iwas;
        char iwas2;
    //--------------------------------------------------------------------------------- 
    
                           //Variabeln(chars floats doubles)   
        char Kugel;
        char Pyramide;
        char Kegel;
        char Zylinder;
        char Volumen;
        float VolumenKegel;
        float KegelOberflaeche;
        float PyramideOberflaeche;
        float VolumenKugel;
        float OberflaecheKugel;
        float VolumenPyramide;
        double Hoehe;
        double grundflaeche;
        double radius;
        double Mantel;
        //Headder Strings
    
    string einfuehrung="Dies ist ein Programm zur Berecnung von Volumen , Oberflaeche , Mantel etc.. von einem beliebigen Objekt (Kugel , Pyramide ..)";
    string gemachtvon="Diese Programm wurde von ***** erstellt";
    string linie="--------------------------";    
    string Eingabe1="Geben sie das Objekt an , dass sie berechnen wollen (z.b Kugel)";
    string Eingabe2="Geben sie nun ein was sie berechnen wollen (z.b Volumen)";  
    string EingabeVolumen="Geben sie nun die Grundflaeche des Objekts an ";
    string EingabeVolumen2="Geben sie nun die Hoehe des Objekts an";
    string kugel= "Wenn das Objekt eine Kugel ist geben sie /m ein";
    string pyramide="Wenn das Objekt eine Pyramide ist geben sie /p ein";
    string kegel= "Wenn das Objekt ein Kegel ist geben sie /k ein";
    string zylinder="Wenn das Objekt ein Zylinder ist geben sie /z ein"; 
    
      cout<<gemachtvon<<endl<<linie<<endl<<einfuehrung<<endl<<linie<<endl; 
    
     cout<<kugel<<endl<<pyramide<<endl<<kegel<<endl<<zylinder<<endl<<endl;   
    
      cout<<Eingabe1<<endl;   
      cin>>iwas;
    
    if (iwas =='m')
    {
        cout<<endl<<endl;          
        cout<<"Sie haben sich fuer eine Kugel entschieden"<<endl<<endl<<"geben sie nun ein ob sie Volumen oder Oberflaeche etc... berechnen moechten"<<endl<<endl;          
        cout<<"Fuer Volumen /v fuer die Oberflaeche /o ..etc"<<endl;
        cin>>iwas2;
    
        if (iwas2=='v')
        {
    
            cout<<"Geben sie den Radius des Objekts ein"<<endl;
            cin>>radius;
    
            cout<<"Berechne das Volumen!!"<<endl; 
            //Berechnung
            float  VolumenKugel=float(4/3) * 3.14159265 * radius*radius*radius;
            Sleep(2000); 
            cout<<"Das Volumen der Kugel betraegt:"<<endl<<VolumenKugel<<"kubik(hier MASSEINHEIT)"<<endl<<endl;
    
         }          
    
                  if(iwas2=='o')
                  {
    
                     cout<<"Geben sie die Grundflaeche ein"<<endl;
                     cin>>grundflaeche;                             
                     cout<<"Geben sie die Hoehe ein "<<endl;
                     cin>>Hoehe;    
                     //Berechnung     
                     float OberflaecheKugel=float(4)*3.14159265*radius*radius;
                     Sleep(2000);
                     cout<<"Die Oberflaeche der Kugel betraegt:"<<endl<<OberflaecheKugel<<" quadrat(hier MASSEINHEIT)"<<endl<<endl;
                     cin.clear();         
    
                     }           
    
                     }
    
            if (iwas='p')    
    
        {
        cout<<endl<<endl;          
        cout<<"Sie haben sich fuer eine Pyramide entschieden"<<endl<<endl<<"geben sie nun ein ob sie Volumen oder Oberflaeche etc... berechnen moechten"<<endl<<endl;          
        cout<<"Fuer Volumen /v fuer die Oberflaeche /o ..etc"<<endl;
        cin>>iwas2;
    
        if (iwas2=='v')
        {
             cout<<"Geben sie die  Grundlaeche  des Objekts ein"<<endl;
            cin>>grundflaeche;
            cout<<"Geben sie die Hoehe des Objekts ein"<<endl;
            cin>>Hoehe;
            cout<<"Berechne das Volumen!!"<<endl; 
            //Berechnung
            float  VolumenPyramide=float(1/3) * grundflaeche * Hoehe ;
            Sleep(2000); 
            cout<<"Das Volumen der Pyramide betraegt:"<<endl<<VolumenPyramide<<"    kubik(hier MASSEINHEIT)"<<endl<<endl;
    
          }    
    
         if (iwas2=='o')
         {
    
          cout<<"Geben sie nun (evtl. nochmal) die Grundlflaeche  an"<<endl;
          cin>>grundflaeche;
          cout<<"Geben sie nun (evtl nochmal ) den Mantel ein"<<endl;
          cin>>Mantel;
          cout<<"Berechne die Oberflache!!"<<endl;
          //Berechnung            
          PyramideOberflaeche = float(grundflaeche)+Mantel;             
          cout<<"Die Oberflaeche der Pyramide betraegt:"<<endl<<PyramideOberflaeche<<"    quadrat(hier MASSEINHEiT)"<<endl<<endl;               
          cin.clear();              
    
         }               
    
        }                
    
            if (iwas='k')    
    
        {
        cout<<endl<<endl;          
        cout<<"Sie haben sich fuer einen Kegel entschieden"<<endl<<endl<<"geben sie nun ein ob sie Volumen oder Oberflaeche etc... berechnen moechten"<<endl<<endl;          
        cout<<"Fuer Volumen /v fuer die Oberflaeche /o ..etc"<<endl;
        cin>>iwas2;
    
        if (iwas2=='v')
        {
             cout<<"Geben sie die  Grundlaeche  des Objekts ein"<<endl;
            cin>>grundflaeche;
            cout<<"Geben sie die Hoehe des Objekts ein"<<endl;
            cin>>Hoehe;
            cout<<"Berechne das Volumen!!"<<endl; 
            //Berechnung
            float  VolumenKegel=float(1/3) * grundflaeche * Hoehe ;
            Sleep(2000); 
            cout<<"Das Volumen des Kegels betraegt:"<<endl<<VolumenKegel<<"    kubik(hier MASSEINHEIT)"<<endl<<endl;
    
          }    
    
         if (iwas2=='o')
         {
    
          cout<<"Geben sie nun (evtl. nochmal) die Grundlflaeche  an"<<endl;
          cin>>grundflaeche;
          cout<<"Geben sie nun (evtl nochmal ) den Mantel ein"<<endl;
          cin>>Mantel;
          cout<<"Berechne die Oberflache!!"<<endl;
          //Berechnung            
          KegelOberflaeche= float(grundflaeche)+Mantel;             
          cout<<"Die Oberflaeche des Kegels betraegt:"<<endl<< KegelOberflaeche<<"    quadrat(hier MASSEINHEiT)"<<endl<<endl;               
    
         }               
    
         }                   
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Ein bisschen komisch ich weiß ich weiß (vllt. ne Erklaerung zu den ganzen Strings Mein Gedanke war das ich alles der Übersichtlichkeits halber in strings schreibe habe das aber nicht bis zum ende durchgehalten..

    Nun mal wieder eine dumme Frage:

    Wenn ich jetzt m eingebe kommt die Kugel alles gut
    Dann erscheint aber sofort , dass ich mich fuer eine Pyramide entschieden habe =????

    Achja wenn ihr noch Verbesserungsvorschläge habt postest sie alle^^.

    Wie gesagt ich "programmiere" erst seit 1-2 Wochen insofern...

    Immer diese Operatoren mir ist aufgefallen dass ich wieder = anstatt == geschrieben habe trotzdem danke ich euch allen !



  • Kann mir dann noch iwer die korrekte Benutzung von float Variablen erklaeren
    ich dachte , dass man diese immer in Berrechnungen verwenden muss? 🙄



  • Wenn du konkrete Fragen und einen minimalen Code dazu posten kannst, gerne. Aber was float s sind, liest du vielleicht besser in deinem C++-Buch nach...

    P.S.: Natürlich muss man float nicht in Berechnungen verwenden.



  • Ist es nicht sogar eigentlich bessern ebend _keine_ floats aufgrund deren Ungenauigkeit zu verwenden? von wegen, 1.0 + 1.0 = 1.99999999999->
    Je nachdem wie genau da grade das Rechenwerk ist :>



  • Ok danke aber hier

    float  VolumenPyramide=float(1/3) * grundflaeche * Hoehe ;
    

    Hab ich doch theoretisch alles richitg gemacht 1/3 = 0.333.. ergo Fließkommazahl
    ergo float aber warum komm da immer 0 raus egal was ich fuer grundlaeche und Hoehe eingebe?



  • Hab ich doch theoretisch alles richitg gemacht 1/3 = 0.333.. ergo Fließkommazahl

    Eben nicht.

    float(1/3) heißt für den Kompiler:
    Werte die Integerdivision (!) 1/3 aus und konvertiere das Ergebnis in ein float. D.h. float(1/3) == 0.0

    Richtig wäre: float(1)/3, oder einfacher 1.f/3 oder 1.0/3

    ....



  • weil du die beiträge über dir nicht gelesen hast...
    1/3 ist nicht 0.3333333 oder 0.33 oder was auch immer.
    es ist eben 0
    1./3 ist 0.333333
    oder 1.0/3 oder 1/3. oder 1/3.0 oder 1.0/3.0 oder float(1)/3 oder double(1)/3 usw.

    bb



  • Ich danke dir . Muss ich wohl einiges nochmal nachholen



  • Das ist wie damals in der Grundschule. 7/3 ist 2 Rest 1. Genauso ist 7/3 in einem C++-Programm 2, da wird der Rest ignoriert. Den kriegst du dann mit dem Modulo-Operator (%): 7%3 ist 1. Sobald einer der Operanden allerdings float oder double ist, ist das Ergebnis der Operation auch float oder double.


Anmelden zum Antworten