Wer kann mir ein paar tips zu einem programm geben



  • Eine geeignete Auskapselung in eine Funktion wäre z.B. der Part in dem du eine Reihe mit Sternchen malst...

    void OutputRow(int len) {
      for(int i = len - 1; i != 0; --i)
        cout << "*";
      cout << endl;
    }
    

    EDIT: Sorry, Codetags vergessen 😃

    [ Dieser Beitrag wurde am 20.06.2003 um 19:47 Uhr von MaSTaH editiert. ]



  • Ic versuchs auch mal 🙂 (überarbeitete Version von beiden vorherigen einträgen ^^ 🙂 😉 )

    #include <iostream>
    
    using namespace std;
    
    void OutputRow(int len) 
    {
      for(int i=0; i<len; ++i)
        cout << "*";
      cout << endl;
    }
    
    int main()
    {
        int zahl=0;
    
        cout << "Geben Sie eine Zahl ein: ";
        cin >> zahl;
        cout << endl;
    
        for(int i=1; i<2*zahl; ++i) 
            OutputRow((zahl-abs(zahl-i))*2-1);
    
        return 0;
    }
    

    [ Dieser Beitrag wurde am 20.06.2003 um 20:27 Uhr von DasPinsch editiert. ]

    [ Dieser Beitrag wurde am 20.06.2003 um 20:30 Uhr von DasPinsch editiert. ]



  • #include <iostream>
    using namespace std ;
    
    int main ()
    {
    
    char Buchstaben;
    while(Buchstaben){ //beginn der while Schleife ohne b 
    
    cout << endl; //Platz schaffen 
    
    //Menue wird gestartet
    
    cout << "Geben sie bitte die Buchstaben a,b,r oder u ein: ";
    cin >> Buchstaben;
    
    cout << endl ; //Platz schaffen
    cout << endl ;
    
    switch(Buchstaben) //Switch Umgebung fängt an
    {
    
    //Der erste Unterpunkt von Switch
    
    case 'a':{cout << "Der vollständige Zeichensatz für den Integerbereich von -128 bis 127 lautet: " << endl;
    
    cout << endl ;
    cout << endl ; //Platz schaffen
    cout << endl ;
    
    for(int i=-128;i<128;i++) { //for Schleife
    cout << char(i);
    } //ende der for Schleife 
    
    cout << endl ; //Platz schaffen
    cout << endl ;
    cout << endl ;} break; 
    
    //Der zweite Unterpunkt von Switch 
    
    case 'r':{cout << "Geben sie bitte eine Dezimahlzahl ein: " ;
    double zahl ;
    cin >> zahl ;
    
    if (zahl >=0) {
    cout << "Die gerundete Dezimahlzahl lautet: "
    << int(zahl+0.5); 
    }
    
    cout << endl ; //Platz schaffen
    cout << endl ;
    
    if (zahl <0) {
    cout << "Die gerundete Dezimahlzahl lautet: "
    << int(zahl-0.5)<< endl;
    
    cout << endl ; //Platz schaffen
    cout << endl ;
    }
    
    }break;
    
    //Der dritte Unterpunkt von Switch
    
    case 'u':{cout << "Geben sie bitte einen Buchstaben ein: " ;
    char zeichen ;
    cin >> zeichen ;
    
    if( zeichen >= 'A' && zeichen <= 'Z') {
    cout << "Der Gegenbuchstabe lautet: " << char(tolower(zeichen))<< endl;
    }
    
    if( zeichen >= 'a' && zeichen <= 'z') {
    cout << "Der Gegenbuchstabe lautet: " << char(toupper(zeichen))<< endl;
    }
    
    if (!(zeichen >= 'A' && zeichen <= 'Z'|| zeichen >= 'a' && zeichen <= 'z')) { 
    cout << "Fehler! Sie müssen einen Buchstaben eingeben. "<< endl;
    }
    
    }break;
    
    //Der vierte Unterpunkt von Switch
    
    case 'b':{return 0 ;}break;
    
    //Der Unterpunkt von Switch wenn keine der ersten zutrift
    
    default:{ cout << "Weder a,b,r,u wurde eingegeben.Sie müssen einen der am Anfang genannten Buchstaben eingeben um das Menü zu starten. "
    << endl;}break;
    
    } //switch Umgebung beendet
    
    } //while Schlife beendet
    
    } //Programm beendet
    


  • Oh, machen wir neuerdings doch Hausaufgaben für andere? 😕



  • Solange die Anderen sich dann mit der Lösung befassen und versuchen diese zu kapieren is das ja ncih so schlimm...



  • Hallo Gartenzwerg.
    Das Programm ist Ok.Hab ich verstanden.
    Aber wie baue ich jetzt aus den Sternchen Eine Raute?
    Muß ich da Leerzeichen einbauen oder so was?
    Oder kann man das mit implementierung machen?
    Wäre net wenn du mir ein paar Tips geben könntest.
    Danke.

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int zahl=0;
    
        cout << "Geben Sie eine Zahl ein: ";
        cin >> zahl;
        cout << endl;
    
        for(int i=1; i<=zahl; i++)
        {
            for(int j=1; j<=2*i-1; j++)
            {
                cout << "*";
            }
    
            cout << endl;
        }
    
        for(int k=zahl-1; k>=0; k--)
        {
            for(int l=1; l<=2*k-1; l++)
            {
                cout << "*";
            }
    
            cout << endl;
        }
    
        return 0;
    }
    


  • kann mir da keiner weiterhelfen?
    Wäre euch echt sehr dankbar.



  • hi,
    jetzt ist es nur eine halbe Route. Soll es eine ganze werden ca. so?

    *
      ***
     *****
    *******
     *****
      ***
       *
    

    Ich dachte du willst nur eine halbe Route, aber das lag wahrscheinlich an den vergessenen Code-Tags.
    Für eine ganze Route würde ich einfach Leerzeichen nehmen.

    #include <iostream>
    
    using namespace std;
    
    void OutputRow(int sterne, int leerzeichen)
    {
        for(int i=0; i<leerzeichen; i++)
        {
            cout << " ";
        }
    
        for(int j=0; j<sterne; j++)
        {
            cout << "*";
        }
    
        cout << endl;
    
    }
    
    int main()
    {
        int zahl=0;
    
        cout << "Geben Sie eine Zahl ein: ";
        cin >> zahl;
        cout << endl;
    
        for(int i=1; i<=zahl; i++)
        {
            OutputRow(2*i-1, zahl-i);
        }
    
        for(int k=zahl-1; k>=0; k--)
        {
            OutputRow(2*k-1, zahl-k);
        }
    
        return 0;
    }
    

    Wenn du keine Leerzeichen nehmen willst, kannst du dir die Funktionen der <iomanip.h> mal angucken.

    Tschau Gartenzwerg



  • Danke Gartenzwerk.
    So hatte ich mir das vorgestellt.



  • hi,
    keine Ursache! 😉

    Aber du kannst Gartenzwerg trotzdem mit "g" am Ende schreiben 🙄

    Tschau Gartenzwerg


Anmelden zum Antworten