28.02.2014 Aufrufe

Informatik für Lehrkräfte

Informatik für Lehrkräfte

Informatik für Lehrkräfte

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

I N FORMATIK F Ü R L EHRKRÄFTE 45<br />

geheim = 37<br />

erraten = false<br />

while !erraten do<br />

kandidat = (min + max) / 2<br />

puts("Ist die Zahl gleich " + kandidat.to_s + "?")<br />

if geheim == kandidat then<br />

puts("Ja, erraten.")<br />

erraten = true<br />

end<br />

if geheim < kandidat then<br />

puts("Nein, meine Zahl ist kleiner.")<br />

max = kandidat - 1<br />

end<br />

if geheim > kandidat then<br />

puts("Nein, meine Zahl ist größer.")<br />

min = kandidat + 1<br />

end<br />

end<br />

Hier wird der durchsuchte Bereich von min bis max in jedem Schleifendurchlauf<br />

halbiert. Wenn die Zahl erraten wurde, wird die Schleife<br />

durch die Zuweisung erraten = true beendet.<br />

Die Ausgabe dieses Programms ist<br />

Ist die Zahl gleich 50?<br />

Nein, meine Zahl ist kleiner.<br />

Ist die Zahl gleich 25?<br />

Nein, meine Zahl ist größer.<br />

Ist die Zahl gleich 37?<br />

Ja, erraten.<br />

Die gedachte Zahl wird mit dem Verfahren Teile und Herrsche in<br />

diesem Fall also nach drei Schritten gefunden. Der Algorithmus hat in<br />

diesem Fall Glück gehabt, weil er den Bereich garnicht bis zum Ende<br />

eingrenzen musste. Im schlimmsten Fall nähern sich min und max bei<br />

der Ausführung so weit an, dass sie gleich groß sind. In dem Fall ist das<br />

Problem dann aber einfach gelöst.<br />

Übungsaufgabe: Zahlenraten<br />

Dokumentieren Sie die Ausführung des Programms zum Zahlenraten<br />

tabellarisch.<br />

Wieviele Fragen stellt das Programm im ungünstigsten Fall? Geben Sie<br />

die Ausgabe <strong>für</strong> einen solchen ungünstigsten Wert <strong>für</strong> n an.<br />

Schreiben Sie ein Programm, dass die Technik Aufzählen und Testen<br />

verwendet um alle Zahlen n auszugeben, <strong>für</strong> die das Programm zum

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!