Programm schreiben-komme leider nicht weiter!



  • Hi ich muss ein kleinen Programm schreiben komme aber nicht so ganz weiter!
    Ich hoffe ihr könnt mir helfen!

    Das Programm soll eine Hauptzahl von 1-20 weiter schalten und dabei jede Hauptzahl mit den Zahlen 1-20 multiplizieren.

    Jedes Ergbenis soll am Bildschirm ausgegeben werden.

    Wird eine neue Hauptzahl erreicht soll eine Entsprechender Hinweis am Bildschrim erfolgen.

    so.... nun dachte ich zunächst an eine for schleife!

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    int hzahl;
    
    for(hzahl = 1; hzahl <= 20, hzahl++)
    
    cout << "Hauptzahl: " << hzahl << "\n";
    
    system ("PAUSE");
    return 0;
    }
    

    so lese ich jetzt jede Hauptzahl aus 🙂 oder....

    so jetzt mein Problem ich komme einfach nicht drauf wie ich eine pause mache und jede haputzahl mit 1-20 multipliziere und das da ausgeben!

    😕 😕 😕 😕

    Hoffe ihr könnt mir helfen



  • Tipp: du brauchst in der bestehenden for-Schleife noch eine weitere for-Schleife. (*edit* dann musst du für die for-Schleifen aber geschweifte Klammern verwenden, da sie eventuell mehrzeilig werden).



  • Ja das war auch mein erster gedanken aber irgendwie bekomme ich das einfach nicht umgesetzt kannst du mir da mal nen tipp geben oder so???

    Wäre echt cool!



  • Ok, ein Tipp:

    for(int i=1;i<=20;++i)
    {
      for(int j=0;j<20;++j)
      {
        //mache 20 mal was mit i==1, dann 20 mal was mit i==2 usw.
    
        //hier kannst du also multiplizieren und das Ergebnis ausgeben
      }
      //mache 20 mal was mit i (z.B. Ausgabe: neue Hauptzahl)
    }
    

    Probiere erst mal, ob du es nun selbst hinkriegst. Falls nicht, poste einfach deinen aktuellen Code und beschreibe, woran es noch hapert. 🙂



  • int main()
    {
        int hzahl;
        int mpkl;
        int erg;
    
        for(hzahl = 1; hzahl <= 20; ++hzahl)
        {
                  for(mpkl = 1;mpkl <=20; ++mpkl)
                  {
                           erg= hzahl*mpkl;
    
                           cout << erg << "\n";      
                  }
        }          
    
        system("PAUSE");
        return 0;
    }
    

    Hier jetzt habe ich erstmal hinbekommen das er die zahlen multipliziert und ausgibt!Aber leider zu schnelle und sowort hintereinander! 🙂

    Nun will ich ja die for schleife kurz unterbrechen und darauf hinweisen das die nächste Hauptzahl erreicht wird.Kann ich das mit einer if anweisung machen und einem Break oder so?



  • Nicht mit break . break bricht Schleifen ab. Du willst aber pausieren. Bei Microsoft gibt's dafür in der Doku von clock() eine Beispielfunktion, die du einfach mal übernehmen kannst:

    /* Pauses for a specified number of milliseconds. */
    void sleep( clock_t wait )
    {
       clock_t goal;
       goal = wait + clock();
       while( goal > clock() )
          ;
    }
    

    (http://msdn.microsoft.com/en-us/library/4e2ess30(v=vs.71).aspx)

    Die packst du über deine main. Außerdem musst du noch den Header <ctime> einbinden. Dann kannst du sie in deinem Code aufrufen, z.B. so:

    sleep(1000);  //wartet 1000ms, also 1s
    


  • Tolle sleep Funktion 😃 👍



  • Mit 100% Prozessorauslastung...



  • Geht die Frage auch für alle verständlich?
    - Was ist eine Hauptzahl 1-20?
    - Was soll mit dieser Hauptzahl 'weitergeschaltet' werden?
    - Wohin?
    - Was ist das Ziel der Aufgabe?

    Ich denke, wer eine Aufgabe nicht präzise formulieren kann, kann zur Lösung derselben auch kein Programm schreiben und andere können die Lösung schwer finden! 🕶



  • Wenn er ohnehin Windows benutzt, kann er auch gleich windows.h einbinden und die dort enthaltene Sleep-Funktion verwenden.
    Die ist im Ernstfall resourcenschonender 🙂


  • Mod

    DrakoXP schrieb:

    Wenn er ohnehin Windows benutzt, kann er auch gleich windows.h einbinden und die dort enthaltene Sleep-Funktion verwenden.
    Die ist im Ernstfall resourcenschonender 🙂

    Und es ist ja auch nicht so, dass man nicht mit drei bis vier Präprozessormakros zusätzlich noch 99.99999999% aller anderen Systeme abdecken könnte.



  • @ _matze

    Gibts da nen Unterschied zu der vorgegebenen Sleep(); Funktion im Windows.h , performance oder besser kompatibilität oder sonst was ?
    Würd mich interessieren 😉



  • Hier stand was sinnfreies , bitte entschuldigen


  • Mod

    7xCore schrieb:

    @ _matze

    Gibts da nen Unterschied zu der vorgegebenen Sleep(); Funktion im Windows.h , performance oder besser kompatibilität oder sonst was ?
    Würd mich interessieren 😉

    Der entscheidende Unterschied ist, dass man dafür kein Windows braucht. Dafür ist sie wesentlich schlechter, da sie den Prozessor voll belegt. Ist aber leider die einzige standardkonforme Sleepfunktion.

    Performance ist bei einer Sleepfunktion wohl nicht so entscheidend, oder? 😃



  • Performance ist bei einer Sleepfunktion wohl nicht so entscheidend, oder? 😃

    Naja wenn ich eben ein schnelles Warten haben möchte 😃 😃



  • 314159265358979 schrieb:

    Tolle sleep Funktion 😃 👍

    Zeig mir ne bessere, ohne Betriebssystem-APIs zu verwenden.



  • boost::this_thread::sleep :p



  • Diese sleep Funktion skaliert außerdem nicht gut bei Mehrkern-Systemen *SCNR*



  • 314159265358979 schrieb:

    boost::this_thread::sleep :p

    Hm, touché. 😃


Anmelden zum Antworten