0 Daumen
596 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.

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.

von 2,0 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

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community