Hilfe bei array Aufgabe.



  • Hallo , ich bräuchte bezüglich einer Aufgabe in dem Fach Informatik Hilfe es handelt sich um Array-Felder.

    http://www.bilder-upload.eu/thumb/6765d5-1434196506.jpg

    und zwar geht es um folgendes In der Zeile Rot unterstrichen steh ja folgendes :
    feld[i] = z%10 in der Lösung steht diesbezüglich i=3 und z = 24 wie man auf die 24 kommt verstehe ich aber wie man auf i=3 verstehe ich leider nicht. da oben ja steht i=5. Dann geht es ja weiter mit i-=2 das dann 1 ergibt sowie z/=10 das 2 ergibt auch dies ist für mich verständlich wen i =3 ist. (blau unterstrichen). Und das was grün unterstrichen ist, weiß ich gar nicht woher das kommt.

    hoffe jemand könnte mir das erklären



  • Marcel_19 schrieb:

    da oben ja steht i=5. Dann geht es ja weiter mit i-=2 das dann 1 ergibt

    5 - 2 ist 3. Und das wird dem i gleich wieder zugewiesen.

    Marcel_19 schrieb:

    sowie z/=10 das 2 ergibt auch dies ist für mich verständlich wen i =3 ist. (blau unterstrichen). Und das was grün unterstrichen ist, weiß ich gar nicht woher das kommt.

    hoffe jemand könnte mir das erklären

    In der while -Schleife wird, solange z ungleich 0 ist, von i zwei abgezogen. Ebenso wird in jedem Schleifendurchlauf z ganzzahlig durch 10 geteilt.

    Die Werte dazu stehen in der Tabelle.



  • Danke, das erklärt jetzt einiges :D. eine letzte frage hätte ich noch zu dem letzten abschnitt. Den mit for (I=0 ,p=0; .....

    die zeile heißt ja p+=feld (i) * (i+1) also müsste es dan doch so sein:
    0+00+1
    dann geht der counter von i ja um 1 hoch bis hin zur 7.
    also ist i jetzt=1
    0+1
    1+1 oder? dann wieder i umd 1 erhöhen
    0+2*2+1?
    aber wie bekomme ich jetzt einen wert für p raus? und ab welcher stelle kann ich die Werte für das unterefeld eintragen? das erschließt sich mir noch nicht ganz?
    also das wo 0=1, 1=2, 2=3.... wo bekomme ich diese Ergebnis her.

    wahrscheinlich ist meine obige Annahme/Ansatz (Rechnung falsch ).



  • p += x; bedeutet auseschrieben p = p + x;
    Das Ergebnis der Berechnung wird wieder p zugewiesen.

    Marcel_19 schrieb:

    0+11+1 oder? dann wieder i umd 1 erhöhen
    0+2
    2+1?

    Die erste 0 ist demnach falsch.

    Marcel_19 schrieb:

    und ab welcher stelle kann ich die Werte für das unterefeld eintragen?

    Meinst du feld?
    Überall wo feld[ i ] = steht, bekommen die entsprechenden Elemente einen Wert zugeiesen.

    Nur zur Info: durch das new ist da C++ und nicht C
    Nicht verwechseln.



  • ok also so wie ich das jetzt verstanden habe.
    da steht ja p+= Feld(i) *(i+1) und i =0 p=0
    also:
    p= 0+0 *0+1=0 P ist als 0 dann erhöhe ich ja i um 1 also
    p= 0+1 *1+1=3 P wäre dann ja ab jetzt 1 oder? und i wird wieder um 1 erhöt, also
    p= 1+1 *2+1=6 P wäre dann ja jetzt 2 oder? und i muss wieder um 1 erhöt werden und das mache ich jetzt bis 7?
    aber das deckt sich ja irgendwie nicht mit den lösungen 😃

    das mit feld[ i ] = das da ein wert zu gewiesen wir verstehe ich, aber an welcher stelle rechne ich diesen wert aus? also wo kommt diese Zuweisung her (wert)



  • sehe gerade in meiner dritten zeile also bei
    p= 1+1 *2+1=6 P wäre dann ja jetzt 2 oder? und i muss wieder um 1 erhöt werden und das mache ich jetzt bis 7?

    habe ich einen kleine fehler drinnen ,da ja i erhört wurde um eins müsste es heißen:
    p= 1+2 *2+1=9 und p wäre dann 3



  • Die Klammern sind schon wichtig, sonst kommt man durcheinander
    p = p + Feld(i) *(i+1) und i =0 p=0 Und feld[8] = { 1,2,3,4,9,8,7}
    Bedenke, das die Indizes beim Array bei 0 anfangen.
    also:

    p= 0+ 1*(0+1)= 1 p ist als 1 dann erhöhe ich ja i um 1 also
    |
    +-----------+
    |
    p= 1+ 2*(1+1)= 5 p wäre dann ja ab jetzt 5
    |
    +-----------+
    |
    p= 5+ 3*(2+1)= 14
    ....

    Marcel_19 schrieb:

    aber an welcher stelle rechne ich diesen wert aus? also wo kommt diese Zuweisung her (wert)

    In den while -Schleifen.
    (Leider hast du keine Zeilennummern)



  • Mit Code-
    Tags sieht es besser aus:

    also: 
    
    p= 0+ 1*(0+1)= 1 p ist als 1 dann erhöhe ich ja i um 1 also
                   |
       +-----------+
       |
    p= 1+ 2*(1+1)= 5 p wäre dann ja ab jetzt 5 
                   |
       +-----------+
       |
    p= 5+ 3*(2+1)= 14
    ....
    


  • http://www.bilder-upload.eu/thumb/269460-1434207130.jpg

    so besser?

    also setzte ich dann für einfach bei feld[i] die zahlen von 0-7 ein? ganz so einfach wird es wohl nicht sein.

    aber ich danke dir schonmal für die ganze mühe die du dir machst.



  • Marcel_19 schrieb:

    http://www.bilder-upload.eu/thumb/269460-1434207130.jpg

    so besser?

    Nein, weil die Zeilennummern nicht stimmen.
    es wäre einfacher, den Code per Copy&Paste hier einzufügen und zwischen Code-Tags zu stellen.

    Marcel_19 schrieb:

    also setzte ich dann für einfach bei feld[i] die zahlen von 0-7 ein? ganz so einfach wird es wohl nicht sein.

    Nein.
    Der Inhalt vom Feld steht doch unten auf dem Blatt.
    In der oberen zeile steht der Index (das i) und darunter der Inhalt (das feld[ i ])



  • ja aber der inhalt ist in der aufgabe ja nicht gegeben nur der index. Das blatt was ich hochgeladen habe war die lösung.

    wie berechne ich den inhalt aus also die untere zeile?



  • Indem du die Funktion von oben nach unten durchgehst und dir Notizen dazu machst.
    Z.B bei der rot unterstrichenen Zeile aus dem Eröffnungspost.



  • habe jetzt alles verstanden vielen dank.

    hoffe ich habe dir nicht eine alzugroße mühe gemacht.



  • Respekt für DirkBs Geduld.


Anmelden zum Antworten