lehrkraefte:blc:informatik:glf20:programmieren:for-loops

This is an old revision of the document!


Wiederholungen mit for-loops

Testen und verstehen Sie folgendes Programm (auch mit Hilfe der Erklärungen unten).

for i in range(20):
    print("%2d im Quadrat ist %3d" % (i, i*i))
print("fertig")

Struktur eines for-loops:

  • Doppelpunkt am Ende der Zeile mit dem for
  • Der Code, der wiederholt wird, wird eingerückt.
  • range(n) heisst von 0 bis n-1
  • Die Laufvariable (im obigen Beispiel i) nimmt bei jedem Durchgang den nächsten Wert an.

Schreiben Sie ein Programm, das die Neuansteckungen mit Corona simuliert mit einer wöchentlichen Zunahme um 15%. Die Ausgabe soll z.B. wie folgt aussehen:

Aktuelle Zahl 500, wöchentliche Zunahme 15%
Woche  0:  500
Woche  1:  575
Woche  2:  661
Woche  3:  760
Woche  4:  874
Woche  5: 1005
Woche  6: 1156
Woche  7: 1330
Woche  8: 1529
Woche  9: 1758
Woche 10: 2022
Woche 11: 2326
Woche 12: 2675

Programmieren Sie Ihr Programm so, dass die akutelle Zahl und die Zuwachsrate am Anfang des Programm als Variablen definiert werden.

Die Summe der ersten $n$ Zahlen werden auch Dreieckszahlen genannt, weil damit mit Kugeln ein Dreieck legen kann. Diese Zahlen können wie folgt berechnet und ausgegeben werden:

summe = 0
for n in range(11):
    summe = summe + n
    print("Dreieckszahl %2d ist %3d" % (n,summe))

Mit diesen Kugeldreiecken lassen sich Pyramiden bauen (genauer Tetraeder). Wie viele Kugeln hat die Pyramide mit Seitenlänge 10? Schreiben Sie ein Programm, dass alle Tetraeder-Zahlen ausgibt.

Schreiben Sie ein Programm, das die Anzahl Zeilen einliest, und dann ein folgendes Dreieck (mit dieser Anzahl Zeilen) produziert, hier 5:

    *
   ***
  *****
 *******
*********

Zusatz-Aufgabe

Zusatz-Aufgabe

Produzieren Sie folgenden Output (hier ein Beispiel für 8 Zeilen):

       ^
      /v\
     /vvv\
    /vvvvv\
   /vvvvvvv\
  /vvvvvvvvv\
 /vvvvvvvvvvv\
/vvvvvvvvvvvvv\
      |||
      |||
      |||

Hinweise: Der Backslash wird mit “\\” geschrieben (weil der Backslash ist speziell, z.B. für \n aber auch z.B. für \“, ein Anführungszeichen im String).

<WRAP todo> Man kann for-loops verschachteln, der Code wird dann entsprechend weiter eingerückt.

Testen und verstehen Sie folgenden Code:

for x in range(3):
    for y in range(5):
        print("x=%d, y=%d" % (x,y))
    print("---")

Lösungsvorschläge

Lösungvorschläge

Lösungvorschläge

zuwachs = 15
aktuell = 500

print("Aktuelle Zahl %d, wöchentliche Zunahme %d%%" % (aktuell, zuwachs))
for i in range(13):
    print("Woche %2d: %4d" % (i, aktuell*(1+zuwachs/100)**i))
n = inputInt("Wie viele Stockwerke?")
for i in range(n):
    print(" "*(n-i-1)+"*"*(2*i+1))
n = inputInt("Wie viele Stockwerke?")
print(" "*(n-1)+"^")
for i in range(1,n):
    print(" "*(n-i-1)+"/"+"v"*(2*i-1)+"\\")
print((" "*(n-2)+"|||\n")*3)
summe = 0
volumen = 0
for n in range(11):
    summe = summe + n
    volumen = volumen + summe
    print("Tetraederzahl %2d ist %3d" % (n,volumen))
  • lehrkraefte/blc/informatik/glf20/programmieren/for-loops.1600238968.txt.gz
  • Last modified: 2020/09/16 08:49
  • by Ivo Blöchliger