<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://ngb.schule/hgwiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thi</id>
	<title>Informatik-Box - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="http://ngb.schule/hgwiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thi"/>
	<link rel="alternate" type="text/html" href="http://ngb.schule/wiki/Spezial:Beitr%C3%A4ge/Thi"/>
	<updated>2026-04-14T14:05:18Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufbaum&amp;diff=4770</id>
		<title>Lernpfad:Rekursion in Java/Aufrufbaum</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufbaum&amp;diff=4770"/>
		<updated>2019-05-22T07:12:54Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Der Aufrufbaum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation}}&lt;br /&gt;
== Der Aufrufbaum ==&lt;br /&gt;
Durch einen Aufrufbaum wird die schrittweise Lösung eines Problems dargestellt. Im Aufrufbaum werden die &#039;&#039;Parameter&#039;&#039; und die &#039;&#039;Rückgaben&#039;&#039; der Methode visualisiert. Gerade bei Methoden mit mehreren rekursiven Aufrufen verdeutlicht der Aufrufbaum die Ausführung. &lt;br /&gt;
&lt;br /&gt;
[[Datei:PascalTriangleAnimated2.gif|frame|right|Visualisierung der Berechnung des Pascalschen Dreiecks.]]&lt;br /&gt;
Das [[wikipedia:Pascalsches Dreieck|Pascalsche Dreieck]] kann rekursiv berechnet werden, die jeweils oberhalb liegenden Felder werden addiert und ergeben das darunter liegende Feld.&lt;br /&gt;
&lt;br /&gt;
Der untere Aufrufbaum verdeutlicht die Berechnungen, die für die vierte Zeile und die dritte Spalte des Pascalschen Dreiecks benötigt werden:&lt;br /&gt;
[[Datei:02_Rekursion_Aufrufbaum_Pascalsche_Dreieck.PNG|Aufrufbaum bei der rekursiven Berechnung des Pascalschen Dreiecks.]]&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Eine [[wikipedia:Fibonacci-Folge|Fibonacci-Zahl]] wird durch die Summe der zwei vorherigen Fibonacci-Zahlen gebildet. &lt;br /&gt;
&lt;br /&gt;
Mathematisch ausgedrückt: &lt;br /&gt;
* &amp;lt;math&amp;gt;f(n) = f(n-2)+f(n-1)&amp;lt;/math&amp;gt; für &amp;lt;math&amp;gt;n&amp;gt;1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;f(n) = n&amp;lt;/math&amp;gt; für &amp;lt;math&amp;gt;n&amp;lt;2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notieren Sie den Aufrufbaum des Methodenaufrufs &amp;lt;math&amp;gt;f(4)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
public int f(n) {&lt;br /&gt;
  if (n &amp;gt; 1){&lt;br /&gt;
    return f(n-2) + f(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Lösung:Start}}&lt;br /&gt;
[[Datei:03_Rekursion_Aufrufbaum_fib_loesung.PNG|Aufrufbaum bei der rekursiven Berechnung von f(4).]]&lt;br /&gt;
{{Lösung:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufstapel&amp;diff=4769</id>
		<title>Lernpfad:Rekursion in Java/Aufrufstapel</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufstapel&amp;diff=4769"/>
		<updated>2019-05-22T06:39:18Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Der Aufrufstapel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation}}&lt;br /&gt;
== Der Aufrufstapel ==&lt;br /&gt;
&lt;br /&gt;
Intern werden die Methodenaufrufe einer rekursiven Methode auf einem &#039;&#039;Stapel&#039;&#039; gespeichert. Die Methoden, die ganz oben auf dem Stapel liegen, werden zuerst abgearbeitet. Danach wird das Resultat der Methode verwendet, um die darunterliegenden Methoden zu berechnen.&lt;br /&gt;
&lt;br /&gt;
Der Quelltext für die Methode fakultät erzeugt den darunter dargestellten Aufrufstapel.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
public int fakultät (int n){&lt;br /&gt;
  if (n &amp;lt; 2){&lt;br /&gt;
    return 1;&lt;br /&gt;
  }else{&lt;br /&gt;
    return n*fakultät (n-1);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:01_Rekursion_Aufrufstack_Fakultaet.png |600px|center|Aufrufstapel der Methode Fakultät.]]&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Die Methode z               &lt;br /&gt;
! Ergänze den Aufrufstapel für z(5) .&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
public int z(x) {&lt;br /&gt;
  if (x &amp;gt; 1){&lt;br /&gt;
    return x + z(x - 2);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
   | &lt;br /&gt;
   |&lt;br /&gt;
   |z(1)&lt;br /&gt;
   |1&lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | &lt;br /&gt;
   | z(3)&lt;br /&gt;
   | &lt;br /&gt;
   |   &lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | 5+4=9&lt;br /&gt;
   |- &lt;br /&gt;
 |}&lt;br /&gt;
|}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
{{Lösung:Start}}&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
   | &lt;br /&gt;
   |&lt;br /&gt;
   |z(1)&lt;br /&gt;
   |1&lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | &lt;br /&gt;
   | z(3)&lt;br /&gt;
   | z(3)&lt;br /&gt;
   | 3+1=4  &lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | 5+4=9&lt;br /&gt;
   |- &lt;br /&gt;
 |}&lt;br /&gt;
{{Lösung:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufstapel&amp;diff=4768</id>
		<title>Lernpfad:Rekursion in Java/Aufrufstapel</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufstapel&amp;diff=4768"/>
		<updated>2019-05-22T06:36:58Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Der Aufrufstapel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation}}&lt;br /&gt;
== Der Aufrufstapel ==&lt;br /&gt;
[[Datei:01_Rekursion_Aufrufstack_Fakultaet.png |right|thumb|frame|center|Aufrufstapel der Methode Fakultät.]]&lt;br /&gt;
Intern werden die Methodenaufrufe einer rekursiven Methode auf einem &#039;&#039;Stapel&#039;&#039; gespeichert. Die Methoden, die ganz oben auf dem Stapel liegen, werden zuerst abgearbeitet. Danach wird das Resultat der Methode verwendet, um die darunterliegenden Methoden zu berechnen.&lt;br /&gt;
&lt;br /&gt;
Der Quelltext für die Methode fakultät erzeugt den rechts dargestellten Aufrufstapel.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
public int fakultät (int n){&lt;br /&gt;
  if (n &amp;lt; 2){&lt;br /&gt;
    return 1;&lt;br /&gt;
  }else{&lt;br /&gt;
    return n*fakultät (n-1);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Die Methode z               &lt;br /&gt;
! Ergänze den Aufrufstapel für z(5) .&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
public int z(x) {&lt;br /&gt;
  if (x &amp;gt; 1){&lt;br /&gt;
    return x + z(x - 2);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
   | &lt;br /&gt;
   |&lt;br /&gt;
   |z(1)&lt;br /&gt;
   |1&lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | &lt;br /&gt;
   | z(3)&lt;br /&gt;
   | &lt;br /&gt;
   |   &lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | 5+4=9&lt;br /&gt;
   |- &lt;br /&gt;
 |}&lt;br /&gt;
|}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
{{Lösung:Start}}&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
   | &lt;br /&gt;
   |&lt;br /&gt;
   |z(1)&lt;br /&gt;
   |1&lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | &lt;br /&gt;
   | z(3)&lt;br /&gt;
   | z(3)&lt;br /&gt;
   | 3+1=4  &lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | 5+4=9&lt;br /&gt;
   |- &lt;br /&gt;
 |}&lt;br /&gt;
{{Lösung:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufstapel&amp;diff=4767</id>
		<title>Lernpfad:Rekursion in Java/Aufrufstapel</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufstapel&amp;diff=4767"/>
		<updated>2019-05-22T06:31:13Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Der Aufrufstapel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation}}&lt;br /&gt;
== Der Aufrufstapel ==&lt;br /&gt;
[[Datei:01_Rekursion_Aufrufstack_Fakultaet.png |right|thumb|frame|center|Aufrufstapel der Methode Fakultät.]]&lt;br /&gt;
Intern werden die Methodenaufrufe einer rekursiven Methode auf einem &#039;&#039;Stapel&#039;&#039; gespeichert. Die Methoden, die ganz oben auf dem Stapel liegen, werden zuerst abgearbeitet. Danach wird das Resultat der Methode verwendet, um die darunterliegenden Methoden zu berechnen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Die Methode z               &lt;br /&gt;
! Ergänze den Aufrufstapel für z(5) .&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
public int z(x) {&lt;br /&gt;
  if (x &amp;gt; 1){&lt;br /&gt;
    return x + z(x - 2);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
   | &lt;br /&gt;
   |&lt;br /&gt;
   |z(1)&lt;br /&gt;
   |1&lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | &lt;br /&gt;
   | z(3)&lt;br /&gt;
   | &lt;br /&gt;
   |   &lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | 5+4=9&lt;br /&gt;
   |- &lt;br /&gt;
 |}&lt;br /&gt;
|}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
{{Lösung:Start}}&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
   | &lt;br /&gt;
   |&lt;br /&gt;
   |z(1)&lt;br /&gt;
   |1&lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | &lt;br /&gt;
   | z(3)&lt;br /&gt;
   | z(3)&lt;br /&gt;
   | 3+1=4  &lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | 5+4=9&lt;br /&gt;
   |- &lt;br /&gt;
 |}&lt;br /&gt;
{{Lösung:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufstapel&amp;diff=4766</id>
		<title>Lernpfad:Rekursion in Java/Aufrufstapel</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufstapel&amp;diff=4766"/>
		<updated>2019-05-22T06:30:03Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Der Aufrufstapel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation}}&lt;br /&gt;
