Frage zu Visual C++ 2008 Express edition



  • Hallo

    Seit heute versuche ich mich in der Programiersprache C++ zurecht zufinden.
    Also habe ich mich daran gemacht einige simple Programme zu schreiben.

    Allerdings komme ich bei einer Fragestellung nicht weiter. Auch das Suchen im Web hat mich nicht weiter gebracht.
    Das Problem ist eigentlich ganz Simpel.

    Ich möchte einProgramm schreiben welches mir Folgendes ausgibt:

    0
    00
    000
    0000
    00000
    000000
    0000000
    00000000
    000000000
    0000000000
    000000000
    00000000
    0000000
    000000
    00000
    0000
    000
    00
    0

    Dies soll in einer Schleife geschehen.
    Das programm soll also die 0 einlesen und sie um eine Zusätzliche 0 ergänzen bis 0000000000 ( 10 Nullen) ausgegeben werden, dann solle er das ganze rückwärts ablaufen lassen bis nur noch eine 0 da steht. Dannach soll die Schleife beendet werden.
    Allerdings finde ich einfach nicht den Befehl womit ich eine 0 um eine Weiter 0 ergänzen kann.

    Ich bedanke mich im Vorraus

    mfg



  • for-Schleife.



  • Aber wie sage ich dem Programm, dass er immer eine zusätzliche null "dazu packen soll"?



  • Angenommen du hast nen std::string...

    std::string str;
    for(int i=0; i < 10; ++i)
       str += "0";
    


  • Danke für die antwort.
    Ich werde mich melden, wenn das Programm läuft.



  • Ich habe einiges versucht aber ich bekomme es einfach nicht hin, das er mir ausspuckt was ich möchte.

    Ich hab folgendes eingegeben

    #include<iostream>
    
    int main(){
    
     int y;
     std::cout << "Bitte geben Sie die Null ein um das Programm zu starten \n";
    	 std::cin >> y;
    		for(int i=0; i < 10; ++i)
    			y += 0; 
    		std::cout<< y;
    		return 0;
    }
    

    Ich gebe die Null ein aber es passiert nichts.

    Wo ist der Fehler 😕



  • Naja, das liegt daran, dass du die Grundlagen der Programmierung noch so gut wie garnicht beherrschst...
    Du solltest vielleicht ein paar Online-Tutorials durcharbeiten, da gibt es viele die relativ gut sind.

    Dein Programm sollte ungefähr so aussehen:

    #include <iostream>
    #include <string>
    
    int main()
    {
    	// Wie ich bereits in meinem ersten Post erwähnt habe, brauchst du einen STRING um mit Zeichen bzw. Zeichenketten zu arbeiten
    	std::string str;
    
    std::cout << "Bitte geben Sie die Null ein um das Programm zu starten \n";
    	std::cin >> str;
    
    	for(int i=0; i < 10; ++i){
    		str += "0"; // Schließlich kannst du ja nur an einen String Zeichen anhängen, nicht an eine Ganzzahl wie sie der Datentyp int repräsentiert und du es versucht hast
    		std::cout << str << std::endl; // Und da du ja auch eine Ausgabe willst, musst du dem Programm das auch irgendwann mitteilen
    	}
    
    	return 0;
    }
    


  • was jetzt natürlich nur die halbe miete ist,
    0
    00
    000
    0000
    00000
    000000
    0000000
    00000000
    000000000
    0000000000

    das ganze rückwärts (um die nullen-menge von 9 bis 1 auszugeben) geht mit ein paar veränderten parametern fast genauso in einer zweiten schleifen.

    sieh dir mal an, welche funktionen die klasse string bietet. es gibt methoden mit denen man elemente löschen kann.
    http://www.cppreference.com/wiki/string/start

    ausgehend von dem string in dem 10 nullen stehen:

    als pseudo-code :
    schleifen-anfang:
    von 8 bis 0 (informatiker zählen von 0 an!), zähler pro durchlauf -1
    entferne letztes element aus string
    textausgabe des string
    schleifen-ende;



  • Anscheinend gerade eine beliebte Frage, sehe ich gerade zum Dritten mal. Schön das ihr euch dazu herablasst deren Hausaufgaben zu machen. Vor allem da sich anhand der Aufgabenstellung und Google diese Threads leicht finden lassen und sich so die Schüler schön selbst ans Bein pinkeln, wenn sie diese Lösungen abgeben. Gratulation zum Eigentor. 😃



  • hier mal meine lösung

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main(int argc, char** argv)
    {
        string out("");
        string bla;
        cout << "bitte zahl für ausgabe eingeben: ";
        cin >> bla;
        out = bla;
        cout << out << endl;
        for(int i=0;i<=9;i++)
        {
            out+=bla;
            cout << out << endl;
        }
        int l=bla.length();
        for(int i=out.length()-l;i>=l;i-=l)
        {
            cout << out.substr(0,i) << endl;
        }
        return 0;
    }
    

Log in to reply