Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:rekursion

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
schule:rekursion [2017-04-19 08:39] – Externe Bearbeitung 127.0.0.1schule:rekursion [2021-06-10 07:15] – [Beispiel: Anzahl Elemente einer Liste] pintman
Zeile 37: Zeile 37:
  
 <code python> <code python>
-anzahl(liste):+def anzahl(liste):
   anzahl = 0   anzahl = 0
   for element in liste:   for element in liste:
Zeile 48: Zeile 48:
  
 <code python> <code python>
-anzahl(liste):+def anzahl(liste):
   if liste ist leer:   if liste ist leer:
     return 0     return 0
  
   else:   else:
-    liste_kleiner = liste.entferneErstesElement()+    liste_kleiner = liste[1:]  #  entferne erstes Element
     return 1 + anzahl(liste_kleiner)     return 1 + anzahl(liste_kleiner)
 </code> </code>
 +
 +Erinnerung: mit ''liste[a:b]'' wird der Teil von Index a bis zum Index b-1 aus einer Liste ausgelesen. 
 +Wird a oder b weggelassen, werden der Anfang Anfang bzw. das Ende der Liste verwendet. Dies nennt man
 +[[https://www.learnbyexample.org/python-list-slicing/|list slicing]].
  
  
Zeile 112: Zeile 116:
 {{:schule:prog:strecke_zwischen_zwei_punkten.png?direct|}} {{:schule:prog:strecke_zwischen_zwei_punkten.png?direct|}}
  
-In den [[https://tbs1.de/owncloud/index.php/s/al3BJaHnhXS7WlM|Materialien]] findest du Informationen darüber, wie eine Strecke zwischen zwei Punkten A und B mit einem rekursiven Verfahren auf dem Bildschirm ausgegeben werden kann. +Bei den Materialien findest du Informationen darüber, wie eine Strecke zwischen zwei Punkten A und B mit einem rekursiven Verfahren auf dem Bildschirm ausgegeben werden kann. 
  
 Wie sieht der einfache Fall aus? Wie sieht der einfache Fall aus?
  
-Vervollständige den Algorithmus in dem VisualStudio-Projekt entsprechend.+Vervollständige den folgenden Algorithmus zum Zeichnen einer Strecke. 
 + 
 +<code python> 
 +from tkinter import Tk, Canvas 
 + 
 +class App: 
 +    def __init__(self): 
 +        fenster = Tk() 
 +         
 +        self.canv = Canvas(fenster, width=200, height=200) 
 +        self.canv.pack() 
 + 
 +        self.strecke(10, 10, 150, 180) 
 +        fenster.mainloop() 
 + 
 +    def markiere(self, x, y): 
 +        self.canv.create_rectangle(x,y,x+1,y+1) 
 + 
 + 
 +    def strecke(self, ax, ay, bx, by): 
 +        # Hier muss eine Strecke rekursiv gezeichnet werden 
 +        # if Punkte a und b benachbart: 
 +        #   zeichne Pixel a und b 
 +        # else: 
 +        #   berechne mittelpunkt m 
 +        #   zeichne Strecke von a bis m 
 +        #   zeichne Strecke von m bis b 
 +        pass 
 + 
 +app = App() 
 +</code>
  
 ===== Übung Kochkurve ===== ===== Übung Kochkurve =====
Zeile 155: Zeile 189:
  
 </code> </code>
- 
-===== Live Coding mit Fluxus ===== 
- 
-Die Programmierumgebung [[live_coding#teil_1fluxus|Fluxus]] kann für das Live-Coding verwendet werden und nutzt in der Programmiersprache rekursive Mechanismen. 
- 
-<html> 
-<iframe width="560" height="315" src="https://www.youtube.com/embed/sS7WpYWm8PQ?rel=0" frameborder="0" allowfullscreen></iframe> 
-</html> 
  
 ===== Übung Grundrechenarten ===== ===== Übung Grundrechenarten =====
Zeile 228: Zeile 254:
 [3, 2, 1] [3, 2, 1]
 </code> </code>
 +
 +===== Live Coding mit Fluxus =====
 +
 +Die Programmierumgebung [[live_coding#teil_1fluxus|Fluxus]] kann für das Live-Coding verwendet werden und nutzt in der Programmiersprache rekursive Mechanismen.
 +
 +<html>
 +<iframe width="560" height="315" src="https://www.youtube.com/embed/sS7WpYWm8PQ?rel=0" frameborder="0" allowfullscreen></iframe>
 +</html>
 +
  
 ===== Probleme rekursiver Algorithmen ===== ===== Probleme rekursiver Algorithmen =====
Zeile 246: Zeile 281:
 ===== Links ===== ===== Links =====
  
-  * [[https://tbs1.de/owncloud/index.php/s/al3BJaHnhXS7WlM|Materialien]] 
   * [[https://www.youtube.com/watch?v=gYpMz63WAjM|Ein Kran trägt einen Kran trägt einen Kran (Video)]]   * [[https://www.youtube.com/watch?v=gYpMz63WAjM|Ein Kran trägt einen Kran trägt einen Kran (Video)]]
schule/rekursion.txt · Zuletzt geändert: 2024-01-20 09:39 von pintman