lehrkraefte:snr:informatik:bruehl-2022:algorithmen

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:snr:informatik:bruehl-2022:algorithmen [2022/02/13 15:08]
Olaf Schnürer [Grober Überblick über die Themen bis Ostern]
lehrkraefte:snr:informatik:bruehl-2022:algorithmen [2022/04/10 15:28] (current)
Olaf Schnürer [Algorithmen und erste Schritte in Tigerjython]
Line 1: Line 1:
-====== Algorithmen und erste Schritte in Tigerjython ======+~~NOTOC~~ 
 + 
 +====== Algorithmen und erste Schritte in Python (und Tigerjython======
  
 <WRAP center round todo> <WRAP center round todo>
Line 8: Line 10:
 ===== Algorithmen ===== ===== Algorithmen =====
 <WRAP center round info 100%> <WRAP center round info 100%>
-Der Begriff **Algorithmus** meint einfach eine Handlungsvorschrift.+Der Begriff **Algorithmus** meint einfach eine Folge von Anweisungen, also eine Handlungsvorschrift.
 </WRAP> </WRAP>
  
Line 25: Line 27:
 </WRAP> </WRAP>
  
 +==== Flussdiagramm ====
  
 <WRAP center round box 100%> <WRAP center round box 100%>
Line 51: Line 54:
 ===== Erste Schritte in Tigerjython ===== ===== Erste Schritte in Tigerjython =====
  
-Wir lernen die Programmiersprache [[https://de.wikipedia.org/wiki/Python_(Programmiersprache)|Python]] bzw. genauer deren Variante Tigerjython kennen.+Wir lernen die Programmiersprache [[https://de.wikipedia.org/wiki/Python_(Programmiersprache)|Python]]((oder genauer einen Dialekt davon, nämlich Jython, erweitert um die ''repeat''-Struktur, wenn ich es recht verstehe)) <del>bzw. genauer deren Variante Tigerjython kennen</del>
 +Programmieren schreiben wir in der IDE **Tigerjython**. Eine IDE ist ein Editor mit Zusatzfunktionen, etwa zum Starten des Programms oder zum Debuggen, d. h. zur Fehlersuche. IDE bedeutet Integrated Development Environment, also Integrierte Entwicklungsumgebung
  
 <WRAP center round todo> <WRAP center round todo>
Line 84: Line 88:
  
 <WRAP center round todo> <WRAP center round todo>
-{{ :lehrkraefte:snr:informatik:bruehl-2022:einige-weitere-turtle-befehle.py |Hier}} ist ein Python-Programm verlinkt.+{{ :lehrkraefte:snr:informatik:bruehl-2022:turtle-befehle-per-nikolaus.py |Hier}} ist ein relativ langes Python-Programm verlinkt.
 Öffne es in deinem Editor (per Copy-and-Paste oder per Abspeichern auf deinem Rechner und dann Datei -> Öffnen im Menü des Editors). Öffne es in deinem Editor (per Copy-and-Paste oder per Abspeichern auf deinem Rechner und dann Datei -> Öffnen im Menü des Editors).
    
-Lass das Programm (schrittweise) laufen und lerne so neue Befehle kennen!+Lass das Programm (schrittweise) laufen und lerne so die folgenden neuen Befehle kennen
 +  * ''penWidth(10)'' 
 +  * ''setPenColor("red")'' 
 +  * ''hideTurtle()'' und ''showTurtle()'' und ''speed(2000)'' 
 +  * ''penUp()'' und ''penDown()'' 
 +  * ''backward(100)'' 
 +  * ''home()'' 
 +  * ''dot(10)'' und ''openDot(20)'' 
 +  * die ''repeat''-Struktur zum Wiederholen 
 + 
 +Du darfst gerne Herumspielen: Teile des Programms löschen, Zahlen verändern etc.! So lernt man viel!
  
 Zum leichteren Erinnern von Befehlen wie ''makeTurtle'', ''penWidth'', ''setPenColor'', ''hideTurtle'' etc.: Die Befehle starten stets mit einem Kleinbuchstaben und jedes "neue Wort" beginnt dann mit einem Grossbuchstaben. Zum leichteren Erinnern von Befehlen wie ''makeTurtle'', ''penWidth'', ''setPenColor'', ''hideTurtle'' etc.: Die Befehle starten stets mit einem Kleinbuchstaben und jedes "neue Wort" beginnt dann mit einem Grossbuchstaben.
 </WRAP> </WRAP>
  
 +Freiwillig: Wenn jemand eigenständig mehr Turtle-Befehle lernen will: [[https://programmierkonzepte.ch/index.php?inhalt_links=navigation.inc.php&inhalt_mitte=turtle/turtledoc.html|Dokumentation Turtle-Grafik in einem Tutorial]].
  
 <WRAP center round todo> <WRAP center round todo>
 **Hausaufgabe (die eventuell schon während der Lektion erledigt werden kann)** **Hausaufgabe (die eventuell schon während der Lektion erledigt werden kann)**
  
-Schreibe ein Programm, das eine "schöneZeichnung deiner Wahl erstellt. Das Programm muss die folgenden Bedingungen erfüllen:+Schreibe ein Programm, das eine **schöne** Zeichnung deiner Wahl erstellt. Das Programm muss die folgenden Bedingungen erfüllen:
   * Mindestens zwei verschiedene Farben werden verwendet (''setPenColor(...)'').   * Mindestens zwei verschiedene Farben werden verwendet (''setPenColor(...)'').
   * Mindestens zwei verschiedene Strichbreiten werden verwendet (''penWidth(...)'').   * Mindestens zwei verschiedene Strichbreiten werden verwendet (''penWidth(...)'').
   * Der Zeichenstift wird mindestens einmal angehoben - die Zeichnung kann also nicht ohne Absetzen gezeichnet werden (''penUp()'' und ''penDown'').   * Der Zeichenstift wird mindestens einmal angehoben - die Zeichnung kann also nicht ohne Absetzen gezeichnet werden (''penUp()'' und ''penDown'').
   * Gerne sehe ich es, wenn mindestens eine ''repeat''-Struktur verwendet wird.   * Gerne sehe ich es, wenn mindestens eine ''repeat''-Struktur verwendet wird.
-  * Gerne sehe ich es, wenn mindestens einmal die Befehle ''startPath()'' und ''fillPath()'' verwendet werden. +  * Das Programm unterscheidet sich deutlich von deinem Haus-vom-Nikolaus-Programm und von dem obigen Beispielprogramm. Du darfst aber dein Haus-vom-Nikolaus-Programm ausbauen (Wolken, Bäume, Segelboot...)    
-  * Das Programm unterscheidet sich deutlich von deinem Haus-vom-Nikolaus-Programm und von dem obigen Beispielprogramm. (Wenn du genügend viel hinzufügst (Wolken, Bäume, Sonne)darfst du auch die Nikolaus-Zeichnung ausbauen.)     +
   * Hoffentlich selbstverständlich: Das Programm ist nicht aus dem Internet kopiert.   * Hoffentlich selbstverständlich: Das Programm ist nicht aus dem Internet kopiert.
  
Line 111: Line 125:
  
 Falls jemand eine Zeichenidee benötigt:  Falls jemand eine Zeichenidee benötigt: 
-  * irgendeine "Kinderzeichnung" - mit dickem Stift kann man auch Rechtecke etc. zeichnen+  * irgendeine "Kinderzeichnung" - mit dickem Stift kann man auch leicht gefüllte Flächen zeichnen 
 +  * irgendeine abstrakte Zeichnung, beispielsweise [[https://de.wikipedia.org/wiki/Piet_Mondrian#/media/Datei:Piet_Mondriaan,_1921_-_Composition_en_rouge,_jaune,_bleu_et_noir.jpg|Bild von Mondrian]]
   * Drahtmodell eines Würfels   * Drahtmodell eines Würfels
   * [[https://de.wikipedia.org/wiki/Koch-Kurve|Koch-Kurve]]   * [[https://de.wikipedia.org/wiki/Koch-Kurve|Koch-Kurve]]
   * eine der Aufgaben am Ende [[https://programmierkonzepte.ch/index.php?inhalt_links=navigation.inc.php&inhalt_mitte=turtle/farben.inc.php|dieser Seite]] oder von einer anderen Seite dieses Tutorials   * eine der Aufgaben am Ende [[https://programmierkonzepte.ch/index.php?inhalt_links=navigation.inc.php&inhalt_mitte=turtle/farben.inc.php|dieser Seite]] oder von einer anderen Seite dieses Tutorials
 </WRAP> </WRAP>
 +
 +===== Lösungsvorschläge =====
 +
 +<hidden Python-Programm zum Haus des Nikolaus> 
 +<code python>
 +from gturtle import *
 +makeTurtle()
 +
 +right(90)
 +forward(50)
 +left(90)
 +forward(100)
 +right(45)
 +forward(70.7)
 +right(90)
 +forward(70.7)
 +right(135)
 +forward(100)
 +left(135)
 +forward(141.4)
 +left(135)
 +forward(100)
 +left(135)
 +forward(141.4)
 +left(135)
 +forward(150)
 +left(90)
 +</code>
 +</hidden>
  
 ===== Link zur Kursseite ===== ===== Link zur Kursseite =====
  • lehrkraefte/snr/informatik/bruehl-2022/algorithmen.1644761317.txt.gz
  • Last modified: 2022/02/13 15:08
  • by Olaf Schnürer