== Der Aufrufstapel ==&lt;br /&gt;
[[Datei:01_Rekursion_Aufrufstack_Fakultaet.png |right|thumb|frame|center|Aufrufstapel der Methode Fakultät.]]&lt;br /&gt;
Intern werden die Methodenaufrufe einer rekursiven Methode auf einem &#039;&#039;Stapel&#039;&#039; gespeichert. Die Methoden, die ganz oben auf dem Stapel liegen, werden zuerst abgearbeitet. Danach wird das Resultat der Methode verwendet, um die darunterliegenden Methoden zu berechnen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Die Methode z               &lt;br /&gt;
! Ergänze den Aufrufstapel für z(5) .&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
public int z(x) {&lt;br /&gt;
  if (x &amp;gt; 1){&lt;br /&gt;
    return a + z(x - 2);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
   | &lt;br /&gt;
   |&lt;br /&gt;
   |z(1)&lt;br /&gt;
   |1&lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | &lt;br /&gt;
   | z(3)&lt;br /&gt;
   | &lt;br /&gt;
   |   &lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | 5+4=9&lt;br /&gt;
   |- &lt;br /&gt;
 |}&lt;br /&gt;
|}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
{{Lösung:Start}}&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
   | &lt;br /&gt;
   |&lt;br /&gt;
   |z(1)&lt;br /&gt;
   |1&lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | &lt;br /&gt;
   | z(3)&lt;br /&gt;
   | z(3)&lt;br /&gt;
   | 3+1=4  &lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | 5+4=9&lt;br /&gt;
   |- &lt;br /&gt;
 |}&lt;br /&gt;
{{Lösung:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Fallunterscheidung_(Farbbereiche)&amp;diff=4765</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Fallunterscheidung (Farbbereiche)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Fallunterscheidung_(Farbbereiche)&amp;diff=4765"/>
		<updated>2019-04-14T21:05:08Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Möchte man in einem Programm Fälle unterscheiden, muss man den if-Befehl verwenden: &lt;br /&gt;
Das folgende Programm zeigt je nach Position der Maus eine andere Farbe an.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
  if(mouseX &amp;gt; 200){&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	rect(mouseX, 10, 100,100); &lt;br /&gt;
  }&lt;br /&gt;
  if(mouseX &amp;lt; 200 &amp;amp;&amp;amp; mouseY &amp;gt; 125){&lt;br /&gt;
	fill(200, 200, 0); &lt;br /&gt;
	ellipse(mouseX, 10, 100,100);   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Ändere das obige Programm so ab, dass der Bildschirm auch in drei Teile geteilt wird.&lt;br /&gt;
{{Aufgabe:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Fallunterscheidung_(Farbbereiche)&amp;diff=4764</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Fallunterscheidung (Farbbereiche)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Fallunterscheidung_(Farbbereiche)&amp;diff=4764"/>
		<updated>2019-04-14T21:02:56Z</updated>

		<summary type="html">&lt;p&gt;Thi: Die Seite wurde neu angelegt: „Möchte man in einem Programm Fälle unterscheiden, muss man den if-Befehl verwenden:  &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt; function setup() {   createCanvas(40…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Möchte man in einem Programm Fälle unterscheiden, muss man den if-Befehl verwenden: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
  if(mouseX &amp;gt; 200){&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	rect(mouseX, 10, 100,100); &lt;br /&gt;
  }&lt;br /&gt;
  if(mouseX &amp;lt; 200){&lt;br /&gt;
	fill(200, 200, 0); &lt;br /&gt;
	ellipse(mouseX, 10, 100,100);   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Ändere das obige Programm so ab, dass der Bildschirm auch in drei Teile geteilt wird.&lt;br /&gt;
{{Aufgabe:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4763</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Farbe in p5js (Regenbogen)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4763"/>
		<updated>2019-04-14T20:52:12Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jeder Pixel auf dem Display oder Zeichenfeld hat eine Farbe. Wenn man ganz nah an einen Monitor heran geht, kann man evtl. einzelne Pixel erkennen. Sie bestehen aus drei kleinen Pixeln, die die Farben rot, grün und blau haben.&lt;br /&gt;
Das folgende Feld zeigt an, welche Farben durch die verschiedenen Farben entstehen können. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p5js height=&amp;quot;300&amp;quot;&amp;gt;https://editor.p5js.org/HerrThiessen/embed/H1DXipu-E&amp;lt;/p5js&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In p5js gibt es zwei Möglichkeiten die Zeichenfarbe festzulegen: &lt;br /&gt;
# fill(r,g,b) legt die Farbe der Füllung einer Form fest&lt;br /&gt;
# stroke(r,g,b) legt die Farbe der Kontur einer Form fest&lt;br /&gt;
&lt;br /&gt;
Das folgende Programm zeichnet ein paar bunte Formen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	rect(10, 10, 100,100); &lt;br /&gt;
	fill(255,0,0);&lt;br /&gt;
	ellipse(250,50,20); &lt;br /&gt;
    fill(0,255,0);&lt;br /&gt;
    triangle(150,150,110,260,190,260);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Erstelle ein Programm, das ein Haus mit einem Baum darstellt.&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Der folgende Quelltext zeichnet zwei Kreise am unteren Rand des Zeichenfeldes.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	ellipse(width/2, height, 100);&lt;br /&gt;
	fill(255,0,0);&lt;br /&gt;
	ellipse(width/2, height,50); &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ergänze die zwei Kreise zu einem Regenbogen. Beachte dabei, dass die kleineren Kreise am Ende gezeichnet werden sollten.&lt;br /&gt;
{{Aufgabe:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4762</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Farbe in p5js (Regenbogen)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4762"/>
		<updated>2019-04-14T20:49:19Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jeder Pixel auf dem Display oder Zeichenfeld hat eine Farbe. Wenn man ganz nah an einen Monitor heran geht, kann man evtl. einzelne Pixel erkennen. Sie bestehen aus drei kleinen Pixeln, die die Farben rot, grün und blau haben.&lt;br /&gt;
Das folgende Feld zeigt an, welche Farben durch die verschiedenen Farben entstehen können. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p5js height=&amp;quot;300&amp;quot;&amp;gt;https://editor.p5js.org/HerrThiessen/embed/H1DXipu-E&amp;lt;/p5js&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In p5js gibt es zwei Möglichkeiten die Zeichenfarbe festzulegen: &lt;br /&gt;
# fill(r,g,b) legt die Farbe der Füllung einer Form fest&lt;br /&gt;
# stroke(r,g,b) legt die Farbe der Kontur einer Form fest&lt;br /&gt;
&lt;br /&gt;
Das folgende Programm zeichnet ein paar bunte Formen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	rect(10, 10, 100,100); &lt;br /&gt;
	fill(255,0,0);&lt;br /&gt;
	ellipse(250,50,20); &lt;br /&gt;
    fill(0,255,0);&lt;br /&gt;
    triangle(150,150,110,260,190,260);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Erstelle ein Programm, das ein Haus mit einem Baum darstellt.&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Der folgende Quelltext zeichnet zwei Kreise am unteren Rand des Zeichenfeldes.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	ellipse(width/2, height, 100); // width enthält die Breite des Fensters&lt;br /&gt;
	fill(255,0,0);&lt;br /&gt;
	ellipse(width/2, height,50); // height enthält die Höhe des Fensters&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ergänze die zwei Kreise zu einem Regenbogen. Beachte dabei, dass die kleineren Kreise am Ende gezeichnet werden sollten.&lt;br /&gt;
{{Aufgabe:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4761</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Farbe in p5js (Regenbogen)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4761"/>
		<updated>2019-04-14T18:37:55Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jeder Pixel auf dem Display oder Zeichenfeld hat eine Farbe. Wenn man ganz nah an einen Monitor heran geht, kann man evtl. einzelne Pixel erkennen. Sie bestehen aus drei kleinen Pixeln, die die Farben rot, grün und blau haben.&lt;br /&gt;
Das folgende Feld zeigt an, welche Farben durch die verschiedenen Farben entstehen können. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p5js height=&amp;quot;300&amp;quot;&amp;gt;https://editor.p5js.org/HerrThiessen/embed/H1DXipu-E&amp;lt;/p5js&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In p5js gibt es zwei Möglichkeiten die Zeichenfarbe festzulegen: &lt;br /&gt;
# fill(r,g,b) legt die Farbe der Füllung einer Form fest&lt;br /&gt;
# stroke(r,g,b) legt die Farbe der Kontur einer Form fest&lt;br /&gt;
&lt;br /&gt;
Der folgende Quelltext zeichnet zwei Kreise am unteren Rand des Zeichenfeldes.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	ellipse(width/2, height, 100); // width enthält die Breite des Fensters&lt;br /&gt;
	fill(255,0,0);&lt;br /&gt;
	ellipse(width/2, height,50); // height enthält die Höhe des Fensters&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Ergänze die zwei Kreise zu einem Regenbogen. Beachte dabei, dass die kleineren Kreise am Ende gezeichnet werden sollten.&lt;br /&gt;
{{Aufgabe:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java&amp;diff=4758</id>
		<title>Lernpfad:Rekursion in Java</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java&amp;diff=4758"/>
		<updated>2019-02-10T16:27:05Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Einführung Rekursion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Status/In Bearbeitung von|thi}}{{Warnung/Lernpfad im Aufbau}}&lt;br /&gt;
{{Navigation}}&lt;br /&gt;
{{Inhalt}}&lt;br /&gt;
&lt;br /&gt;
=Einführung Rekursion=&lt;br /&gt;
[[Datei:Screenshot_Recursion_via_vlc.png|thumb|right|Rekursion bei der Aufnahme eines Bildschirmfotos mit dem VLC-Player.]]&lt;br /&gt;
In diesem Lernpfad lernst du die Grundlagen der &#039;&#039;rekursiven Programmierung&#039;&#039; kennen. Dieses Prinzip wird in vielen Anwendungen verwendet. Es entsteht aber auch ganz ausversehen im Alltag wenn man zum Beispiel das Bild eines Monitors mit [https://www.videolan.org VLC] aufzeichnet und dabei in diesem Bild auch der VLC-Player selber zu sehen ist. Einen ähnlichen Effekt erhält man, wenn man seinen Handy-Bildschirm auf einem Monitor überträgt und den Monitor filmt. &lt;br /&gt;
&lt;br /&gt;
An diesen Beispielen wird deutlich, dass &#039;&#039;Rekursion&#039;&#039; ein Verfahren ist, bei dem eine &#039;&#039;Wiederholung des Gleichen&#039;&#039; verwendet wird. &lt;br /&gt;
&lt;br /&gt;
[[Datei:Sierpinski-zoom4-ani.gif|left|Animation des Sierpinski-Dreiecks.]]&lt;br /&gt;
Auch das [[wikipedia:Sierpinski-Dreieck|Sierpinski-Dreieck]] ist ein Beispiel für Rekursion. Das Dreieck besteht aus Dreiecken, die aus Dreiecken bestehen, die aus ...&lt;br /&gt;
&lt;br /&gt;
=Weitere Quellen=&lt;br /&gt;
- http://www.saar.de/~awa/jrekursion.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Lernpfade]][[Kategorie:Lernpfade zu Java]][[Kategorie:Lernpfade Q1/Q2]]&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4541</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4541"/>
		<updated>2019-01-09T08:54:04Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Suche in einem unsortieren Array */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der [[Lernpfad:Rekursion in Java/Definition | Definition]] implementiert werden.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Hast du die drei Bestandteile noch vor Augen?&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
[[Datei:05 Kaestchen.png | right]]&lt;br /&gt;
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;br /&gt;
Ein häufiges Problem ist die Suche nach einem speziellen Element. &lt;br /&gt;
&lt;br /&gt;
=== Suche in einem unsortieren Array===&lt;br /&gt;
Das einfachste Beispiel ist die Suche der Position einer Zahl in einem Array. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Zahlenarray{&lt;br /&gt;
   int[] zahlen; &lt;br /&gt;
   public Zahlenarray(){&lt;br /&gt;
      zahlen = int[10]; &lt;br /&gt;
      for(int i = 0; i&amp;lt;zahlen.length;i++){&lt;br /&gt;
         zahlen[i] = (int)(Math.random()*10);&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
&amp;lt;zuordnung&amp;gt;&lt;br /&gt;
Eine kleine Beschreibung&lt;br /&gt;
::1::Ein Satz&lt;br /&gt;
::2::wort&lt;br /&gt;
::3::Text::Lücke&lt;br /&gt;
&amp;lt;/zuordnung&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;zuordnung&amp;gt;&lt;br /&gt;
Fügen Sie die Methode ***public int gibPosition(int z)***, die die Position einer Zahl im Array zurückgibt. Falls die Zahl nicht vorhanden ist, soll -1 als Position zurückgegeben werden.&lt;br /&gt;
::1::public_int_gibPosition(int_z){&lt;br /&gt;
::2::int pos = -1; &lt;br /&gt;
::3::for(int i=0; i &amp;lt; zahlen.length; i++){&lt;br /&gt;
::4::if(zahlen[i]==z){&lt;br /&gt;
::5::pos = i;&lt;br /&gt;
::6::}&lt;br /&gt;
::7::}&lt;br /&gt;
::8:: return pos;&lt;br /&gt;
::9::}&lt;br /&gt;
&amp;lt;/zuordnung&amp;gt;&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
=== Suche in einem unsortierten Kartenhaufen ===&lt;br /&gt;
Sucht man in einem heruntergefallenen Kartenstapel nach einer speziellen Karte, so muss man sich alle Karten ansehen, da sie in keiner speziellen Ordnung herunterfallen, sondern völlig durcheinander sind.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Karte{&lt;br /&gt;
   private String farbe; &lt;br /&gt;
   private String wert; &lt;br /&gt;
 &lt;br /&gt;
   public Karte(){&lt;br /&gt;
      String[] farben = {&amp;quot;Kreuz&amp;quot;, &amp;quot;Pik&amp;quot;, &amp;quot;Herz&amp;quot;, &amp;quot;Karo&amp;quot;};&lt;br /&gt;
      String[] werte = {&amp;quot;5&amp;quot;,&amp;quot;6&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;8&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;Bube&amp;quot;,&amp;quot;Dame&amp;quot;,&amp;quot;König&amp;quot;,&amp;quot;Ass&amp;quot;};&lt;br /&gt;
      farbe = farben[(int)(Math.random()*farben.length())]; &lt;br /&gt;
      wert= werte[(int)(Math.random()*wert.length())]; &lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   public boolean istGleich(String pFarbe, String pWert){&lt;br /&gt;
      return farbe.equals(pFarbe) &amp;amp;&amp;amp; wert.equals(pWert);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Java können die Karten in einem Array verwaltet werden: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Kartenhaufen{&lt;br /&gt;
  private Karte[] haufen; &lt;br /&gt;
  public Kartenhaufen(){&lt;br /&gt;
    haufen = new Karte[32];&lt;br /&gt;
    for (int i= 0; i&amp;lt;haufen.length;i++){&lt;br /&gt;
      haufen[i] = new Karte(); // Erzeugt eine zufällige Karte&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   &lt;br /&gt;
      Karte k = haufen[i];                          &lt;br /&gt;
      if(k.istGleich(farbe,wert)){        &lt;br /&gt;
         return k;                                    &lt;br /&gt;
      }                                    &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterungen:&lt;br /&gt;
{{Collapse:Start }}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   //Der ganze Array soll durchlaufen werden.&lt;br /&gt;
      Karte k = haufen[i];                 //Die aktuelle Karte wird aus dem Array &lt;br /&gt;
                                           //geholt und eine Referenz k auf das Element wird erstellt.&lt;br /&gt;
      if(k.getFarbe().equals(farbe) &amp;amp;&amp;amp;     //Die Daten der aktuellen Karte k &lt;br /&gt;
         k.getWert().equals(wert)){        //werden mit der Farbe und dem Wert verglichen&lt;br /&gt;
         return k;                         //Falls die Werte übereinstimmen, &lt;br /&gt;
                                           //wird eine Referenz auf die aktuelle Karte k zurückgegeben.&lt;br /&gt;
      }                                    //Die Methode wird dann sofort beendet.&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Z.B. die Telefonnummer in einem Telefonbuch. Das Telefonbuch ist nur deshalb praktikabel, weil es die Namen der Personen geordnet angibt. In einem geordneten Array kann man also schneller suchen, als in&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4540</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4540"/>
		<updated>2019-01-09T08:53:32Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Suche in einem unsortieren Array */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der [[Lernpfad:Rekursion in Java/Definition | Definition]] implementiert werden.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Hast du die drei Bestandteile noch vor Augen?&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
[[Datei:05 Kaestchen.png | right]]&lt;br /&gt;
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;br /&gt;
Ein häufiges Problem ist die Suche nach einem speziellen Element. &lt;br /&gt;
&lt;br /&gt;
=== Suche in einem unsortieren Array===&lt;br /&gt;
Das einfachste Beispiel ist die Suche der Position einer Zahl in einem Array. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Zahlenarray{&lt;br /&gt;
   int[] zahlen; &lt;br /&gt;
   public Zahlenarray(){&lt;br /&gt;
      zahlen = int[10]; &lt;br /&gt;
      for(int i = 0; i&amp;lt;zahlen.length;i++){&lt;br /&gt;
         zahlen[i] = (int)(Math.random()*10);&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
&amp;lt;zuordnung&amp;gt;&lt;br /&gt;
Eine kleine Beschreibung&lt;br /&gt;
::1::Ein Satz&lt;br /&gt;
::2::wort&lt;br /&gt;
::3::Text::Lücke&lt;br /&gt;
&amp;lt;/zuordnung&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;zuordnung&amp;gt;&lt;br /&gt;
Fügen Sie die Methode ***public int gibPosition(int z)***, die die Position einer Zahl im Array zurückgibt. Falls die Zahl nicht vorhanden ist, soll -1 als Position zurückgegeben werden.&lt;br /&gt;
1::public_int_gibPosition(int_z){&lt;br /&gt;
2::int pos = -1; &lt;br /&gt;
3::for(int i=0; i &amp;lt; zahlen.length; i++){&lt;br /&gt;
4::if(zahlen[i]==z){&lt;br /&gt;
5::pos = i;&lt;br /&gt;
6::}&lt;br /&gt;
7::}&lt;br /&gt;
8:: return pos;&lt;br /&gt;
9::}&lt;br /&gt;
&amp;lt;/zuordnung&amp;gt;&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
=== Suche in einem unsortierten Kartenhaufen ===&lt;br /&gt;
Sucht man in einem heruntergefallenen Kartenstapel nach einer speziellen Karte, so muss man sich alle Karten ansehen, da sie in keiner speziellen Ordnung herunterfallen, sondern völlig durcheinander sind.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Karte{&lt;br /&gt;
   private String farbe; &lt;br /&gt;
   private String wert; &lt;br /&gt;
 &lt;br /&gt;
   public Karte(){&lt;br /&gt;
      String[] farben = {&amp;quot;Kreuz&amp;quot;, &amp;quot;Pik&amp;quot;, &amp;quot;Herz&amp;quot;, &amp;quot;Karo&amp;quot;};&lt;br /&gt;
      String[] werte = {&amp;quot;5&amp;quot;,&amp;quot;6&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;8&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;Bube&amp;quot;,&amp;quot;Dame&amp;quot;,&amp;quot;König&amp;quot;,&amp;quot;Ass&amp;quot;};&lt;br /&gt;
      farbe = farben[(int)(Math.random()*farben.length())]; &lt;br /&gt;
      wert= werte[(int)(Math.random()*wert.length())]; &lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   public boolean istGleich(String pFarbe, String pWert){&lt;br /&gt;
      return farbe.equals(pFarbe) &amp;amp;&amp;amp; wert.equals(pWert);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Java können die Karten in einem Array verwaltet werden: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Kartenhaufen{&lt;br /&gt;
  private Karte[] haufen; &lt;br /&gt;
  public Kartenhaufen(){&lt;br /&gt;
    haufen = new Karte[32];&lt;br /&gt;
    for (int i= 0; i&amp;lt;haufen.length;i++){&lt;br /&gt;
      haufen[i] = new Karte(); // Erzeugt eine zufällige Karte&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   &lt;br /&gt;
      Karte k = haufen[i];                          &lt;br /&gt;
      if(k.istGleich(farbe,wert)){        &lt;br /&gt;
         return k;                                    &lt;br /&gt;
      }                                    &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterungen:&lt;br /&gt;
{{Collapse:Start }}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   //Der ganze Array soll durchlaufen werden.&lt;br /&gt;
      Karte k = haufen[i];                 //Die aktuelle Karte wird aus dem Array &lt;br /&gt;
                                           //geholt und eine Referenz k auf das Element wird erstellt.&lt;br /&gt;
      if(k.getFarbe().equals(farbe) &amp;amp;&amp;amp;     //Die Daten der aktuellen Karte k &lt;br /&gt;
         k.getWert().equals(wert)){        //werden mit der Farbe und dem Wert verglichen&lt;br /&gt;
         return k;                         //Falls die Werte übereinstimmen, &lt;br /&gt;
                                           //wird eine Referenz auf die aktuelle Karte k zurückgegeben.&lt;br /&gt;
      }                                    //Die Methode wird dann sofort beendet.&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Z.B. die Telefonnummer in einem Telefonbuch. Das Telefonbuch ist nur deshalb praktikabel, weil es die Namen der Personen geordnet angibt. In einem geordneten Array kann man also schneller suchen, als in&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4539</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4539"/>
		<updated>2019-01-09T08:53:17Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Suche in einem unsortieren Array */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der [[Lernpfad:Rekursion in Java/Definition | Definition]] implementiert werden.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Hast du die drei Bestandteile noch vor Augen?&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
[[Datei:05 Kaestchen.png | right]]&lt;br /&gt;
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;br /&gt;
Ein häufiges Problem ist die Suche nach einem speziellen Element. &lt;br /&gt;
&lt;br /&gt;
=== Suche in einem unsortieren Array===&lt;br /&gt;
Das einfachste Beispiel ist die Suche der Position einer Zahl in einem Array. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Zahlenarray{&lt;br /&gt;
   int[] zahlen; &lt;br /&gt;
   public Zahlenarray(){&lt;br /&gt;
      zahlen = int[10]; &lt;br /&gt;
      for(int i = 0; i&amp;lt;zahlen.length;i++){&lt;br /&gt;
         zahlen[i] = (int)(Math.random()*10);&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
&amp;lt;zuordnung&amp;gt;&lt;br /&gt;
Eine kleine Beschreibung&lt;br /&gt;
::1::EinSatz&lt;br /&gt;
::2::wort&lt;br /&gt;
::3::Text::Lücke&lt;br /&gt;
&amp;lt;/zuordnung&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;zuordnung&amp;gt;&lt;br /&gt;
Fügen Sie die Methode ***public int gibPosition(int z)***, die die Position einer Zahl im Array zurückgibt. Falls die Zahl nicht vorhanden ist, soll -1 als Position zurückgegeben werden.&lt;br /&gt;
1::public_int_gibPosition(int_z){&lt;br /&gt;
2::int pos = -1; &lt;br /&gt;
3::for(int i=0; i &amp;lt; zahlen.length; i++){&lt;br /&gt;
4::if(zahlen[i]==z){&lt;br /&gt;
5::pos = i;&lt;br /&gt;
6::}&lt;br /&gt;
7::}&lt;br /&gt;
8:: return pos;&lt;br /&gt;
9::}&lt;br /&gt;
&amp;lt;/zuordnung&amp;gt;&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
=== Suche in einem unsortierten Kartenhaufen ===&lt;br /&gt;
Sucht man in einem heruntergefallenen Kartenstapel nach einer speziellen Karte, so muss man sich alle Karten ansehen, da sie in keiner speziellen Ordnung herunterfallen, sondern völlig durcheinander sind.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Karte{&lt;br /&gt;
   private String farbe; &lt;br /&gt;
   private String wert; &lt;br /&gt;
 &lt;br /&gt;
   public Karte(){&lt;br /&gt;
      String[] farben = {&amp;quot;Kreuz&amp;quot;, &amp;quot;Pik&amp;quot;, &amp;quot;Herz&amp;quot;, &amp;quot;Karo&amp;quot;};&lt;br /&gt;
      String[] werte = {&amp;quot;5&amp;quot;,&amp;quot;6&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;8&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;Bube&amp;quot;,&amp;quot;Dame&amp;quot;,&amp;quot;König&amp;quot;,&amp;quot;Ass&amp;quot;};&lt;br /&gt;
      farbe = farben[(int)(Math.random()*farben.length())]; &lt;br /&gt;
      wert= werte[(int)(Math.random()*wert.length())]; &lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   public boolean istGleich(String pFarbe, String pWert){&lt;br /&gt;
      return farbe.equals(pFarbe) &amp;amp;&amp;amp; wert.equals(pWert);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Java können die Karten in einem Array verwaltet werden: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Kartenhaufen{&lt;br /&gt;
  private Karte[] haufen; &lt;br /&gt;
  public Kartenhaufen(){&lt;br /&gt;
    haufen = new Karte[32];&lt;br /&gt;
    for (int i= 0; i&amp;lt;haufen.length;i++){&lt;br /&gt;
      haufen[i] = new Karte(); // Erzeugt eine zufällige Karte&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   &lt;br /&gt;
      Karte k = haufen[i];                          &lt;br /&gt;
      if(k.istGleich(farbe,wert)){        &lt;br /&gt;
         return k;                                    &lt;br /&gt;
      }                                    &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterungen:&lt;br /&gt;
{{Collapse:Start }}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   //Der ganze Array soll durchlaufen werden.&lt;br /&gt;
      Karte k = haufen[i];                 //Die aktuelle Karte wird aus dem Array &lt;br /&gt;
                                           //geholt und eine Referenz k auf das Element wird erstellt.&lt;br /&gt;
      if(k.getFarbe().equals(farbe) &amp;amp;&amp;amp;     //Die Daten der aktuellen Karte k &lt;br /&gt;
         k.getWert().equals(wert)){        //werden mit der Farbe und dem Wert verglichen&lt;br /&gt;
         return k;                         //Falls die Werte übereinstimmen, &lt;br /&gt;
                                           //wird eine Referenz auf die aktuelle Karte k zurückgegeben.&lt;br /&gt;
      }                                    //Die Methode wird dann sofort beendet.&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Z.B. die Telefonnummer in einem Telefonbuch. Das Telefonbuch ist nur deshalb praktikabel, weil es die Namen der Personen geordnet angibt. In einem geordneten Array kann man also schneller suchen, als in&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4538</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4538"/>
		<updated>2019-01-09T08:51:55Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Suche in einem unsortieren Array */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der [[Lernpfad:Rekursion in Java/Definition | Definition]] implementiert werden.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Hast du die drei Bestandteile noch vor Augen?&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
[[Datei:05 Kaestchen.png | right]]&lt;br /&gt;
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;br /&gt;
Ein häufiges Problem ist die Suche nach einem speziellen Element. &lt;br /&gt;
&lt;br /&gt;
=== Suche in einem unsortieren Array===&lt;br /&gt;
Das einfachste Beispiel ist die Suche der Position einer Zahl in einem Array. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Zahlenarray{&lt;br /&gt;
   int[] zahlen; &lt;br /&gt;
   public Zahlenarray(){&lt;br /&gt;
      zahlen = int[10]; &lt;br /&gt;
      for(int i = 0; i&amp;lt;zahlen.length;i++){&lt;br /&gt;
         zahlen[i] = (int)(Math.random()*10);&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
&amp;lt;zuordnung&amp;gt;&lt;br /&gt;
Eine kleine Beschreibung&lt;br /&gt;
1::EinSatz&lt;br /&gt;
2::wort&lt;br /&gt;
3::Text::Lücke&lt;br /&gt;
&amp;lt;/zuordnung&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;zuordnung&amp;gt;&lt;br /&gt;
Fügen Sie die Methode ***public int gibPosition(int z)***, die die Position einer Zahl im Array zurückgibt. Falls die Zahl nicht vorhanden ist, soll -1 als Position zurückgegeben werden.&lt;br /&gt;
1::public_int_gibPosition(int_z){&lt;br /&gt;
2::int pos = -1; &lt;br /&gt;
3::for(int i=0; i &amp;lt; zahlen.length; i++){&lt;br /&gt;
4::if(zahlen[i]==z){&lt;br /&gt;
5::pos = i;&lt;br /&gt;
6::}&lt;br /&gt;
7::}&lt;br /&gt;
8:: return pos;&lt;br /&gt;
9::}&lt;br /&gt;
&amp;lt;/zuordnung&amp;gt;&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
=== Suche in einem unsortierten Kartenhaufen ===&lt;br /&gt;
Sucht man in einem heruntergefallenen Kartenstapel nach einer speziellen Karte, so muss man sich alle Karten ansehen, da sie in keiner speziellen Ordnung herunterfallen, sondern völlig durcheinander sind.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Karte{&lt;br /&gt;
   private String farbe; &lt;br /&gt;
   private String wert; &lt;br /&gt;
 &lt;br /&gt;
   public Karte(){&lt;br /&gt;
      String[] farben = {&amp;quot;Kreuz&amp;quot;, &amp;quot;Pik&amp;quot;, &amp;quot;Herz&amp;quot;, &amp;quot;Karo&amp;quot;};&lt;br /&gt;
      String[] werte = {&amp;quot;5&amp;quot;,&amp;quot;6&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;8&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;Bube&amp;quot;,&amp;quot;Dame&amp;quot;,&amp;quot;König&amp;quot;,&amp;quot;Ass&amp;quot;};&lt;br /&gt;
      farbe = farben[(int)(Math.random()*farben.length())]; &lt;br /&gt;
      wert= werte[(int)(Math.random()*wert.length())]; &lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   public boolean istGleich(String pFarbe, String pWert){&lt;br /&gt;
      return farbe.equals(pFarbe) &amp;amp;&amp;amp; wert.equals(pWert);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Java können die Karten in einem Array verwaltet werden: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Kartenhaufen{&lt;br /&gt;
  private Karte[] haufen; &lt;br /&gt;
  public Kartenhaufen(){&lt;br /&gt;
    haufen = new Karte[32];&lt;br /&gt;
    for (int i= 0; i&amp;lt;haufen.length;i++){&lt;br /&gt;
      haufen[i] = new Karte(); // Erzeugt eine zufällige Karte&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   &lt;br /&gt;
      Karte k = haufen[i];                          &lt;br /&gt;
      if(k.istGleich(farbe,wert)){        &lt;br /&gt;
         return k;                                    &lt;br /&gt;
      }                                    &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterungen:&lt;br /&gt;
{{Collapse:Start }}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   //Der ganze Array soll durchlaufen werden.&lt;br /&gt;
      Karte k = haufen[i];                 //Die aktuelle Karte wird aus dem Array &lt;br /&gt;
                                           //geholt und eine Referenz k auf das Element wird erstellt.&lt;br /&gt;
      if(k.getFarbe().equals(farbe) &amp;amp;&amp;amp;     //Die Daten der aktuellen Karte k &lt;br /&gt;
         k.getWert().equals(wert)){        //werden mit der Farbe und dem Wert verglichen&lt;br /&gt;
         return k;                         //Falls die Werte übereinstimmen, &lt;br /&gt;
                                           //wird eine Referenz auf die aktuelle Karte k zurückgegeben.&lt;br /&gt;
      }                                    //Die Methode wird dann sofort beendet.&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Z.B. die Telefonnummer in einem Telefonbuch. Das Telefonbuch ist nur deshalb praktikabel, weil es die Namen der Personen geordnet angibt. In einem geordneten Array kann man also schneller suchen, als in&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4537</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4537"/>
		<updated>2019-01-09T08:48:50Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Suche in einem Array */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der [[Lernpfad:Rekursion in Java/Definition | Definition]] implementiert werden.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Hast du die drei Bestandteile noch vor Augen?&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
[[Datei:05 Kaestchen.png | right]]&lt;br /&gt;
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;br /&gt;
Ein häufiges Problem ist die Suche nach einem speziellen Element. &lt;br /&gt;
&lt;br /&gt;
=== Suche in einem unsortieren Array===&lt;br /&gt;
Das einfachste Beispiel ist die Suche der Position einer Zahl in einem Array. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Zahlenarray{&lt;br /&gt;
   int[] zahlen; &lt;br /&gt;
   public Zahlenarray(){&lt;br /&gt;
      zahlen = int[10]; &lt;br /&gt;
      for(int i = 0; i&amp;lt;zahlen.length;i++){&lt;br /&gt;
         zahlen[i] = (int)(Math.random()*10);&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
&amp;lt;zuordnung&amp;gt;&lt;br /&gt;
Fügen Sie die Methode ***public int gibPosition(int z)***, die die Position einer Zahl im Array zurückgibt. Falls die Zahl nicht vorhanden ist, soll -1 als Position zurückgegeben werden.&lt;br /&gt;
1:: public int gibPosition(int z){&lt;br /&gt;
2:: int pos = -1; &lt;br /&gt;
3:: for(int i=0; i &amp;lt; zahlen.length; i++){&lt;br /&gt;
4:: if(zahlen[i]==z){&lt;br /&gt;
5:: pos = i;&lt;br /&gt;
6::}&lt;br /&gt;
7::}&lt;br /&gt;
8:: return pos;&lt;br /&gt;
9::}&lt;br /&gt;
&amp;lt;/zuordnung&amp;gt;&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
=== Suche in einem unsortierten Kartenhaufen ===&lt;br /&gt;
Sucht man in einem heruntergefallenen Kartenstapel nach einer speziellen Karte, so muss man sich alle Karten ansehen, da sie in keiner speziellen Ordnung herunterfallen, sondern völlig durcheinander sind.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Karte{&lt;br /&gt;
   private String farbe; &lt;br /&gt;
   private String wert; &lt;br /&gt;
 &lt;br /&gt;
   public Karte(){&lt;br /&gt;
      String[] farben = {&amp;quot;Kreuz&amp;quot;, &amp;quot;Pik&amp;quot;, &amp;quot;Herz&amp;quot;, &amp;quot;Karo&amp;quot;};&lt;br /&gt;
      String[] werte = {&amp;quot;5&amp;quot;,&amp;quot;6&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;8&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;Bube&amp;quot;,&amp;quot;Dame&amp;quot;,&amp;quot;König&amp;quot;,&amp;quot;Ass&amp;quot;};&lt;br /&gt;
      farbe = farben[(int)(Math.random()*farben.length())]; &lt;br /&gt;
      wert= werte[(int)(Math.random()*wert.length())]; &lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   public boolean istGleich(String pFarbe, String pWert){&lt;br /&gt;
      return farbe.equals(pFarbe) &amp;amp;&amp;amp; wert.equals(pWert);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Java können die Karten in einem Array verwaltet werden: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Kartenhaufen{&lt;br /&gt;
  private Karte[] haufen; &lt;br /&gt;
  public Kartenhaufen(){&lt;br /&gt;
    haufen = new Karte[32];&lt;br /&gt;
    for (int i= 0; i&amp;lt;haufen.length;i++){&lt;br /&gt;
      haufen[i] = new Karte(); // Erzeugt eine zufällige Karte&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   &lt;br /&gt;
      Karte k = haufen[i];                          &lt;br /&gt;
      if(k.istGleich(farbe,wert)){        &lt;br /&gt;
         return k;                                    &lt;br /&gt;
      }                                    &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterungen:&lt;br /&gt;
{{Collapse:Start }}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   //Der ganze Array soll durchlaufen werden.&lt;br /&gt;
      Karte k = haufen[i];                 //Die aktuelle Karte wird aus dem Array &lt;br /&gt;
                                           //geholt und eine Referenz k auf das Element wird erstellt.&lt;br /&gt;
      if(k.getFarbe().equals(farbe) &amp;amp;&amp;amp;     //Die Daten der aktuellen Karte k &lt;br /&gt;
         k.getWert().equals(wert)){        //werden mit der Farbe und dem Wert verglichen&lt;br /&gt;
         return k;                         //Falls die Werte übereinstimmen, &lt;br /&gt;
                                           //wird eine Referenz auf die aktuelle Karte k zurückgegeben.&lt;br /&gt;
      }                                    //Die Methode wird dann sofort beendet.&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Z.B. die Telefonnummer in einem Telefonbuch. Das Telefonbuch ist nur deshalb praktikabel, weil es die Namen der Personen geordnet angibt. In einem geordneten Array kann man also schneller suchen, als in&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4536</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4536"/>
		<updated>2019-01-09T08:16:00Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Suche in einem unsortierten Haufen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der [[Lernpfad:Rekursion in Java/Definition | Definition]] implementiert werden.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Hast du die drei Bestandteile noch vor Augen?&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
[[Datei:05 Kaestchen.png | right]]&lt;br /&gt;
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;br /&gt;
Ein häufiges Problem ist die Suche nach einem speziellen Element. &lt;br /&gt;
=== Suche in einem unsortierten Kartenhaufen ===&lt;br /&gt;
Sucht man in einem heruntergefallenen Kartenstapel nach einer speziellen Karte, so muss man sich alle Karten ansehen, da sie in keiner speziellen Ordnung herunterfallen, sondern völlig durcheinander sind.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Karte{&lt;br /&gt;
   private String farbe; &lt;br /&gt;
   private String wert; &lt;br /&gt;
 &lt;br /&gt;
   public Karte(){&lt;br /&gt;
      String[] farben = {&amp;quot;Kreuz&amp;quot;, &amp;quot;Pik&amp;quot;, &amp;quot;Herz&amp;quot;, &amp;quot;Karo&amp;quot;};&lt;br /&gt;
      String[] werte = {&amp;quot;5&amp;quot;,&amp;quot;6&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;8&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;Bube&amp;quot;,&amp;quot;Dame&amp;quot;,&amp;quot;König&amp;quot;,&amp;quot;Ass&amp;quot;};&lt;br /&gt;
      farbe = farben[(int)(Math.random()*farben.length())]; &lt;br /&gt;
      wert= werte[(int)(Math.random()*wert.length())]; &lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   public boolean istGleich(String pFarbe, String pWert){&lt;br /&gt;
      return farbe.equals(pFarbe) &amp;amp;&amp;amp; wert.equals(pWert);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Java können die Karten in einem Array verwaltet werden: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Kartenhaufen{&lt;br /&gt;
  private Karte[] haufen; &lt;br /&gt;
  public Kartenhaufen(){&lt;br /&gt;
    haufen = new Karte[32];&lt;br /&gt;
    for (int i= 0; i&amp;lt;haufen.length;i++){&lt;br /&gt;
      haufen[i] = new Karte(); // Erzeugt eine zufällige Karte&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   &lt;br /&gt;
      Karte k = haufen[i];                          &lt;br /&gt;
      if(k.istGleich(farbe,wert)){        &lt;br /&gt;
         return k;                                    &lt;br /&gt;
      }                                    &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterungen:&lt;br /&gt;
{{Collapse:Start }}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   //Der ganze Array soll durchlaufen werden.&lt;br /&gt;
      Karte k = haufen[i];                 //Die aktuelle Karte wird aus dem Array &lt;br /&gt;
                                           //geholt und eine Referenz k auf das Element wird erstellt.&lt;br /&gt;
      if(k.getFarbe().equals(farbe) &amp;amp;&amp;amp;     //Die Daten der aktuellen Karte k &lt;br /&gt;
         k.getWert().equals(wert)){        //werden mit der Farbe und dem Wert verglichen&lt;br /&gt;
         return k;                         //Falls die Werte übereinstimmen, &lt;br /&gt;
                                           //wird eine Referenz auf die aktuelle Karte k zurückgegeben.&lt;br /&gt;
      }                                    //Die Methode wird dann sofort beendet.&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Z.B. die Telefonnummer in einem Telefonbuch. Das Telefonbuch ist nur deshalb praktikabel, weil es die Namen der Personen geordnet angibt. In einem geordneten Array kann man also schneller suchen, als in&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4535</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4535"/>
		<updated>2019-01-09T08:07:47Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Suche in einem unsortierten Haufen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der [[Lernpfad:Rekursion in Java/Definition | Definition]] implementiert werden.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Hast du die drei Bestandteile noch vor Augen?&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
[[Datei:05 Kaestchen.png | right]]&lt;br /&gt;
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;br /&gt;
Ein häufiges Problem ist die Suche nach einem speziellen Element. &lt;br /&gt;
=== Suche in einem unsortierten Haufen ===&lt;br /&gt;
Sucht man in einem heruntergefallenen Kartenstapel nach einer speziellen Karte, so muss man sich alle Karten ansehen, da sie in keiner speziellen Ordnung herunterfallen, sondern völlig durcheinander sind.&lt;br /&gt;
&lt;br /&gt;
In Java können die Karten in einem Array verwaltet werden: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Kartenhaufen{&lt;br /&gt;
  Karte[] haufen; &lt;br /&gt;
  public Kartenhaufen(){&lt;br /&gt;
    haufen = new Karte[32];&lt;br /&gt;
    for (int i= 0; i&amp;lt;haufen.length;i++){&lt;br /&gt;
      haufen[i] = new Karte(); // Erzeugt eine zufällige Karte&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   &lt;br /&gt;
      Karte k = haufen[i];                          &lt;br /&gt;
      if(k.getFarbe().equals(farbe) &amp;amp;&amp;amp;     &lt;br /&gt;
         k.getWert().equals(wert)){        &lt;br /&gt;
         return k;                         &lt;br /&gt;
                                           &lt;br /&gt;
      }                                    &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterungen:&lt;br /&gt;
{{Collapse:Start }}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   //Der ganze Array soll durchlaufen werden.&lt;br /&gt;
      Karte k = haufen[i];                 //Die aktuelle Karte wird aus dem Array &lt;br /&gt;
                                           //geholt und eine Referenz k auf das Element wird erstellt.&lt;br /&gt;
      if(k.getFarbe().equals(farbe) &amp;amp;&amp;amp;     //Die Daten der aktuellen Karte k &lt;br /&gt;
         k.getWert().equals(wert)){        //werden mit der Farbe und dem Wert verglichen&lt;br /&gt;
         return k;                         //Falls die Werte übereinstimmen, &lt;br /&gt;
                                           //wird eine Referenz auf die aktuelle Karte k zurückgegeben.&lt;br /&gt;
      }                                    //Die Methode wird dann sofort beendet.&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Z.B. die Telefonnummer in einem Telefonbuch. Das Telefonbuch ist nur deshalb praktikabel, weil es die Namen der Personen geordnet angibt. In einem geordneten Array kann man also schneller suchen, als in&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4534</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4534"/>
		<updated>2019-01-09T07:54:16Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Suche in einem unsortierten Haufen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der [[Lernpfad:Rekursion in Java/Definition | Definition]] implementiert werden.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Hast du die drei Bestandteile noch vor Augen?&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
[[Datei:05 Kaestchen.png | right]]&lt;br /&gt;
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;br /&gt;
Ein häufiges Problem ist die Suche nach einem speziellen Element. &lt;br /&gt;
=== Suche in einem unsortierten Haufen ===&lt;br /&gt;
Sucht man in einem heruntergefallenen Kartenstapel nach einer speziellen Karte, so muss man sich alle Karten ansehen, da sie in keiner speziellen Ordnung herunterfallen, sondern völlig durcheinander sind.&lt;br /&gt;
&lt;br /&gt;
In Java können die Karten in einem Array verwaltet werden: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Kartenhaufen{&lt;br /&gt;
  Karte[] haufen; &lt;br /&gt;
  public Kartenhaufen(){&lt;br /&gt;
    haufen = new Karte[32];&lt;br /&gt;
    for (int i= 0; i&amp;lt;haufen.length;i++){&lt;br /&gt;
      haufen[i] = new Karte(); // Erzeugt eine zufällige Karte&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public Karte sucheKarte(String farbe, String wert){&lt;br /&gt;
    for (int i=0; i&amp;lt; haufen.length;i++){   //Der ganze Array soll durchlaufen werden.&lt;br /&gt;
      Karte k = haufen[i];                 //Die aktuelle Karte wird aus dem Array geholt und eine Referenz k auf das Element wird erstellt.&lt;br /&gt;
      if(k.getFarbe().equals(farbe) &amp;amp;&amp;amp;     //Die Daten der aktuellen Karte k werden mit der Farbe und dem Wert verglichen&lt;br /&gt;
         k.getWert().equals(wert)){&lt;br /&gt;
         return k;                         //Falls die Werte übereinstimmen, wird eine Referenz auf die Karte zurückgegeben.&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Z.B. die Telefonnummer in einem Telefonbuch. Das Telefonbuch ist nur deshalb praktikabel, weil es die Namen der Personen geordnet angibt. In einem geordneten Array kann man also schneller suchen, als in&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4533</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4533"/>
		<updated>2019-01-09T07:30:19Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Suche in einem Array */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der [[Lernpfad:Rekursion in Java/Definition | Definition]] implementiert werden.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Hast du die drei Bestandteile noch vor Augen?&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
[[Datei:05 Kaestchen.png | right]]&lt;br /&gt;
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;br /&gt;
Ein häufiges Problem ist die Suche nach einem speziellen Element. &lt;br /&gt;
=== Suche in einem unsortierten Haufen ===&lt;br /&gt;
Sucht man in einem heruntergefallenen Kartenstapel nach einer speziellen Karte, so muss man sich alle Karten ansehen, da sie in keiner speziellen Ordnung herunterfallen, sondern völlig durcheinander sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Z.B. die Telefonnummer in einem Telefonbuch. Das Telefonbuch ist nur deshalb praktikabel, weil es die Namen der Personen geordnet angibt. In einem geordneten Array kann man also schneller suchen, als in&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4532</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4532"/>
		<updated>2019-01-09T07:26:41Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der [[Lernpfad:Rekursion in Java/Definition | Definition]] implementiert werden.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Hast du die drei Bestandteile noch vor Augen?&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
[[Datei:05 Kaestchen.png | right]]&lt;br /&gt;
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4531</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4531"/>
		<updated>2019-01-09T07:20:44Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der implementiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
[[Datei:05 Kaestchen.png | right]]&lt;br /&gt;
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4530</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4530"/>
		<updated>2019-01-08T22:47:24Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
[[Datei:05 Kaestchen.png | right]]&lt;br /&gt;
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Datei:05_Kaestchen.png&amp;diff=4529</id>
		<title>Datei:05 Kaestchen.png</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Datei:05_Kaestchen.png&amp;diff=4529"/>
		<updated>2019-01-08T22:45:02Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lizenz ==&lt;br /&gt;
{{CC-by-sa/3.0/de}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4528</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4528"/>
		<updated>2019-01-08T22:43:49Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4527</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4527"/>
		<updated>2019-01-08T22:43:02Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Kästchen auf einem Gitter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Bestimme die Anzahl der Kästchen in einem&lt;br /&gt;
# 2x2-Gitter.&lt;br /&gt;
# 3x3-Gitter.&lt;br /&gt;
# 4x4-Gitter.&lt;br /&gt;
Lösung für 2x2 und 3x3:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen . &lt;br /&gt;
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen. &lt;br /&gt;
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
Lösung für 4x4:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und. &lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.&lt;br /&gt;
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.&lt;br /&gt;
&lt;br /&gt;
Rekursive Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_rek(int n){&lt;br /&gt;
  if(n &amp;gt; 1){&lt;br /&gt;
    return n*n+k_rek(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
Iterative Lösung&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k_it(n){&lt;br /&gt;
  int sum = 0;&lt;br /&gt;
  for(int i = 1; i&amp;lt;n+1 ;i++){&lt;br /&gt;
    sum = sum + i*i; &lt;br /&gt;
  }&lt;br /&gt;
  return sum; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
&lt;br /&gt;
== Suche in einem Array ==&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4526</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4526"/>
		<updated>2019-01-08T21:43:50Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Kästchen auf einem Gitter ==&lt;br /&gt;
&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public int k(int n){&lt;br /&gt;
   if(n &amp;gt; 1){&lt;br /&gt;
      return 4*k(n-1)+1;&lt;br /&gt;
   }else{&lt;br /&gt;
      return 1;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
== Suche in einem Array ==&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4525</id>
		<title>Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Selbst_eine_rekursive_Methode_schreiben&amp;diff=4525"/>
		<updated>2019-01-08T21:12:40Z</updated>

		<summary type="html">&lt;p&gt;Thi: Die Seite wurde neu angelegt: „   Suche in einem Array“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suche in einem Array&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4524</id>
		<title>Lernpfad:Rekursion in Java/Rekursion bei Schachproblemen</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4524"/>
		<updated>2019-01-08T21:11:25Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Kontext des Schachspiels gibt es zwei sehr bekannte Problemstellungen. &lt;br /&gt;
An dieser Stelle sollen einfach nur ein paar Links für interessierte hinzugefügt werden:&lt;br /&gt;
== Dameproblem ==&lt;br /&gt;
&lt;br /&gt;
https://de.wikipedia.org/wiki/Damenproblem&lt;br /&gt;
Man versucht 8 Damen auf dem Schachbrett zu positionieren. Dabei müssen die Damen so aufgestellt werden,&lt;br /&gt;
dass sich keine Damen gegenseitig schlagen.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Versuche auf einem 5x5 Feld 5 Damen aufzustellen. &lt;br /&gt;
&lt;br /&gt;
Lösung:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;p5js height=&amp;quot;201&amp;quot;&amp;gt;https://editor.p5js.org/HerrThiessen/embed/HJJo3XGfE&amp;lt;/p5js&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein rekursiver Algorithmus könnte wie folgt aussehen: &lt;br /&gt;
&amp;lt;syntaxhighlight &amp;gt;&lt;br /&gt;
dame(t) &lt;br /&gt;
  Falls t &amp;lt; 8 ist DANN &lt;br /&gt;
  	Wiederhole für alle Positionen (starte bei 0)&lt;br /&gt;
    aktuelle Reihe gleich nächste Position&lt;br /&gt;
    Falls die aktuelle Reihe noch frei ist DANN&lt;br /&gt;
    	setze die Dame auf die freie Reihe&lt;br /&gt;
      Falls die Dame mit keiner anderen kollidiert DANN &lt;br /&gt;
      	dame(t+1)&lt;br /&gt;
      Entferne die aktuelle Dame aus der Reihe&lt;br /&gt;
  SONST&lt;br /&gt;
    speicher die Lösung &lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p5js &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p5js&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Springerproblem ==&lt;br /&gt;
## https://de.wikipedia.org/wiki/Springerproblem&lt;br /&gt;
## http://www.axel-conrad.de/springer/springer.html&lt;br /&gt;
## https://docplayer.org/41857208-Backtracking-mit-heuristiken.html&lt;br /&gt;
&lt;br /&gt;
# https://www.mathe-online.at/materialien/matroid/files/schach/schachbrett.html&lt;br /&gt;
&lt;br /&gt;
#Labyrinth http://www.erasmus-reinhold-gymnasium.de/info/rekursion-iteration/Backtracking_final.pdf&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4523</id>
		<title>Lernpfad:Rekursion in Java/Rekursion bei Schachproblemen</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4523"/>
		<updated>2019-01-08T21:04:01Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Kontext des Schachspiels gibt es zwei sehr bekannte Problemstellungen. &lt;br /&gt;
An dieser Stelle sollen einfach nur ein paar Links für interessierte hinzugefügt werden:&lt;br /&gt;
# Dameproblem &lt;br /&gt;
Man versucht 8 Damen auf dem Schachbrett zu positionieren. Dabei müssen die Damen so aufgestellt werden,&lt;br /&gt;
dass sich keine Damen gegenseitig schlagen.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Versuche auf einem 5x5 Feld 5 Damen aufzustellen. &lt;br /&gt;
&lt;br /&gt;
Lösung:&lt;br /&gt;
{{Collapse:Start}}&lt;br /&gt;
&amp;lt;p5js height=&amp;quot;201&amp;quot;&amp;gt;https://editor.p5js.org/HerrThiessen/embed/HJJo3XGfE&amp;lt;/p5js&amp;gt;&lt;br /&gt;
{{Collapse:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein rekursiver Algorithmus könnte wie folgt aussehen: &lt;br /&gt;
&amp;lt;syntaxhighlight &amp;gt;&lt;br /&gt;
dame(t) &lt;br /&gt;
  Falls t &amp;lt; 8 ist DANN &lt;br /&gt;
  	Wiederhole für alle Positionen (starte bei 0)&lt;br /&gt;
    aktuelle Reihe gleich nächste Position&lt;br /&gt;
    Falls die aktuelle Reihe noch frei ist DANN&lt;br /&gt;
    	setze die Dame auf die freie Reihe&lt;br /&gt;
      Falls die Dame mit keiner anderen kollidiert DANN &lt;br /&gt;
      	dame(t+1)&lt;br /&gt;
      Entferne die aktuelle Dame aus der Reihe&lt;br /&gt;
  SONST&lt;br /&gt;
    speicher die Lösung &lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p5js &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p5js&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Springerproblem &lt;br /&gt;
## https://de.wikipedia.org/wiki/Springerproblem&lt;br /&gt;
## http://www.axel-conrad.de/springer/springer.html&lt;br /&gt;
## https://docplayer.org/41857208-Backtracking-mit-heuristiken.html&lt;br /&gt;
&lt;br /&gt;
# https://www.mathe-online.at/materialien/matroid/files/schach/schachbrett.html&lt;br /&gt;
&lt;br /&gt;
#Labyrinth http://www.erasmus-reinhold-gymnasium.de/info/rekursion-iteration/Backtracking_final.pdf&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4522</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Farbe in p5js (Regenbogen)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4522"/>
		<updated>2019-01-08T20:54:42Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jeder Pixel auf dem Display oder Zeichenfeld hat eine Farbe. Wenn man ganz nah an einen Monitor heran geht, kann man evtl. einzelne Pixel erkennen. Sie bestehen aus drei kleinen Pixeln, die die Farben rot, grün und blau haben.&lt;br /&gt;
Das folgende Feld zeigt an, welche Farben durch die verschiedenen Farben entstehen können. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p5js height=&amp;quot;300&amp;quot;&amp;gt;https://editor.p5js.org/HerrThiessen/embed/H1DXipu-E&amp;lt;/p5js&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In p5js gibt es zwei Möglichkeiten die Zeichenfarbe festzulegen: &lt;br /&gt;
# fill(r,g,b) legt die Farbe der Füllung einer Form fest&lt;br /&gt;
# stroke(r,g,b) legt die Farbe der Kontur einer Form fest&lt;br /&gt;
&lt;br /&gt;
Der folgende Quelltext zeichnet zwei Kreise am unteren Rand des Zeichenfeldes.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	ellipse(width/2, height, 100);&lt;br /&gt;
	fill(255,0,0);&lt;br /&gt;
	ellipse(width/2, height,50);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Ergänze die zwei Kreise zu einem Regenbogen. Beachte dabei, dass die kleineren Kreise am Ende gezeichnet werden sollten.&lt;br /&gt;
{{Aufgabe:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4521</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Farbe in p5js (Regenbogen)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4521"/>
		<updated>2019-01-08T20:54:27Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jeder Pixel auf dem Display oder Zeichenfeld hat eine Farbe. Wenn man ganz nah an einen Monitor heran geht, kann man evtl. einzelne Pixel erkennen. Sie bestehen aus drei kleinen Pixeln, die die Farben rot, grün und blau haben.&lt;br /&gt;
Das folgende Feld zeigt an, welche Farben durch die verschiedenen Farben entstehen können. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p5js height=&amp;quot;201&amp;quot;&amp;gt;https://editor.p5js.org/HerrThiessen/embed/H1DXipu-E&amp;lt;/p5js&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In p5js gibt es zwei Möglichkeiten die Zeichenfarbe festzulegen: &lt;br /&gt;
# fill(r,g,b) legt die Farbe der Füllung einer Form fest&lt;br /&gt;
# stroke(r,g,b) legt die Farbe der Kontur einer Form fest&lt;br /&gt;
&lt;br /&gt;
Der folgende Quelltext zeichnet zwei Kreise am unteren Rand des Zeichenfeldes.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	ellipse(width/2, height, 100);&lt;br /&gt;
	fill(255,0,0);&lt;br /&gt;
	ellipse(width/2, height,50);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Ergänze die zwei Kreise zu einem Regenbogen. Beachte dabei, dass die kleineren Kreise am Ende gezeichnet werden sollten.&lt;br /&gt;
{{Aufgabe:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4520</id>
		<title>Lernpfad:Rekursion in Java/Rekursion bei Schachproblemen</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4520"/>
		<updated>2019-01-08T20:43:58Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Kontext des Schachspiels gibt es zwei sehr bekannte Problemstellungen. &lt;br /&gt;
An dieser Stelle sollen einfach nur ein paar Links für interessierte hinzugefügt werden:&lt;br /&gt;
# Dameproblem &lt;br /&gt;
Man versucht 8 Damen auf dem Schachbrett zu positionieren. Dabei müssen die Damen so aufgestellt werden,&lt;br /&gt;
dass sich keine Damen gegenseitig schlagen.&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Versuche auf einem 5x5 Feld 5 Damen aufzustellen. &lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
&lt;br /&gt;
Ein rekursiver Algorithmus könnte wie folgt aussehen: &lt;br /&gt;
&amp;lt;syntaxhighlight &amp;gt;&lt;br /&gt;
dame(t, zeilen) &lt;br /&gt;
  Falls t &amp;lt; 8 ist DANN &lt;br /&gt;
  	Wiederhole für alle Positionen (starte bei 0)&lt;br /&gt;
    aktuelle Reihe gleich nächste Position&lt;br /&gt;
    Falls die aktuelle Reihe noch frei ist DANN&lt;br /&gt;
    	setze die Dame auf die freie Reihe&lt;br /&gt;
      Falls die Dame mit keiner anderen kollidiert DANN &lt;br /&gt;
      	dame(t+1, zeilen)&lt;br /&gt;
      Entferne die aktuelle Dame aus der Reihe&lt;br /&gt;
  SONST&lt;br /&gt;
    speicher die Lösung &lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p5js &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p5js&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Springerproblem &lt;br /&gt;
## https://de.wikipedia.org/wiki/Springerproblem&lt;br /&gt;
## http://www.axel-conrad.de/springer/springer.html&lt;br /&gt;
## https://docplayer.org/41857208-Backtracking-mit-heuristiken.html&lt;br /&gt;
&lt;br /&gt;
# https://www.mathe-online.at/materialien/matroid/files/schach/schachbrett.html&lt;br /&gt;
&lt;br /&gt;
#Labyrinth http://www.erasmus-reinhold-gymnasium.de/info/rekursion-iteration/Backtracking_final.pdf&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4484</id>
		<title>Lernpfad:Rekursion in Java/Rekursion bei Schachproblemen</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4484"/>
		<updated>2019-01-08T09:24:32Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Kontext des Schachspiels gibt es zwei sehr bekannte Problemstellungen. &lt;br /&gt;
An dieser Stelle sollen einfach nur ein paar Links für interessierte hinzugefügt werden:&lt;br /&gt;
# Dameproblem &lt;br /&gt;
Man versucht 8 Damen auf dem Schachbrett zu positionieren. Dabei müssen die Damen so aufgestellt werden,&lt;br /&gt;
dass sich keine Damen gegenseitig schlagen.&lt;br /&gt;
&lt;br /&gt;
Ein rekursiver Algorithmus könnte wie folgt aussehen: &lt;br /&gt;
&amp;lt;syntaxhighlight &amp;gt;&lt;br /&gt;
dame(t, zeilen) &lt;br /&gt;
  Falls t &amp;lt; 8 ist&lt;br /&gt;
  DANN&lt;br /&gt;
    pos = erste Leere Zeile&lt;br /&gt;
    wiederhole solange pos &amp;lt; 8 ist&lt;br /&gt;
      setze die Dame auf die Position&lt;br /&gt;
      prüfe ob die Dame mit einer anderen kollidiert&lt;br /&gt;
      Falls ja&lt;br /&gt;
        nächste freie Zeile verwenden&lt;br /&gt;
      Falls nein&lt;br /&gt;
        loesung = dame(t+1, zeilen)&lt;br /&gt;
    Falls !loesung &lt;br /&gt;
    DANN &lt;br /&gt;
      gib false zurueck&lt;br /&gt;
  SONST&lt;br /&gt;
    speicher die Lösung / gib die Lösung aus &lt;br /&gt;
    gib true zurueck&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
# Springerproblem &lt;br /&gt;
## https://de.wikipedia.org/wiki/Springerproblem&lt;br /&gt;
## http://www.axel-conrad.de/springer/springer.html&lt;br /&gt;
## https://docplayer.org/41857208-Backtracking-mit-heuristiken.html&lt;br /&gt;
&lt;br /&gt;
# https://www.mathe-online.at/materialien/matroid/files/schach/schachbrett.html&lt;br /&gt;
&lt;br /&gt;
#Labyrinth http://www.erasmus-reinhold-gymnasium.de/info/rekursion-iteration/Backtracking_final.pdf&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4483</id>
		<title>Lernpfad:Rekursion in Java/Rekursion bei Schachproblemen</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4483"/>
		<updated>2019-01-08T09:22:46Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Kontext des Schachspiels gibt es zwei sehr bekannte Problemstellungen. &lt;br /&gt;
An dieser Stelle sollen einfach nur ein paar Links für interessierte hinzugefügt werden:&lt;br /&gt;
# Dameproblem &lt;br /&gt;
Man versucht 8 Damen auf dem Schachbrett zu positionieren. Dabei müssen die Damen so aufgestellt werden,&lt;br /&gt;
dass sich keine Damen gegenseitig schlagen.&lt;br /&gt;
&lt;br /&gt;
Ein rekursiver Algorithmus könnte wie folgt aussehen: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
dame(t, zeilen, n) &lt;br /&gt;
  Falls t &amp;lt; n ist&lt;br /&gt;
  DANN&lt;br /&gt;
    pos = erste Leere Zeile&lt;br /&gt;
    wiederhole solange pos &amp;lt; n ist&lt;br /&gt;
      setze die Dame auf die Position&lt;br /&gt;
      prüfe ob die Dame mit einer anderen kollidiert&lt;br /&gt;
      Falls ja&lt;br /&gt;
        nächste freie Zeile verwenden&lt;br /&gt;
      Falls nein&lt;br /&gt;
        loesung = dame(t+1)&lt;br /&gt;
    Falls !loesung &lt;br /&gt;
    DANN &lt;br /&gt;
      gib false zurueck&lt;br /&gt;
  SONST&lt;br /&gt;
    speicher die Lösung / gib die Lösung aus &lt;br /&gt;
    gib true zurueck&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
# Springerproblem &lt;br /&gt;
## https://de.wikipedia.org/wiki/Springerproblem&lt;br /&gt;
## http://www.axel-conrad.de/springer/springer.html&lt;br /&gt;
## https://docplayer.org/41857208-Backtracking-mit-heuristiken.html&lt;br /&gt;
&lt;br /&gt;
# https://www.mathe-online.at/materialien/matroid/files/schach/schachbrett.html&lt;br /&gt;
&lt;br /&gt;
#Labyrinth http://www.erasmus-reinhold-gymnasium.de/info/rekursion-iteration/Backtracking_final.pdf&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4480</id>
		<title>Lernpfad:Rekursion in Java/Rekursion bei Schachproblemen</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4480"/>
		<updated>2019-01-08T08:41:07Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Kontext des Schachspiels gibt es zwei sehr bekannte Problemstellungen. &lt;br /&gt;
An dieser Stelle sollen einfach nur ein paar Links für interessierte hinzugefügt werden:&lt;br /&gt;
# Dameproblem &lt;br /&gt;
##&lt;br /&gt;
# Springerproblem &lt;br /&gt;
## https://de.wikipedia.org/wiki/Springerproblem&lt;br /&gt;
## http://www.axel-conrad.de/springer/springer.html&lt;br /&gt;
## https://docplayer.org/41857208-Backtracking-mit-heuristiken.html&lt;br /&gt;
&lt;br /&gt;
# https://www.mathe-online.at/materialien/matroid/files/schach/schachbrett.html&lt;br /&gt;
&lt;br /&gt;
#Labyrinth http://www.erasmus-reinhold-gymnasium.de/info/rekursion-iteration/Backtracking_final.pdf&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4478</id>
		<title>Lernpfad:Rekursion in Java/Rekursion bei Schachproblemen</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Rekursion_bei_Schachproblemen&amp;diff=4478"/>
		<updated>2019-01-08T08:40:34Z</updated>

		<summary type="html">&lt;p&gt;Thi: Die Seite wurde neu angelegt: „Im Kontext des Schachspiels gibt es zwei sehr bekannte Problemstellungen.  An dieser Stelle sollen einfach nur ein paar Links für interessierte hinzugefügt w…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Kontext des Schachspiels gibt es zwei sehr bekannte Problemstellungen. &lt;br /&gt;
An dieser Stelle sollen einfach nur ein paar Links für interessierte hinzugefügt werden:&lt;br /&gt;
# Dameproblem &lt;br /&gt;
##&lt;br /&gt;
# Springerproblem &lt;br /&gt;
## [[https://de.wikipedia.org/wiki/Springerproblem]]&lt;br /&gt;
## [[http://www.axel-conrad.de/springer/springer.html]]&lt;br /&gt;
## [[https://docplayer.org/41857208-Backtracking-mit-heuristiken.html]]&lt;br /&gt;
&lt;br /&gt;
#https://www.mathe-online.at/materialien/matroid/files/schach/schachbrett.html&lt;br /&gt;
&lt;br /&gt;
#Labyrinth [[http://www.erasmus-reinhold-gymnasium.de/info/rekursion-iteration/Backtracking_final.pdf]]&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufstapel&amp;diff=4474</id>
		<title>Lernpfad:Rekursion in Java/Aufrufstapel</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufstapel&amp;diff=4474"/>
		<updated>2019-01-08T08:11:01Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Der Aufrufstapel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation}}&lt;br /&gt;
== Der Aufrufstapel ==&lt;br /&gt;
[[Datei:01_Rekursion_Aufrufstack_Fakultaet.png |right|thumb|frame|center|Aufrufstapel der Methode Fakultät.]]&lt;br /&gt;
Intern werden die Methodenaufrufe einer rekursiven Methode auf einem &#039;&#039;Stapel&#039;&#039; gespeichert. Die Methoden, die ganz oben auf dem Stapel liegen, werden zuerst abgearbeitet. Danach wird das Resultat der Methode verwendet, um die darunterliegenden Methoden zu berechnen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Die Methode z&lt;br /&gt;
! Ergänzen Sie den Aufrufstapel zu dem Methodenaufruf z(5) .&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
public int z(x) {&lt;br /&gt;
  if (x &amp;gt; 1){&lt;br /&gt;
    return a + z(x - 2);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
   | &lt;br /&gt;
   |&lt;br /&gt;
   |z(1)&lt;br /&gt;
   |1&lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | &lt;br /&gt;
   | z(3)&lt;br /&gt;
   | &lt;br /&gt;
   |   &lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | 5+4=9&lt;br /&gt;
   |- &lt;br /&gt;
 |}&lt;br /&gt;
|}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
{{Lösung:Start}}&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
   | &lt;br /&gt;
   |&lt;br /&gt;
   |z(1)&lt;br /&gt;
   |1&lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | &lt;br /&gt;
   | z(3)&lt;br /&gt;
   | z(3)&lt;br /&gt;
   | 3+1=4  &lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | 5+4=9&lt;br /&gt;
   |- &lt;br /&gt;
 |}&lt;br /&gt;
{{Lösung:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufstapel&amp;diff=4473</id>
		<title>Lernpfad:Rekursion in Java/Aufrufstapel</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufstapel&amp;diff=4473"/>
		<updated>2019-01-08T08:10:38Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Der Aufrufstapel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navigation}}&lt;br /&gt;
== Der Aufrufstapel ==&lt;br /&gt;
[[Datei:01_Rekursion_Aufrufstack_Fakultaet.png |right|400px|frame|center|Aufrufstapel der Methode Fakultät.]]&lt;br /&gt;
Intern werden die Methodenaufrufe einer rekursiven Methode auf einem &#039;&#039;Stapel&#039;&#039; gespeichert. Die Methoden, die ganz oben auf dem Stapel liegen, werden zuerst abgearbeitet. Danach wird das Resultat der Methode verwendet, um die darunterliegenden Methoden zu berechnen.&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Die Methode z&lt;br /&gt;
! Ergänzen Sie den Aufrufstapel zu dem Methodenaufruf z(5) .&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
public int z(x) {&lt;br /&gt;
  if (x &amp;gt; 1){&lt;br /&gt;
    return a + z(x - 2);&lt;br /&gt;
  }else{&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
   | &lt;br /&gt;
   |&lt;br /&gt;
   |z(1)&lt;br /&gt;
   |1&lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | &lt;br /&gt;
   | z(3)&lt;br /&gt;
   | &lt;br /&gt;
   |   &lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | 5+4=9&lt;br /&gt;
   |- &lt;br /&gt;
 |}&lt;br /&gt;
|}&lt;br /&gt;
{{Aufgabe:End}}&lt;br /&gt;
{{Lösung:Start}}&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
   | &lt;br /&gt;
   |&lt;br /&gt;
   |z(1)&lt;br /&gt;
   |1&lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | &lt;br /&gt;
   | z(3)&lt;br /&gt;
   | z(3)&lt;br /&gt;
   | 3+1=4  &lt;br /&gt;
   | &lt;br /&gt;
   |-&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | z(5)&lt;br /&gt;
   | 5+4=9&lt;br /&gt;
   |- &lt;br /&gt;
 |}&lt;br /&gt;
{{Lösung:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4374</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Farbe in p5js (Regenbogen)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4374"/>
		<updated>2019-01-03T19:38:12Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jeder Pixel auf dem Display oder Zeichenfeld hat eine Farbe. Wenn man ganz nah an einen Monitor heran geht, kann man evtl. einzelne Pixel erkennen. Sie bestehen aus drei kleinen Pixeln, die die Farben rot, grün und blau haben.&lt;br /&gt;
Das folgende Feld zeigt an, welche Farben durch die verschiedenen Farben entstehen können. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p5js height=&amp;quot;300&amp;quot;&amp;gt;https://editor.p5js.org/HerrThiessen/embed/H1DXipu-E&amp;lt;/p5js&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In p5js gibt es zwei Möglichkeiten die Zeichenfarbe festzulegen: &lt;br /&gt;
# fill(r,g,b) legt die Farbe der Füllung einer Form fest&lt;br /&gt;
# stroke(r,g,b) legt die Farbe der Kontur einer Form fest&lt;br /&gt;
&lt;br /&gt;
Der folgende Quelltext zeichnet zwei Kreise am unteren Rand des Zeichenfeldes.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	ellipse(width/2, height, 100);&lt;br /&gt;
	fill(255,0,0);&lt;br /&gt;
	ellipse(width/2, height,50);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Ergänze die zwei Kreise zu einem Regenbogen. Beachte dabei, dass die kleineren Kreise am Ende gezeichnet werden sollten.&lt;br /&gt;
{{Aufgabe:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4373</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Farbe in p5js (Regenbogen)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4373"/>
		<updated>2019-01-03T19:36:36Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jeder Pixel auf dem Display oder Zeichenfeld hat eine Farbe. Wenn man ganz nah an einen Monitor heran geht, kann man evtl. einzelne Pixel erkennen. Sie bestehen aus drei kleinen Pixeln, die die Farben rot, grün und blau haben.&lt;br /&gt;
Das folgende Feld zeigt an, welche Farben durch die verschiedenen Farben entstehen können. &lt;br /&gt;
&amp;lt;p5js&amp;gt;https://editor.p5js.org/HerrThiessen/embed/H1DXipu-E&amp;lt;/p5js&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In p5js gibt es zwei Möglichkeiten die Zeichenfarbe festzulegen: &lt;br /&gt;
# fill(r,g,b) legt die Farbe der Füllung einer Form fest&lt;br /&gt;
# stroke(r,g,b) legt die Farbe der Kontur einer Form fest&lt;br /&gt;
&lt;br /&gt;
Der folgende Quelltext zeichnet zwei Kreise am unteren Rand des Zeichenfeldes.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	ellipse(width/2, height, 100);&lt;br /&gt;
	fill(255,0,0);&lt;br /&gt;
	ellipse(width/2, height,50);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Ergänze die zwei Kreise zu einem Regenbogen. Beachte dabei, dass die kleineren Kreise am Ende gezeichnet werden sollten.&lt;br /&gt;
{{Aufgabe:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4372</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Farbe in p5js (Regenbogen)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4372"/>
		<updated>2019-01-03T19:23:33Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jeder Pixel auf dem Display oder Zeichenfeld hat eine Farbe. Wenn man ganz nah an einen Monitor heran geht, kann man evtl. einzelne Pixel erkennen. Sie bestehen aus drei kleinen Pixeln, die die Farben rot, grün und blau haben.&lt;br /&gt;
{|&lt;br /&gt;
| In dem rechten Feld kannst du dir ansehen, welche Farben durch die verschiedenen Farben entstehen können. &lt;br /&gt;
|| &amp;lt;p5js&amp;gt;https://editor.p5js.org/HerrThiessen/embed/H1DXipu-E&amp;lt;/p5js&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In p5js gibt es zwei Möglichkeiten die Zeichenfarbe festzulegen: &lt;br /&gt;
# fill(r,g,b) legt die Farbe der Füllung einer Form fest&lt;br /&gt;
# stroke(r,g,b) legt die Farbe der Kontur einer Form fest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	ellipse(width/2, height, 100);&lt;br /&gt;
	fill(255,0,0);&lt;br /&gt;
	ellipse(width/2, height,50);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4371</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Farbe in p5js (Regenbogen)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4371"/>
		<updated>2019-01-03T19:16:27Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jeder Pixel auf dem Display oder Zeichenfeld hat eine Farbe. Wenn man ganz nah an einen Monitor heran geht, kann man evtl. einzelne Pixel erkennen. Sie bestehen aus drei kleinen Pixeln, die die Farben rot, grün und blau haben.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p5js | right&amp;gt;https://editor.p5js.org/HerrThiessen/embed/H1DXipu-E&amp;lt;/p5js&amp;gt;&lt;br /&gt;
In p5js gibt es zwei Möglichkeiten die Zeichenfarbe festzulegen: &lt;br /&gt;
# fill(r,g,b) legt die Farbe der Füllung einer Form fest&lt;br /&gt;
# stroke(r,g,b) legt die Farbe der Kontur einer Form fest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function setup() {&lt;br /&gt;
  createCanvas(400, 250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function draw() {&lt;br /&gt;
  background(220);&lt;br /&gt;
	fill(255, 0, 255); &lt;br /&gt;
	ellipse(width/2, height, 100);&lt;br /&gt;
	fill(255,0,0);&lt;br /&gt;
	ellipse(width/2, height,50);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Regenbogen.gif]]&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4313</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Farbe in p5js (Regenbogen)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4313"/>
		<updated>2019-01-03T07:32:09Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jeder Pixel auf dem Display oder Zeichenfeld hat eine Farbe. Wenn man ganz nah an einen Monitor heran geht, kann man evtl. einzelne Pixel erkennen. Sie bestehen aus drei kleinen Pixeln, die die Farben rot, grün und blau haben. &lt;br /&gt;
&lt;br /&gt;
In p5js gibt es zwei Möglichkeiten eine Farbe einzugeben: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p5js&amp;gt;https://editor.p5js.org/HerrThiessen/embed/H1DXipu-E&amp;lt;/p5js&amp;gt;&lt;br /&gt;
[[Datei:Regenbogen.gif]]&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4310</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Farbe in p5js (Regenbogen)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4310"/>
		<updated>2019-01-02T22:52:04Z</updated>

		<summary type="html">&lt;p&gt;Thi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jeder Pixel auf dem Display oder Zeichenfeld hat eine Farbe. Wenn man ganz nah an einen Monitor heran geht, kann man evtl. einzelne Pixel erkennen. Sie bestehen aus drei kleinen Pixeln, die die Farben rot, grün und blau haben. &lt;br /&gt;
&lt;br /&gt;
In p5js gibt es zwei Möglichkeiten eine Farbe einzugeben: &lt;br /&gt;
&lt;br /&gt;
[https://editor.p5js.org/HerrThiessen/embed/H1DXipu-E  Farbauswahl]&lt;br /&gt;
[[Datei:Regenbogen.gif]]&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4227</id>
		<title>Lernpfad:Programmierung mit Javascript und p5js/Farbe in p5js (Regenbogen)</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Programmierung_mit_Javascript_und_p5js/Farbe_in_p5js_(Regenbogen)&amp;diff=4227"/>
		<updated>2018-12-31T16:03:33Z</updated>

		<summary type="html">&lt;p&gt;Thi: Die Seite wurde neu angelegt: „Datei:Regenbogen.gif“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Regenbogen.gif]]&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Datei:Regenbogen.gif&amp;diff=4226</id>
		<title>Datei:Regenbogen.gif</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Datei:Regenbogen.gif&amp;diff=4226"/>
		<updated>2018-12-31T16:02:39Z</updated>

		<summary type="html">&lt;p&gt;Thi: Ein animierter Regenbogen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
Ein animierter Regenbogen&lt;br /&gt;
== Lizenz ==&lt;br /&gt;
{{CC-by-sa/3.0/de}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java&amp;diff=4225</id>
		<title>Lernpfad:Rekursion in Java</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java&amp;diff=4225"/>
		<updated>2018-12-31T00:51:37Z</updated>

		<summary type="html">&lt;p&gt;Thi: /* Einführung Rekursion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Status/In Bearbeitung von|thi}}{{Warnung|Dieser Lernpfad ist derzeit noch im Aufbau.}}&lt;br /&gt;
{{Navigation}}&lt;br /&gt;
{{Inhalt}}&lt;br /&gt;
&lt;br /&gt;
=Einführung Rekursion=&lt;br /&gt;
[[Datei:Screenshot_Recursion_via_vlc.png|thumb|right]]&lt;br /&gt;
In diesem Lernpfad lernst du die Grundlagen der &#039;&#039;rekursiven Programmierung&#039;&#039; kennen. Dieses Prinzip wird in vielen Anwendungen verwendet. Es entsteht aber auch ganz ausversehen im Alltag wenn man z.B. das Bild eines Bildschirms mit VLC aufzeichnet und dabei in diesem Bild auch der Player selber zu sehen ist. Einen ähnlichen Effekt erhält man, wenn man seinen Handy-Bildschirm auf einem Monitor überträgt und den Monitor filmt. &lt;br /&gt;
&lt;br /&gt;
In diesen Beispielen wird deutlich, dass Rekursion ein Verfahren ist, bei dem eine Wiederholung des Gleichen verwendet wird. &lt;br /&gt;
&lt;br /&gt;
[[Datei: Sierpinski-zoom4-ani.gif]]&lt;br /&gt;
Auch das Sierpinski-Dreieck ist ein Beispiel für eine Rekursion. Das Dreieck besteht aus Dreiecken, die aus Dreiecken bestehen.&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java&amp;diff=4224</id>
		<title>Lernpfad:Rekursion in Java</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java&amp;diff=4224"/>
		<updated>2018-12-31T00:42:53Z</updated>

		<summary type="html">&lt;p&gt;Thi: Der Seiteninhalt wurde durch einen anderen Text ersetzt: „{{Status/In Bearbeitung von|thi}}{{Warnung|Dieser Lernpfad ist derzeit noch im Aufbau.}} {{Navigation}} {{Inhalt}}  =Einführung Rek…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Status/In Bearbeitung von|thi}}{{Warnung|Dieser Lernpfad ist derzeit noch im Aufbau.}}&lt;br /&gt;
{{Navigation}}&lt;br /&gt;
{{Inhalt}}&lt;br /&gt;
&lt;br /&gt;
=Einführung Rekursion=&lt;br /&gt;
In diesem Lernpfad lernst du die Grundlagen der &#039;&#039;rekursiven Programmierung&#039;&#039; kennen. Dieses Prinzip wird in vielen Anwendungen verwendet.&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
	<entry>
		<id>http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufbaum&amp;diff=4223</id>
		<title>Lernpfad:Rekursion in Java/Aufrufbaum</title>
		<link rel="alternate" type="text/html" href="http://ngb.schule/hgwiki/index.php?title=Lernpfad:Rekursion_in_Java/Aufrufbaum&amp;diff=4223"/>
		<updated>2018-12-31T00:42:24Z</updated>

		<summary type="html">&lt;p&gt;Thi: Die Seite wurde neu angelegt: „==Der Aufrufbaum== Das pascal&amp;#039;sche Dreieck Durch einen Aufrufbaum wird die schrittweise Lösung eines Problem…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Der Aufrufbaum==&lt;br /&gt;
[[Datei:PascalTriangleAnimated2.gif|thumb|right|Das pascal&#039;sche Dreieck]]&lt;br /&gt;
Durch einen Aufrufbaum wird die schrittweise Lösung eines Problems dargestellt. Im Aufrufbaum werden die Parameter und die Rückgaben der Methode visualisiert. Gerade bei Methoden mit mehreren rekursiven Aufrufen verdeutlicht der Aufrufbaum die Ausführung. &lt;br /&gt;
&lt;br /&gt;
Das pascalsche Dreieck kann rekursiv berechnet werden, die jeweils oberhalb liegenden Felder werden addiert und ergeben das untere Feld.&lt;br /&gt;
&lt;br /&gt;
Der untere Aufrufbaum verdeutlicht die Berechnungen, die für die vierte Zeile und die dritte Spalte des pascal&#039;schen Dreiecks benötigt werden:&lt;br /&gt;
[[Datei:02_Rekursion_Aufrufbaum_Pascalsche_Dreieck.PNG|02_Rekursion_Aufrufbaum_Pascalsche_Dreieck.PNG]]&lt;br /&gt;
&lt;br /&gt;
{{Aufgabe:Start}}&lt;br /&gt;
Eine Fibonacci-Zahl wird durch die Summe der zwei vorherigen Fibonacci-Zahlen gebildet. &lt;br /&gt;
&lt;br /&gt;
*Mathematisch ausgedrückt: &lt;br /&gt;
** f(n) = f(n-2)+f(n-1) für n&amp;gt;1, &lt;br /&gt;
** f(n) = n für n&amp;lt;2&lt;br /&gt;
&lt;br /&gt;
Notieren Sie den Aufrufbaum des Methodenaufrufs f(4).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
public int f(n) {&lt;br /&gt;
  if (n &amp;gt; 1){&lt;br /&gt;
    return f(n-2) + f(n-1);&lt;br /&gt;
  }else{&lt;br /&gt;
    return n;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Lösung:Start}}&lt;br /&gt;
[[Datei:03_Rekursion_Aufrufbaum_fib_loesung.PNG]]&lt;br /&gt;
{{Lösung:End}}&lt;br /&gt;
{{Aufgabe:End}}&lt;/div&gt;</summary>
		<author><name>Thi</name></author>
	</entry>
</feed>