===== https://fginfo.ksbg.ch ===== ====== Freifach Programmieren, Einstieg ====== * [[lehrkraefte:blc:informatik:ffprg1-2020:teasers|Teasers]] ====== Einstieg ====== * [[lehrkraefte:blc:informatik:ffprg1-2020:setup|Einrichten der Programmierumgebung]] * [[lehrkraefte:blc:informatik:ffprg1-2020:print|print: einfache Ausgabe, arithmetische Ausdrücke]] * [[lehrkraefte:blc:informatik:ffprg1-2020:zahlvar|Variablen mit Zahlen und deren Ausgabe]] * [[lehrkraefte:blc:informatik:ffprg1-2020:ifelse|Selektion, bedingte Programmausführung: if, if else, if elif else]] * [[lehrkraefte:blc:informatik:ffprg1-2020:loops|Wiederholungen, for, while, break, continue]] * [[lehrkraefte:blc:informatik:ffprg1-2020:zufallszahlen|Zufallszahlen]] * [[lehrkraefte:blc:informatik:ffprg1-2020:stringvar|Strings (Zeichenketten)]] * [[lehrkraefte:blc:informatik:ffprg1-2020:arrays|Listen und Arrays]] * [[lehrkraefte:blc:informatik:ffprg1-2020:funktionen|Funktionen]] * [[lehrkraefte:blc:informatik:ffprg1-2020:klassen|Klassen]] * [[lehrkraefte:blc:informatik:ffprg1-2020:sudoku|Sudoku]] * [[lehrkraefte:blc:informatik:ffprg1-2020:snake|Snake]] ===== Weitere Aufgaben ===== * Finden Sie eine Primzahl, die immer wieder eine Primzahl ergeben, wenn man jeweils die erste Stelle streicht. Z.B. 337 (prim) -> 37 (prim) -> 7 (prim). Wer findet die grösste solche Zahl? Wer findet die meisten? * Gegeben sind 6 Schalen nebeneinander, nummeriert von 0 bis 5 und jede Schale enthält eine Zauberbohne. Man kann folgende zwei Operationen vornehmen: * Aus einer Schale mit Nummer $x \in \{0,\ldots 4\}$ kann eine Bohne entnommen werden und dafür zwei Bohnen in die Schale mit Nummer $x+1$ gelegt werden (die Zauberbohnen materialisieren halt irgendwie). * Aus einer Schale mit Nummer $x \in \{0,\ldots 3\}$ kann eine Bohne entnommen werden. Diese verschwindet, dafür wird der Inhalt der Schalen mit Nummern $x+1$ und $x+2$ vertauscht. * Frage: Wie viele Bohnen können maximal in der letzten Schale landen? Achtung: Ich vermute, die Antwort ist zu gross für den Computer. Ich glaube die Antwort ist $2 \uparrow \uparrow \uparrow (2^{16})$. Mehr Infos zu dieser Schreibweise: https://en.wikipedia.org/wiki/Knuth%27s_up-arrow_notation. Und schliesslich noch die Inspiration dazu aus diesem Video (das sich auch als ganzes lohnt): https://youtu.be/elQVZLLiod4?t=2717 from gpanel import * # Wie viele Bohnen es in den Schalen hat: bins = [1 for i in range(6)] def handle(x,y): global bins x = int(x) if isLeftMouseButton(): # Bohne in die naechste Schale verdoppeln # # HIER FEHLT IHR CODE # pass if isRightMouseButton(): # Bohne entfernen und die beiden nächsten Schalen vertauschen # # HIER FEHLT IHR CODE # pass draw() # Situation zeichnen def draw(): global bins clear() for i in range(6): text(i+0.1, 0.1, str(bins[i])) makeGPanel(0,6,0,1,mousePressed=handle) draw() * Ein paar kleine Challenges mit "automatischer Überprüfung": [[lehrkraefte:blc:informatik:ffprg1-2020:challenges|Automatisierte Challenges]]