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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:glf20:programmieren:for-loops [2020/09/16 09:01]
Ivo Blöchliger
lehrkraefte:blc:informatik:glf20:programmieren:for-loops [2020/10/22 08:28] (current)
Ivo Blöchliger
Line 1: Line 1:
 ====== Wiederholungen mit for-loops ====== ====== Wiederholungen mit for-loops ======
 <WRAP todo> <WRAP todo>
-Testen und verstehen Sie folgendes Programm (auch mit Hilfe der Erklärungen unten).+Testen und verstehen Sie folgendes Programm (auch mit Hilfe der Erklärungen in den folgenden beiden Info-Boxen unten).
 <code python> <code python>
 for i in range(20): for i in range(20):
Line 24: Line 24:
  
 <WRAP todo> <WRAP todo>
 +**Stand der Aufgabe: 20. September 2020**
 +
 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: 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:
 <code> <code>
Line 42: Line 44:
 </code> </code>
 Programmieren Sie Ihr Programm so, dass die akutelle Zahl und die Zuwachsrate am Anfang des Programm als Variablen definiert werden. Programmieren Sie Ihr Programm so, dass die akutelle Zahl und die Zuwachsrate am Anfang des Programm als Variablen definiert werden.
 +
 +//Hinweis:// Die aktuellen Zahlen können nicht direkt mit den Zahlen vom März verglichen werden, da zur Zeit viel mehr getestet wird und die Positivrate sehr viel kleiner ist. D.h. die Dunkelziffer war im März sehr viel höher als zur Zeit.
 +
 +[[https://fginfo.ksbg.ch/~ivo/videos/informatik/python/tiger-jython-for-loop-corona-simulation.mp4|🎞▶️ Erklärvideo]] und auch auf [[https://web.microsoftstream.com/video/0a5bc9aa-c057-4334-918d-b308a9fc379d|Stream]]
 +
 +**Hinweis vom 22. Oktober 2020**: Aktuell ist die Positivrate wieder so schlecht wie im März (bei ca. 20%), die Neuansteckungen sind aber viel höher, mit einer Zuwachsrate von ca. 120% pro Woche. Im Moment sind die Hospitalisationen noch tief, die wachsen aber mit der gleichen Zuwachsrate an, und werden das auch noch 2-3 Wochen **nach** dem Ergreifen von drastischen Massnahmen tun.
 </WRAP> </WRAP>
  
 <WRAP todo> <WRAP todo>
-Die Summe der ersten $n$ Zahlen werden auch Dreieckszahlen genanntweil damit mit Kugeln ein Dreieck legen kann. Diese Zahlen können wie folgt berechnet und ausgegeben werden:+Die Summe der ersten $n$ Zahlen ergibt jeweils eine Dreieckszahl. Der Name kommt daherdass mit dieser Anzahl Kugeln jeweils ein gleichseitiges Dreieck gelegt werden kann. Diese Zahlen können wie folgt berechnet und ausgegeben werden:
 <code python> <code python>
 summe = 0 summe = 0
Line 64: Line 72:
 ********* *********
 </code> </code>
 +
 +[[https://fginfo.ksbg.ch/~ivo/videos/informatik/python/tiger-jython-for-loop-text-dreieck.mp4|🎞▶️ Erklärvideo]] auch auf [[https://web.microsoftstream.com/video/f7f1f951-fbf1-4d6e-9665-58a83570c719|Stream]].
 +
 <hidden Zusatz-Aufgabe> <hidden Zusatz-Aufgabe>
 Produzieren Sie folgenden Output (hier ein Beispiel für 8 Zeilen): Produzieren Sie folgenden Output (hier ein Beispiel für 8 Zeilen):
Line 103: Line 114:
   zeile = zeile + "%3d" % i  # Hinten zum String hinzufügen. ACHTUNG: % ist eine Punktoperation und wird vor dem + ausgeführt.   zeile = zeile + "%3d" % i  # Hinten zum String hinzufügen. ACHTUNG: % ist eine Punktoperation und wird vor dem + ausgeführt.
 print(zeile)                 # Danach ausgeben print(zeile)                 # Danach ausgeben
 +</code>
 </WRAP> </WRAP>
  
 <WRAP todo> <WRAP todo>
-Schreiben Sie ein Program, das eine Multiplikationstabelle wie folgt ausgibt:+**HINWEIS**: Diese Aufgabe ist anspruchsvoll ich erwarte nur von wenigen, diese ganz selbständig lösen zu können. 
 + 
 +Schreiben Sie ein Program, das eine Multiplikationstabelle wie folgt ausgibt (und einfach auf den Bereich bis 20 ausgedehnt werden könnte):
 <code text> <code text>
-* |                    10+ * |                    10
 -------------------------------------------- --------------------------------------------
  1 |                    10  1 |                    10
Line 121: Line 135:
 10 |  10  20  30  40  50  60  70  80  90 100 10 |  10  20  30  40  50  60  70  80  90 100
 </code> </code>
 +[[https://fginfo.ksbg.ch/~ivo/videos/informatik/python/tiger-jython-for-loop-verschachtelt-multiplikationstabelle.mp4|🎞▶️ Erklärvideo]] und auch auf [[https://web.microsoftstream.com/video/d87636aa-bd19-4d83-b567-d554efce46c8|Stream]]
 +
 +<hidden Zusatzaufgabe>
 +Generieren Sie die Tabelle als HTML-Code, den Sie dann im Browser betrachten können.
 +  * Tabellen in HTML-Code: [[https://www.w3schools.com/html/html_tables.asp|W3Schools, english]] oder [[https://wiki.selfhtml.org/wiki/HTML/Tabellen/Aufbau_einer_Tabelle|SelfHtml, deutsch]]
 +  * Speichern Sie den erzeugten HTML-Code in einer Datei mit der Endung .html
 +  * Alternativ können Sie den ganzen Code als String in eine Variable speichern, z.B. ''htmlcode'' und diesen dann wie folgt in eine Datei schreiben:
 +<code python>
 +# hier den ganzen Code in der Variablen htmlcode aufbauen
 +with open("tabelle.html", "w") as datei:  # Die Datei wird im gleichen Ordner gespeichert, wo ihr Programm gespeichert ist.
 +    datei.write(htmlcode)
 +</code>
 +</hidden>
 </WRAP> </WRAP>
  
Line 159: Line 186:
  
 <code python> <code python>
 +n=10
 zeile = " * |"   zeile = " * |"  
-for i in range(1,11):+for i in range(1,n+1):
    zeile = zeile + "%4d" % i    zeile = zeile + "%4d" % i
 print(zeile) print(zeile)
-print("-"*44+print("-"*(4*(n+1))
-for i in range(1,11):+for i in range(1,n+1):
     zeile = "%2d |"%i     zeile = "%2d |"%i
-    for j in range(1,11):+    for j in range(1,n+1):
         zeile = zeile + "%4d" % (i*j)         zeile = zeile + "%4d" % (i*j)
     print(zeile)     print(zeile)
  • lehrkraefte/blc/informatik/glf20/programmieren/for-loops.1600239701.txt.gz
  • Last modified: 2020/09/16 09:01
  • by Ivo Blöchliger