Problem mit Ausgabe



  • Wie kann ich folgende Konsolenausgabe (iterativ) erzeugen?

    1
    1 2
    1 2 3
    1 2 3 4
    1 2 3 3 5
    1 2 3 4 5 6
    


  • was hast du denn schon?



  • Schleifen ( for ), int und std::cout .



  • for (int i = 1; i<=6 ; i++)
        {
        cout << i << " ";
        }
    

    Das habe ich. Ich weiß einfach nicht, wie ich es machen kann, dass das Programm in der neuen Zeile bei 1 anfängt.



  • Für solche Hausaufgaben bietet sich das berühmte 'for-case-modell' an:

    for (int i=1; i<=6; ++i)
    {
     switch(i)
     {
      case 1: std::cout << "1" << std::endl; break;
      case 2: std::cout << "1 2" << std::endl; break;
      case 3: std::cout << "1 2 3" << std::endl; break;
      case 4: std::cout << "1 2 3 4" << std::endl; break;
      case 5: std::cout << "1 2 3 4 5" << std::endl; break;
      case 6: std::cout << "1 2 3 4 5 6" << std::endl; break;
     }
    }
    


  • Anstatt da eine solche Kaskade zu machen, würde ich eher auf eine zweite Schleife im inneren setzen. Dann kannst du das auch für eine beliebige Anzahl weiterführen.


  • Mod

    felix_L schrieb:

    for (int i = 1; i<=6 ; i++)
        {
        cout << i << " ";
        }
    

    Das habe ich. Ich weiß einfach nicht, wie ich es machen kann, dass das Programm in der neuen Zeile bei 1 anfängt.

    Mach zwei verschachtelte Schleifen: Die äußere zählt die Variable n von 1 bis 6. Die innere zählt i von 1 bis n. Dann gibst du i aus.


  • Mod

    drakon schrieb:

    Anstatt da eine solche Kaskade zu machen, würde ich eher auf eine zweite Schleife im inneren setzen. Dann kannst du das auch für eine beliebige Anzahl weiterführen.

    Ich glaube das hat der Schleifenexperte nicht so ganz ernst gemeint. Guck dir mal an, wo der Link hingeht.



  • Ich hab da noch ein kleines Formatierungsproblem 😞 .

    for (int n = 1; n<=6 ; n++)
        {
            for (int i = 1; i<=n; i++)
                cout << i << endl; 
        }
    

    Ausgabe :

    1
    1
    2
    1
    2
    3
    1
    2
    3
    4
    1
    2
    3
    4
    5
    1
    2
    3
    4
    5
    6

    Helft mir bitte.


  • Mod

    felix_L schrieb:

    Ich hab da noch ein kleines Formatierungsproblem 😞 .

    endl macht (unter anderem) einen Zeilenumbruch. Den muss man aber nicht nach jeder Ausgabe machen. Du kannst durchaus in der inneren Schleife nur die Zahlen ausgeben und danach in der äußeren Schleife ein endl ausgeben für den Zeilenumbruch.



  • SeppJ schrieb:

    drakon schrieb:

    Anstatt da eine solche Kaskade zu machen, würde ich eher auf eine zweite Schleife im inneren setzen. Dann kannst du das auch für eine beliebige Anzahl weiterführen.

    Ich glaube das hat der Schleifenexperte nicht so ganz ernst gemeint. Guck dir mal an, wo der Link hingeht.

    Das fand ich gar nicht so absurd.. Schon schlimmere Sachen erst gemeint gesehen. 😉
    Habs eh nur in der Preview gesehen und gar nicht gross gelesen, weder den Link verfolgt..



  • was meint ihr, was der lehrer bei so was sagen würde:

    for (int i = 0; i != 2; ++i) 
    { 
      switch(i) 
      { 
      case 0:
        std::cout
          << "1" << std::endl
          << "1 2" << std::endl
          << "1 2 3" << std::endl
          << "1 2 3 4" << std::endl
          << "1 2 3 4 5" << std::endl
          << "1 2 3 4 5 6";
      default:
        std::cout << std::endl;
      } 
    }
    

    würde z.bsp. die aufgabenstellung erfüllen: implementieren sie ein programm, was folgende ausgabe erzeugt. verwenden sie dafür eine schleife

    oder direkt so:

    for (; false; )
        ;
    
      std::cout
        << "1" << std::endl
        << "1 2" << std::endl
        << "1 2 3" << std::endl
        << "1 2 3 4" << std::endl
        << "1 2 3 4 5" << std::endl
        << "1 2 3 4 5 6" << std::endl;
    

    gibt natürlich noch viele andere möglichkeiten, solche aufgabenstellungen zu bestrafen 😃



  • Hehe. Man darf ja kreativ sein.

    Habe z.B, als wir die LR Zerlegung mit Zeilentausch in Matlab selbst implementieren sollten, einfach mal dieseh hier gemacht:

    function [L,R,P] = lr (A)
      [L,R,P] = lu (A)
    end
    

    Natürlich habe ich den Algorithmus dann auch noch selbst implementiert, aber die Assistentinn hat dann gmeint, dass es noch einfacher ginge.. leider habe ich vergessen zu fragen, wie, denn das scheint mir so schon recht einfach zu sein. :p



  • unskilled schrieb:

    was meint ihr, was der lehrer bei so was sagen würde:
    ...
    gibt natürlich noch viele andere möglichkeiten, solche aufgabenstellungen zu bestrafen 😃

    Normalerweise gibt das 0 Punkte, fürchte ich.
    Ich würde auf sowas volle Punkte geben. Ich sage vor jeder Klausur, daß ich keine Punkte auf Kommentare, Einrückungen und hübsche Dialoge gebe, sondern nur auf die Erfüllung der Aufgabe. Und daß eine formal korrekt erfüllte Aufgabe auch volle Punktzahl bringt. Deine Spaßlösungen zeigen doch nur, daß Du ein Einserkandidat bist und es auch unspaßig könntest.

    Hier die beste Spaßlösung, die ich jemals gesehen habe (und es war nichtmal als Spaß gemeint!!):

    //Gibt a,b,c sortiert aus
    for(int i=INT_MIN;i!=INT_MAX;++i)
    {
       if(i==a) cout<<a<<endl;
       if(i==b) cout<<b<<endl;
       if(i==c) cout<<c<<endl;
    }
    if(a==INT_MAX) cout<<a<<endl;
    if(b==INT_MAX) cout<<b<<endl;
    if(c==INT_MAX) cout<<c<<endl;
    


  • xD hübsch^^

    ach du bist auch noch prof.? Oo
    darf man fragen, wo man da hingehen muss, um nen prof wie dich zu haben? ^^

    bb

    wenn ich raten müsste, dann wohl darmstadt?!^^



  • Das ist auch das, was ich an Programmieraufgaben nicht so mag. Man lässt einem nicht die Freiheit mal etwas über den Tellerrand zu blicken, was ja gerade beim programmieren eigentlich erlaubt sein dürfte. Ich würde meinen, dass genau das ist, was man braucht, wenn man vor einem wirklich neuen Problem steht. Kreativität und den Mut etwas auszuprobieren und nicht in den üblichen Schranken zu denken. (Das ist auch einer der Gründe, warum ich C++ so mag. Es gibt einem praktisch keine künstlichen Schranken auf)



  • unskilled schrieb:

    ach du bist auch noch prof.? Oo

    Nein.

    darf man fragen, wo man da hingehen muss, um nen prof wie dich zu haben?

    (Nicht-Prof, nur C++-Dozent) sgd.de
    Aber Da bist Du nicht in der Zielgruppe, nehme ich an.

    wenn ich raten müsste, dann wohl darmstadt?!

    Warum Darmstadt?



  • volkard schrieb:

    wenn ich raten müsste, dann wohl darmstadt?!

    Warum Darmstadt?

    Erst wars die Mail-Adresse(da kann man sich auch noch ne ganze Menge zusammenreimen, wenn man nix zu tun hat^^), dann hab ich wieder an mir gezweifelt, weil die uni darmstadt keinen volkard henkel kannte 😕

    dann hab ich aber das hier gefunden:
    http://209.85.129.132/search?q=cache:DZxkkdZ7dBwJ:www.c-plusplus.net/forum/viewtopic-var-t-is-46014.html+volkard+henkel+universität&cd=3&hl=de&ct=clnk&gl=de

    und es sah doch wieder so aus, als ob darmstadt stimmen würde^^
    hab dann auch gesehen, dass es noch ne fh in darmstadt gibt, aber da konnte man nicht suchen^^

    naja - lange weile halt ;o)

    bb



  • drakon schrieb:

    Das ist auch das, was ich an Programmieraufgaben nicht so mag. Man lässt einem nicht die Freiheit mal etwas über den Tellerrand zu blicken, was ja gerade beim programmieren eigentlich erlaubt sein dürfte. Ich würde meinen, dass genau das ist, was man braucht, wenn man vor einem wirklich neuen Problem steht. Kreativität und den Mut etwas auszuprobieren und nicht in den üblichen Schranken zu denken. (Das ist auch einer der Gründe, warum ich C++ so mag. Es gibt einem praktisch keine künstlichen Schranken auf)

    Im vierten Schuljahr hat's mich schon angekotzt, daß der Deutsch-Lehrer meine genialistischen Gedanken verlacht hat. Er konnte kein bißchen über den Tellerand blicken! Nungut, zu seiner Verteidigung muß ich gestehen, daß ich neulich Aufsätze von mir aus dem 13. Schuljahr gelesen habe und die 6Punkte waren mehr als gerechtfertigt, das Gestammle hat mir nicht im Geringsten erlaubt, zu erfassen, was ich damals gemeint hatte. Es ist anzunehmen, daß ich mich im 4. Schuljahr nicht klarer ausgedrückt habe. Aber ich war stinkesauer. Und bis zum Ende der Schulzeit hat es mich immer wieder angekotzt, daß zur Klausurbewertung erst im Nachhinein die Bewertungsregeln gesagt wurden oder (in der Oberstufe normal) klar ausgesprochene Bewertungsregeln nicht eingehalten wurden.
    Naja, so isses halt. Wenn jemand da ist, der es einem sagt (Nachhilfelehrer), kommt man viel lockerer durch die Schule.



  • unskilled schrieb:

    Warum Darmstadt?

    Erst wars die Mail-Adresse...[/quote][/quote]
    Ja, Darmstadt. Dort hatte ich auch mal einen Lehrauftrag über 6 Semester, als zeitweise für ein damals nicht allgemein anerkanntes Projekt zu wenige Programmierprofs da waren.
    Die Mail-Adresse ist meine stille Werbung.


Log in to reply