Programm stimmt nicht oder unvollständig



  • Na ein Problem ist schon mal die Einrückung. :p

    EDIT: Mentras hat natürlich Recht. Eine Fehlerbeschreibung wäre wünschenswert. Um die Zeit ist meine Kristallkugel schon im Bett...



  • Also gut ich hab noch was kleines geändert nun sieht er so aus....

    //INFO: -eingabeprüfung auf buchstabe/zahl
    //      -eingabeprüfung auf zahlenbereich
    //      -wiederholung einbauen vill...
    
    #include <iostream>
    using namespace std;
    
    int main()
    {
        int eingabe;
    
        cout<<"Geben sie eine zahl ein> ";
        cin>>eingabe;
    
        if(eingabe>0 && eingabe<13)
        {
            switch(eingabe)
            {
                case 1:
                    cout<<"eins"<<endl;
                    break;
                case 2:
                    cout<<"zwei"<<endl;
                    break;
                case 3:
                    cout<<"drei"<<endl;
                    break;
                case 4:
                    cout<<"vier"<<endl;
                    break;
                case 5:
                    cout<<"fuenf"<<endl;
                    break;
                case 6:
                    cout<<"sechs"<<endl;
                    break;
                    case 7:
                    cout<<"sieben"<<endl;
                    break;
                case 8:
                    cout<<"acht"<<endl;
                    break;
                case 9:
                    cout<<"neun"<<endl;
                    break;
                case 10:
                    cout<<"zehn"<<endl;
                    break;
                case 11:
                    cout<<"elf"<<endl;
                    break;
    
            }
        }
    
        const char *vw[]={"zehn", "drei", "vier", "fuenf", "sech", "sieb", "acht", "neun"};
        const char *xy[]={"einund", "zweiund", "dreiund", "vierund", "fuenfund", "sechsund", "siebenund", "achtund", "neunund"};
        const char *wx[]={"zwanzig", "dreisig", "vierzig", "fuenfzig", "sechzig", "siebzig", "achtzig", "neunzig"};
    
        int x;
        int y;
    
        char anf[10];
        char end[10];
    
            if(eingabe>=13 && eingabe<=19)
            {
                x=eingabe/10;
                y=eingabe%10-1;
    
                strcpy(anf, vw[y-1]);
                //cout<<anf;
                }
                fflush(stdin);
                getchar();
                return 0;
    }
    

    Nun klapp alles so weit... Ich gebe eine Zahl ein z.B 6 und er gibt mir "Sechs" aus... das ist ja alles ok aber nun möchte ich das ich gleich wieder eine zahl eingeben kann und nicht das die Konsole gleich zu geht...



  • Dann musst du das alles in eine Schleife packen. Mach dich in der Richtung mal schlau. Es gibt verschiedene Arten von Schleifen (while, do-while, for).



  • Ja while kenn ich könntest du ein Beispiel machen bitte.



  • _matze schrieb:

    Mentras hat natürlich Recht.

    Endlich höre ich was glückliches von dir 🙂

    nun möchte ich das ich gleich wieder eine zahl eingeben kann und nicht das die Konsole gleich zu geht...

    LoL, du hast das Programm programmiert, aber auf das kommst du nicht? oO

    Nimm doch eine Bool-Schleife, und wenn sie beendet werden soll, bekommt sie einen falschen wert zurückgeliefert 🙂

    €dit:

    while(true) 
    { 
    //Do that shit...
    Falls ich nicht mehr im Programm sein will...
    return(false)
    }
    

    Lg Mentras



  • Wie kann ich das so einfügen das es mir nicht unendlichmal das gleiche ausgibt... aber auch nicht das ich immer falls diese zahl = und nun raus aus der schleife sondern das es möglichst mit einer geht...



  • Mentras schrieb:

    Endlich höre ich was glückliches von dir 🙂

    Gerne doch! 🙂 Aber... ( :p )

    Mentras schrieb:

    while(true) 
    { 
    //Do that shit...
    Falls ich nicht mehr im Programm sein will...
    return(false)
    }
    

    Lg Mentras

    Das halte ich für nicht so günstig. Eventuell will man doch am Programmende noch Abschließendes (z.B. Speicher freigeben, abschließende Meldung...) oder Weiterführendes (Programm geht halt einfach weiter) erledigen. Da ist ein return nicht die beste Lösung, um aus der Schleife zu kommen.

    bool goOn=true;
    while(goOn) { 
      //Do that shit...
    
      //Falls ich nicht mehr im Programm sein will...
      goOn=false;
    }
    //Sobald man goOn auf false gesetzt hat, wird die Schleife verlassen. Tada!
    


  • 007 schrieb:

    Wie kann ich das so einfügen das es mir nicht unendlichmal das gleiche ausgibt... aber auch nicht das ich immer falls diese zahl = und nun raus aus der schleife sondern das es möglichst mit einer geht...

    Sorry, kannst du das noch mal ein wenig deutlicher formulieren? Versteh ich wirklich nicht...



  • Ahhh, da hab ich mal wieder was von dir gelernt x)

    Danke _matze!



  • naja mir fällt da grad noch was anderes auf nämlich das mein Programm nur zahlen von 1-11 ind wörter umwandelt die anderen leider nicht nun wie kann ich das ändern das ich nicht jede zahl mit case bla und so weiter schreiben muss



  • 007 schrieb:

    naja mir fällt da grad noch was anderes auf nämlich das mein Programm nur zahlen von 1-11 ind wörter umwandelt die anderen leider nicht nun wie kann ich das ändern das ich nicht jede zahl mit case bla und so weiter schreiben muss

    Sowas in der Art hast du doch schon mit deinen String-Arrays vorbereitet. Also mach einfach weiter. Das soll dir ja schließlich keiner hier vorkauen. Probier einfach noch ein wenig rum, setz deinen Verstand ein, und bei weiteren Detailfragen melde dich.



  • Ich bin das schon so lange am versuchen darum hab ich mich ja erst hier gemolden weil ich nicht mehr weiter weiss nun ist es schon so spät und bin langsam ko von dem ganzen...

    Darum wäre ich echt froh um Hilfe...



  • 007 schrieb:

    Ich bin das schon so lange am versuchen darum hab ich mich ja erst hier gemolden weil ich nicht mehr weiter weiss nun ist es schon so spät und bin langsam ko von dem ganzen...

    Darum wäre ich echt froh um Hilfe...

    Ok, Moment...



  • Gut, ausnahmsweise:

    #include <iostream>
    #include <limits>
    
    using namespace std; 
    
    int main() 
    { 
    	const char *Strings12[]={"null", "eins", "zwei", "drei", "vier", "fuenf", "sechs", "sieben", "acht", "neun", "zehn", "elf", "zwoelf"}; 
    	const char *Strings19[]={"drei", "vier", "fuenf", "sech", "sieb", "acht", "neun"}; 
    	const char *Strings99_pre[]={"einund", "zweiund", "dreiund", "vierund", "fuenfund", "sechsund", "siebenund", "achtund", "neunund"}; 
    	const char *Strings99_post[]={"zwanzig", "dreissig", "vierzig", "fuenfzig", "sechzig", "siebzig", "achtzig", "neunzig"}; 
    	int eingabe; 
    
    	cout<<"Geben sie eine zahl ein> "; 
    	if(cin>>eingabe) {
    		if(eingabe<0) {
    			cout << "Bitte keine negativen Zahlen eingeben!" << endl;
    		}else	if(eingabe<=12) {
    			cout << Strings12[eingabe];
    		}else if(eingabe<=19) {
    			cout << Strings19[eingabe%10-3] << "zehn";
    		}else if(eingabe<=99) {
    			cout << Strings99_pre[(eingabe%10)-1] << Strings99_post[(eingabe/10)-2];
    		}else {
    			cout << "Bitte nur Zahlen kleiner 100 eingeben!" << endl;
    		}
    	}else {
    		cout << "Bitte eine Zahl eingeben!" << endl;
    	}
    	std::cin.clear(); 
    	std::cin.ignore(std::numeric_limits<int>::max(),'\n');
    	getchar();
    }
    

    Jetzt pack eine Schleife und eine kleine Ablaufsteuerung (z.B. Programm abbrechen) rein.

    EDIT: Du kannst ja auch noch Hunderter und Tausender einbauen, das ist nicht so schwer...

    EDIT2: Und verbring die nächste Zeit am besten damit, dir einige Grundlagen beizubringen. Nur so kommt man auf Dauer weiter. Lies mal ein Tutorial oder ein Buch, das bringt einfach mehr als einfach drauf loszuprogrammieren. Wie du selbst gemerkt hast, erreicht man sein Ziel nicht ohne Verständnis der Sprachmittel und Grundwissen. 🙂



  • Danke schon mal

    Was ist Strings



  • 007 schrieb:

    Danke schon mal

    Was ist Strings

    http://de.wikipedia.org/wiki/Zeichenkette
    😮



  • Ich glaube eher er meint die Variable...denn du hast keine Strings verwendet außer C-Strings...



  • Vielleicht sollte man das Problem in die FAQ aufnehmen. Die "Zahlenumwandler" nehmen ja gar kein Ende mehr. Jeden Tag einer. 😃



  • Mitleid schrieb:

    Vielleicht sollte man das Problem in die FAQ aufnehmen. Die "Zahlenumwandler" nehmen ja gar kein Ende mehr. Jeden Tag einer. 😃

    Das steht schon seit Ewigkeiten dort.

    Leider sind die FAQ so gut wie nutzlos, da viele der dort aufgenommenen Fragen entweder selten gestellt werden, sich thematisch überlappen oder sich in nutzlosen Beiträgen verlieren. Das Ganze sollte man mal neu strukturieren, aber momentan lesen wohl die wenigsten die FAQ. 😞



  • Echt? Das steht drin? Hab das eigentlich nur als Scherz gemeint. 🙂

    Dann bräuchte das Forum neben den FAQ so etwas wie eine Hausaufgabenecke. Obwohl, na ja, würde mehr schaden als nützen.

    Ich weiß nicht, zu meiner Zeit war der ganze Computerkram noch freiwillig. Wir haben uns richtig gefreut vor die Kisten zu dürfen. Da war jeder stolz auf seine individuelle, wenn auch teils seltsame, Lösung.

    Sollten die heute c++ auf den regulären Lehrplan stehen haben, dann fände ich das schon sehr übertrieben. Aber, anders kann ich mir die Menschen nicht erklären, die hier, oft ohne jegliches Wissen, die Hausaufgaben gemacht bekommen wollen. Da muss das Interesse ja absolut NULL sein.


Anmelden zum Antworten