0 Daumen
1,8k Aufrufe

Hallo

Könnte mir jemand bitte bei dieser aufgabe helfen ? Ohne Python Hilfe

a=int(input("Geben Sie eine Zahl ein:"))

z=0

for i in range(0, a, 1):

    z=z+a*i

    if i<5:

        for j in range(0,i+1,1):

          z=z+j

print (str(z))

Könnte mir bitte jemand ausführlich bitte erklären. Vielen Dank

1) Welches Ergebnis bekomme ich, wenn ich 7 eingebe.

2 )Welches Ergebnis erhalte ich, wenn ich 8 eingebe.

Avatar von

1 Antwort

+1 Daumen

a=int(input("Geben Sie eine Zahl ein:"))
Die Variable kommt einen vom Benutzer vergebenen Wert.
z=0
Die Variable z bekommt den Wert 0.

for i in range(0, a, 1):
Die nachfolgenden eingerückten Zeilen werden wiederholt ausgeführt. Beim ersten Durchlauf hat i den Wert 0. Bei jedem folgenden Durchlauf wird i um 1 erhöht. Sobald i den Wert a hat, werden die nachfolgenden eingerückten Zeilen nicht mehr ausgeführt, sondern mit der nächsten nicht-eingerückte Zeile fortgefahren. Dies ergibt a Wiederholungen, nämlich für die Werte 0, 1, 2, ..., a-1.

    z=z+a*i

z bekommt einen neuen Wert, der sich aus der Summe des aktuellebn Wertes von z und dem Produkt aus a und i zusammensetze
    if i<5:
Falls i kleiner als 5 ist, werden die nachfolgenden eingerückten Zeilen ausgeführt. Falls nicht, wird mit der nächsten nicht-eingerückte Zeile fortgefahren.

        for j in range(0,i+1,1):
          z=z+j
Siehe vorhergehendes for.
print (str(z))
Der aktuelle Wert von z wird ausgegeben.
1)Welches Ergebnis bekomme ich wenn ich 7 Eingebe.
2)Welches Ergebnis erhalte ich wenn ich 8 Eingebe.

Probiere es aus.

Avatar von 5,6 k

Ich habe es zum Teil verstanden also werde es versuchen

Könntest du mir die zweite for schleife erklären habe schwierigkeiten sie aufzulösen

Könnte es mir jemand sehr gut aufschreiben

line                         a   z      i

z=z+a*j                 0   0      0


z=z+j                     1    1      0


z=z+a*i                  2    3     1

Was ist mein j ?

Wenn i<5 ist, gehst du in eine weitere for-Schleife. Die läufst du i+1 mal durch. Nämlich von 0 bis i. Jeder aktuelle Wert ist in der Variablen j eingespeichert. Jetzt addierst du einfach j und z und speicherst es in z ab.

Ich habe im Ergebnis 95 raus stimmt das ?

95 ist falsch. Wie bist du darauf gekommen?

Für 7 kommt 167 raus, für 8 kommt 244 raus.

Probier den Code einfach mal in einem online Compiler aus. Da solltest du auch auf die Werte kommen. Wenn nicht, hab ich etwas falsch gemacht.


Grüße

Felix

Ja aber wie mache ich das ohne online Programmierer

@Felixus Ich habe die gleichen Ergbnis. Entweder wir haben beide nichts falsch gemacht, oder wir müssen uns noch ein mal intensiv mit Copy&Paste auseinandersetzen.

Ja aber wie mache ich das ohne online Programmierer

Dann installiere dir Python auf deinem eigenen Rechner.

Na, irgendwie wirst du ja deine Projekte kompilieren können. Nutze eine der Möglichkeiten und du solltest die gleichen Ergebnisse rausbekommen. Händisch dauert das ganze etwas länger und ist vor allem Fehler-anfälliger.


Muss das leider per Hand machen ohne python Programm

_20190210_130908.JPG

Habe es so gemacht glaube aber das es falsch ist ..

a bleibt nach der anfänglichen Intialisierung konstant.

Wie meinst du ?

A ist der eingebene Integer. Die Zahl bleibt gleich. Sie dient nur als Bedingung in der for Schleife und als Faktor. Aber dir Zahl ändert sich nicht.

Ich habe eine frage wenn i mit 0 anfängt wird es dann sofort um 1 erhöht

Ich zitiere mal aus meiner Antwort:

Beim ersten Durchlauf hat i den Wert 0.

Erst der Durchlauf, dann das In-/Dekrementieren

Ich kriege es irgendwie nicht hin

Kann mir bitte jemand es ausführlich schreiben. Ich kanns leider nicht habe es probiert.

Wie kommt man auf 167

meine Ergebnisse fur

i=0 ; a=7; z=0

j=0; i=1; z=0

---------------------

i=1;a=7;z=7

j=1;i=2;z=8

--------------------

i=2;a=7;z=22

j=2;i=3;z=24

---------------------

i=3;a=7;z=45

j=3;i=4;z=48

---------------------

i=4;a=7;z=76

j=4;i=5;z=80

----------------------

i=5;a=7;z=115

j=5;i=6;z=120


Ich bekomme wenn ich 7 eingebe 120 wie bekomme ich 167 was ist mein Fehler oder wo muss ich besser machen ?

Ich schreib dir nachher den Lösungsweg.

danke für die Rückmeldung

1)  a: 7; z: 0; i: 0; j: 0
2)  a: 7; z: 0; i: 0; j: 0
3)  a: 7; z: 0; i: 0; j: 0
4)  a: 7; z: 0; i: 0; j: 0
2)  a: 7; z: 7; i: 1; j: 0
3)  a: 7; z: 7; i: 1; j: 0
4)  a: 7; z: 7; i: 1; j: 0
4)  a: 7; z: 8; i: 1; j: 1
2)  a: 7; z: 22; i: 2; j: 0
3)  a: 7; z: 22; i: 2; j: 0
4)  a: 7; z: 22; i: 2; j: 0
4)  a: 7; z: 23; i: 2; j: 1
4)  a: 7; z: 25; i: 2; j: 2
2)  a: 7; z: 46; i: 3; j: 0
3)  a: 7; z: 46; i: 3; j: 0
4)  a: 7; z: 46; i: 3; j: 0
4)  a: 7; z: 47; i: 3; j: 1
4)  a: 7; z: 49; i: 3; j: 2
4)  a: 7; z: 52; i: 3; j: 3
2)  a: 7; z: 80; i: 4; j: 0
3)  a: 7; z: 80; i: 4; j: 0
4)  a: 7; z: 80; i: 4; j: 0
4)  a: 7; z: 81; i: 4; j: 1
4)  a: 7; z: 83; i: 4; j: 2
4)  a: 7; z: 86; i: 4; j: 3
4)  a: 7; z: 90; i: 4; j: 4
2)  a: 7; z: 125; i: 5; j: 0
2)  a: 7; z: 167; i: 6; j: 0

Die Nummerierung bedeutet das Einfügen an unterschiedlichen Stellen:

1) Nach der Initialisierung der Variablen a und z

2) Nach der Rechnung in der ersten for-Schleife

3) Nach der if-Bedingung

4) Nach der Rechnung in der zweiten for-Schleife


Grüße

Felix

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community