Mit array Zahlen einlesen Mittelwert ausgeben



  • Du bist arm dran mit deinen bisherigen Versuchen. Aber besser 'Arm dran' als 'Arm ab'! 🙂 Es fehlen dir noch einige Grundkenntnisse der Ablaufsteuerung mit while- und for-Schleifen. Beginne am besten so: Alle Zahlen mit while einlesen bis Abbruchkriterium - du wolltest eine Zahl Null. Zähler für die Anzahl der eingelesenen Zahlen einbauen und die Zahlen in einem Array speichern. Dann mit einer for-Schleife aus den Zahlen des Arrays den gewünschten Mittelwert bestimmen.

    edit: SeppJ, du bist sehr geduldig und setzt mit deinen Ratschlägen tiefer an. Aber so oder so ähnlich fängt jeder mal an. Auch dafür muss Platz hier im Forum sein. Helfen wir ihm beim Lernen. Nur lernen muss er dann selbst!



  • Ich bin nicht so auf Eigenleistung fixiert, sondern eher darauf, daß die Antwort auf fruchtbaren Boden fällt. Das kann ich hier nicht erkennen.



  • SeppJ schrieb:

    Oje. Zwei Dinge die dir konkret helfen sollten:
    1. Rück mal vernünftig ein, dann siehst du, dass da allerlei in der Logik nicht stimmt.
    2. Nimm mal vernünftige Namen für deine Variablen. Du benutzt das x in mindestens drei verschiedenen Bedeutungen wild durcheinander, daher geht das auch schief. Ebenso das i, welches bei dir in einer Zeile zwei verschiedene Bedeutungen hat. Die Namen der Variablen seien ganze deutsche oder englische Wörter.

    Und noch ein paar allgemeine Tipps:
    Du strauchest an den Grundlagen. Lass mal all die Mittelwertberechnungen weg und konzentrier dich auf das einfachste, das Einlesen, damit du da dran lernen kannst.

    Ich gebe dir mal drei Aufgaben. Du magst lachen, weil sie sich leicht anhören, aber ich glaube sie täten dir ganz gut:
    1. Lies überhaupt eine Zahl ein und gib sie wieder aus
    2. Lies eine Zahl ein und gib sie 10x aus. Benutze dazu eine Schleife.
    3. Lies 10 Zahlen ein und gib sie danach wieder aus. Keine Nebenbedingungen wie dass du prüfst ob die Zahl 0 war oder ob cin noch gut ist. Einfach 10 Zahlen lesen und ausgeben. Benutze dazu zwei Schleifen.

    3. Das einlesen ist kein Problem

    for(int i=0;i<10;i++){
    cout<<"Bitte Zahlen eingeben"<<endl;
    cin>>zahl;

    }

    aber dann ich muss ja die einzelnen Werte zwischenspeichern um Sie später wieder
    ausgeben zu können.

    Verstehe ich nicht sorry


  • Mod

    markuswenczel schrieb:

    aber dann ich muss ja die einzelnen Werte zwischenspeichern um Sie später wieder
    ausgeben zu können.

    Verstehe ich nicht sorry

    Deswegen sollst du das ja auch lernen! Meinst du die Aufgaben habe ich mir ausgedacht, um dich zu pisacken? Die sind pädagogisch wertvoll!

    Mittlerweile solltest du doch wenigstens mal die ersten beiden Kapitel in irgendeinem Lehrbuch angeguckt haben und wenigstens die Grundlagen zu Arrays angelesen haben. Davon ist überhaupt gar nichts zu merken, deshalb nehme ich mal an, dass du es nicht getan hast. Wie soll man dir da helfen, wenn du selber nur da sitzt und nichts tust? Du stellst seit Tagen Fragen zu Arrays und hast genau gar nichts gelernt und nichts selber gemacht. Im Leben bekommt man nicht alles umsonst serviert und beim Programmieren noch viel weniger.

    Wenn du eine Komplettlösung möchtest, dann biete etwas Geld an und stell einen Antrag im Projekteforum:
    http://www.c-plusplus.net/forum/f11
    Scorcher24 ist gewiss glücklich über diese Aufgabe:
    http://www.c-plusplus.net/forum/290561



  • SeppJ schrieb:

    markuswenczel schrieb:

    aber dann ich muss ja die einzelnen Werte zwischenspeichern um Sie später wieder
    ausgeben zu können.

    Verstehe ich nicht sorry

    Deswegen sollst du das ja auch lernen! Meinst du die Aufgaben habe ich mir ausgedacht, um dich zu pisacken? Die sind pädagogisch wertvoll!

    Mittlerweile solltest du doch wenigstens mal die ersten beiden Kapitel in irgendeinem Lehrbuch angeguckt haben und wenigstens die Grundlagen zu Arrays angelesen haben. Davon ist überhaupt gar nichts zu merken, deshalb nehme ich mal an, dass du es nicht getan hast. Wie soll man dir da helfen, wenn du selber nur da sitzt und nichts tust? Du stellst seit Tagen Fragen zu Arrays und hast genau gar nichts gelernt und nichts selber gemacht. Im Leben bekommt man nicht alles umsonst serviert und beim Programmieren noch viel weniger.

    Wenn du eine Komplettlösung möchtest, dann biete etwas Geld an und stell einen Antrag im Projekteforum:
    http://www.c-plusplus.net/forum/f11
    Scorcher24 ist gewiss glücklich über diese Aufgabe:
    http://www.c-plusplus.net/forum/290561

    ich verstehe was du meinst ich habe mich mit deiner Aufgabe beschäftigt aber
    noch keine lösung gefunden
    wenn du sagst das das gehen muss dann ok
    In dem Buch das ich gelesen habe
    Andre Willms
    Addison Wesley ist über array gerade mal soviel drinnen 3 Seiten, naja das ist net viel


  • Mod

    Wenn dich ein Lehrbuch nichts lehrt, dann ist es ein schlechtes Lehrbuch. Noch viel mehr, wenn, wie du sagt, essentielle Dinge wie std::vector (mit dem diese Aufgabe um so vieles leichter wäre) nur am Rande erwähnt werden. Der Tipp mit dem Wegschmeißen oben war ernst gemeint.

    P.S.: Nachdem ich mal nachgeschlagen habe, was das für Bücher sind ist das kein Wunder: Der Wesley ist eine Kurzreferenz, kein Lehrbuch. Der Willms ist viel zu kurz und ein Buch das selbst auf amazon schon schlechte Kritiken bekommt kann nicht gut sein.



  • SeppJ schrieb:

    Oje. Zwei Dinge die dir konkret helfen sollten:
    1. Rück mal vernünftig ein, dann siehst du, dass da allerlei in der Logik nicht stimmt.
    2. Nimm mal vernünftige Namen für deine Variablen. Du benutzt das x in mindestens drei verschiedenen Bedeutungen wild durcheinander, daher geht das auch schief. Ebenso das i, welches bei dir in einer Zeile zwei verschiedene Bedeutungen hat. Die Namen der Variablen seien ganze deutsche oder englische Wörter.

    Und noch ein paar allgemeine Tipps:
    Du strauchest an den Grundlagen. Lass mal all die Mittelwertberechnungen weg und konzentrier dich auf das einfachste, das Einlesen, damit du da dran lernen kannst.

    Ich gebe dir mal drei Aufgaben. Du magst lachen, weil sie sich leicht anhören, aber ich glaube sie täten dir ganz gut:
    1. Lies überhaupt eine Zahl ein und gib sie wieder aus
    2. Lies eine Zahl ein und gib sie 10x aus. Benutze dazu eine Schleife.
    3. Lies 10 Zahlen ein und gib sie danach wieder aus. Keine Nebenbedingungen wie dass du prüfst ob die Zahl 0 war oder ob cin noch gut ist. Einfach 10 Zahlen lesen und ausgeben. Benutze dazu zwei Schleifen.

    int x;
    int arr[10];
    
    for(int i=0;i<10;i++){
    
    cout<<"Bitte Zahlen eingeben"<<endl;
    cin>>x;
    
           for(int j=0;j<10;j++){
                    arr[j]=x;
    
                          }
    
                          }           
    
    cout<<???;
    


  • SeppJ schrieb:

    Wenn dich ein Lehrbuch nichts lehrt, dann ist es ein schlechtes Lehrbuch. Noch viel mehr, wenn, wie du sagt, essentielle Dinge wie std::vector (mit dem diese Aufgabe um so vieles leichter wäre) nur am Rande erwähnt werden.

    Aber sowohl ein Array als auch ein vector sind absolut nicht das Mittel der Wahl. Wenn ich mich recht erinnere, fordert die Aufgabe aber, sowas zu verwenden. Zunächst gehört dem, der die Aufgabe gestellt hat, eine Handvoll Salz in den Frühstückskaffee.


  • Mod

    Immer noch ganz kalt 😞 . So kalt sogar, dass ich nicht einmal weiß, wo ich noch helfen soll. Rätst du nur? Das sieht aus als hättest du die von mir in der Aufgabenstellung schon genannten Zeilen (2 Schleifen, Eingabe, Ausgabe, Array) hingeschrieben und verschiebst nun so lange hin und her bis zufällig das richtige rauskommt.


  • Mod

    volkard schrieb:

    Aber sowohl ein Array als auch ein vector sind absolut nicht das Mittel der Wahl. Wenn ich mich recht erinnere, fordert die Aufgabe aber, sowas zu verwenden. Zunächst gehört dem, der die Aufgabe gestellt hat, eine Handvoll Salz in den Frühstückskaffee.

    Die Aufgabe ist sinnlos, ja. Aber an sich sind vectoren/Arrays wichtige Sprachelemente und dürfen in einem Lehrbuch nicht kurz kommen.

    @markuswenczel: Mal angenommen du hättest nicht die Anforderung, ein Array zu benutzen. Wüsstest du dann, was zu tun wäre?



  • Das ist wohl das, was SeppJ gemeint hat: Du solltest nicht einfach drauf los programmieren, sondern dir vorher ein paar Gedanken machen.

    Ein Stift + Zettel neben der Tastatur sind immer von Vorteil.

    Schreib mal auf diesen Zettel, wie der Ablaufplan aussehen soll. Ich denke, dir wird klar werden, dass es mit einer verschachtelten Schleife nicht funktioniert.



  • SeppJ schrieb:

    Wenn dich ein Lehrbuch nichts lehrt, dann ist es ein schlechtes Lehrbuch. Noch viel mehr, wenn, wie du sagt, essentielle Dinge wie std::vector (mit dem diese Aufgabe um so vieles leichter wäre) nur am Rande erwähnt werden. Der Tipp mit dem Wegschmeißen oben war ernst gemeint.

    P.S.: Nachdem ich mal nachgeschlagen habe, was das für Bücher sind ist das kein Wunder: Der Wesley ist eine Kurzreferenz, kein Lehrbuch. Der Willms ist viel zu kurz und ein Buch das selbst auf amazon schon schlechte Kritiken bekommt kann nicht gut sein.

    schwere Geburt

    #include <iostream> 
    
    using namespace std; 
    
    int main(){ 
    
    int x; 
    int arr[10]; 
    
    for(int i=0;i<10;i++){ 
    
    cout<<"Bitte Zahlen eingeben"<<endl; 
    cin>>x; 
    
    arr[i]=x; 
                        } 
    
    for(int j=0;j<10;j++){
            cout<<arr[j]; }
    
    }
    


  • markuswenczel schrieb:

    so jetzt habe ich es

    Nein. Gib verschiedene Zahlen ein und betrachte die Ausgabe.


  • Mod

    markuswenczel schrieb:

    so jetzt habe ich es

    Nein. Es funktioniert nicht. Und Zeile 22 bis 31 sind auch mehr als unschön



  • SeppJ schrieb:

    volkard schrieb:

    Aber sowohl ein Array als auch ein vector sind absolut nicht das Mittel der Wahl. Wenn ich mich recht erinnere, fordert die Aufgabe aber, sowas zu verwenden. Zunächst gehört dem, der die Aufgabe gestellt hat, eine Handvoll Salz in den Frühstückskaffee.

    Die Aufgabe ist sinnlos, ja. Aber an sich sind vectoren/Arrays wichtige Sprachelemente und dürfen in einem Lehrbuch nicht kurz kommen.

    @markuswenczel: Mal angenommen du hättest nicht die Anforderung, ein Array zu benutzen. Wüsstest du dann, was zu tun wäre?

    wäre einfacher ja



  • SeppJ schrieb:

    markuswenczel schrieb:

    so jetzt habe ich es

    Nein. Es funktioniert nicht. Und Zeile 22 bis 31 sind auch mehr als unschön

    ups gibt die letzte Zahl 10 mal aus

    Mit Zettel und Stift habe ich bisher immer gearbeitet aber danke für den Tip mit dem Buch das werde ich nicht brauchen können, obwohl ich die Prägungen jetzt erst mal aus dem Kopf bekommen muss,,, 🙄



  • yahendrik schrieb:

    Das ist wohl das, was SeppJ gemeint hat: Du solltest nicht einfach drauf los programmieren, sondern dir vorher ein paar Gedanken machen.

    Ein Stift + Zettel neben der Tastatur sind immer von Vorteil.

    Schreib mal auf diesen Zettel, wie der Ablaufplan aussehen soll. Ich denke, dir wird klar werden, dass es mit einer verschachtelten Schleife nicht funktioniert.

    jop danke



  • markuswenczel schrieb:

    Mit Zettel und Stift habe ich bisher immer gearbeitet aber danke für den Tip mit dem Buch das werde ich nicht brauchen können, obwohl ich die Prägungen jetzt erst mal aus dem Kopf bekommen muss,,, 🙄

    Viele Bücher sind toplastig auf bestimmte Dinge geschrieben, mit denen man erst nach eigenen Grundkenntnissen etwas anfangen kann. Diese Grundkenntnisse zur Ablaufsteuerung und zu Arrays fehlen dir aber noch und du brauchst sie dringend. Beginne also selbst mit kleinen Beispielen, zunächst mit if, dann mit for, und dann mit while etc. In diesen Beispielen fügst du mit cout Ausgaben ein, die zeigen was wo passiert, zugeordnet oder gerechnet wird.

    Jetzt setzt du dich bitte hin und machst deinen eigenen Lernprozess! 🙂 Bedenke, Foren und Bücher sind nur Hilfestellung zum Lernen. Ein fertiger Code für deine Fragestellung bringt dir nichst oder wenig! 😮



  • berniebutt schrieb:

    markuswenczel schrieb:

    Mit Zettel und Stift habe ich bisher immer gearbeitet aber danke für den Tip mit dem Buch das werde ich nicht brauchen können, obwohl ich die Prägungen jetzt erst mal aus dem Kopf bekommen muss,,, 🙄

    Viele Bücher sind toplastig auf bestimmte Dinge geschrieben, mit denen man erst nach eigenen Grundkenntnissen etwas anfangen kann. Diese Grundkenntnisse zur Ablaufsteuerung und zu Arrays fehlen dir aber noch und du brauchst sie dringend. Beginne also selbst mit kleinen Beispielen, zunächst mit if, dann mit for, und dann mit while etc. In diesen Beispielen fügst du mit cout Ausgaben ein, die zeigen was wo passiert, zugeordnet oder gerechnet wird.

    Jetzt setzt du dich bitte hin und machst deinen eigenen Lernprozess! 🙂 Bedenke, Foren und Bücher sind nur Hilfestellung zum Lernen. Ein fertiger Code für deine Fragestellung bringt dir nichst oder wenig! 😮

    #include <iostream> 
    
    using namespace std; 
    
    int main(){ 
    
    int zahl=1,sum=0, anzahl=0; 
    double ergebnis;
    int arr[50]; 
    
    for(int i=0;i<50 && zahl!=0;i++){ 
    
    cout<<"Bitte Zahlen eingeben"<<endl; 
    cin>>zahl; 
    
    arr[i]=zahl; 
    anzahl++;
                        } 
    
    for(int j=0;j<50;j++){ 
            sum=sum+arr[j]; } 
    
    ergebnis=sum/anzahl;
    
    cout<<ergebnis;
    cin>>zahl;
    }
    

  • Mod

    👍

    Darf ich aber vorsichtig fragen: Wirklich selbst gemacht, ganz ehrlich?


Anmelden zum Antworten