Informatik für Lehrkräfte
Informatik für Lehrkräfte
Informatik für Lehrkräfte
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
44 SEBA STIAN F I SCH ER<br />
for b in a..n do<br />
for c in b..n do<br />
if a*a + b*b == c*c then<br />
puts(a.to_s + "," + b.to_s + "," + c.to_s)<br />
end<br />
end<br />
end<br />
end<br />
Hier besteht der Test aus einer einfachen Bedingung aber die Aufzählung<br />
geschieht mit Hilfe von drei geschachtelten Zählschleifen.<br />
Die Ausgabe dieses Programms ist<br />
3,4,5<br />
5,12,13<br />
6,8,10<br />
8,15,17<br />
9,12,15<br />
12,16,20<br />
Übungsaufgabe: Primzahlen aufzählen<br />
Schreiben Sie ein Programm, dass alle Primzahlen zwischen 1 und einem<br />
in der ersten Programmzeile zugewiesenen Wert ausgibt. Verwenden Sie<br />
die Technik Aufzählen und Testen, indem sie in einer Schleife mögliche<br />
Primzahlkandidaten aufzählen und mit einer geschachtelten Schleife<br />
testen, ob der aktuelle Kandidat eine Primzahl ist.<br />
Wandeln Sie ihr Programm so ab, dass statt aller Primzahlen bis zur<br />
gegebenen Grenze nur deren Anzahl ausgegeben wird.<br />
Teilen und Herrschen<br />
Statt Lösungskandidaten der Reihe nach aufzuzählen, können wir einige<br />
Problem auch lösen, indem wir den durchsuchten Bereich geschickter<br />
eingrenzen. Das Verfahren Teile und Herrsche zerlegt ein Problem in,<br />
beispielsweise, zwei halb so große Teilprobleme, die dann mit der selben<br />
Technik gelöst werden können. Als Beispiel <strong>für</strong> ein solches Problem<br />
betrachten wir das Spiel Zahlenraten.<br />
Eine Spielerin denkt sich eine Zahl zwischen 1 und 100 ohne sie zu<br />
verraten. Die Gegenspielerin muss die gedachte Zahl möglichst schnell<br />
erraten, wobei sie auf Rateversuche jedoch nur die Antworten “Ja, erraten.”,<br />
“Nein, meine Zahl ist kleiner.” oder “Nein, meine Zahl ist größer.”<br />
erhält.<br />
Natürlich können wir, um die gedachte Zahl zu erraten einfach alle<br />
Zahlen der Reihe nach abfragen, bis wir die richtige Zahl gefunden<br />
haben. Deutlich schneller gelangen wir jedoch ans Ziel, wenn wir den<br />
durchsuchten Bereich in jedem Schritt halbieren.<br />
Das folgende Programm implementiert diese Idee.<br />
min = 1<br />
max = 100