faecher:informatik:oberstufe:algorithmen:binaere_suche:binsuchprogramm:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
faecher:informatik:oberstufe:algorithmen:binaere_suche:binsuchprogramm:start [19.04.2021 18:52] – [A2] sbelfaecher:informatik:oberstufe:algorithmen:binaere_suche:binsuchprogramm:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-====== Ein Programm zum Zahlenraten ====== 
- 
- 
-Arbeite mit dem folgenden BlueJ Projekt: {{ :faecher:informatik:oberstufe:algorithmen:binaere_suche:binsuchprogramm:bluej-binarysearch.zip |}} 
- 
- 
- 
-===== Aufgaben: ===== 
- 
-==== A1 ==== 
-  
-  * Beschreibe die Funktion der privaten Methode ''initZahlenreihe'' 
-  * Implementiere die Methode ''printZahlenreihe'' 
-==== A2 ==== 
- 
-Implementiere eine Methode ''binaereSuche'', welche den Index des gesuchten Elements zurückgibt oder ''-1'', wenn der gesuchte Wert nicht gefunden wird. Folge dabei den Tipps und Aufgabenstellungen unten. 
- 
-=== (1) Programmablaufplan === 
- 
-Erstelle ein Flussdiagramm anhand der folgenden Beschreibung.  
- 
-<code java> 
-    // in der main Methode der App Klasse 
-    int gesucht=22; 
-    int treffer = liste.binaereSuche(gesucht); 
-    System.out.println("Der Wert " + gesucht + " befindet sich im Arrayelement mit dem Index " + treffer); 
-</code> 
- 
-  * Die Methode ''binaereSuche'' arbeitet auf dem zuvor erzeugten Array und nimmt als Argument die gesuchte Zahl entgegen. 
-  * Du führst Buch welcher Teil des Arrays zu durchsuchen ist und welcher Teil des Arrays nicht mehr in Frage kommt. wenn deine Methode startet, musst du das gesamte Array betrachten (kleinster Index ''0'', größter Index ''daten.length-1'') 
- 
-{{ :faecher:informatik:oberstufe:algorithmen:binaere_suche:binsuchprogramm:step01.png |}} 
- 
-  * Jetzt musst du den Index des mittleren Elements finden, und prüfen, ob der Inhalt größer, kleiner oder gleich dem gesuchten Wert ist.  
- 
- 
-<code java> 
-  int mitte = (oben+unten)/2; //Wenn oben+unten ungerade ist, wird ''mitte'' abgerundet   
-</code> 
- 
-  * Ist der Wert des Arrayelements **gleich** dem gesuchten Wert, wird der Indexwert mit ''return'' zurückgegeben, denn das Element ist gefunden. 
-  * Wenn der gesuchte Wert **kleiner** ist als der Inhalt von ''daten[mitte]'', kann die obere Hälfte des Arrays ausgeschlossen werden, indem man als neue obere Grenze ''mitte-1'' festlegt. 
-<code java> 
-if ( gesucht < daten[mitte]) { 
-   oben = mitte-1;  
-} 
-</code> 
- 
-{{ :faecher:informatik:oberstufe:algorithmen:binaere_suche:binsuchprogramm:step02.png |}} 
- 
- 
-  * Sollte der gesuchte Wert **größer** sein als ''daten[mitte]'' kann die untere Hälfte ausgeschlossen werden, dazu muss der Wert von ''unten'' auf ''mitte+1'' gesetzt werden. 
- 
-<code java> 
-if ( gesucht > daten[mitte]) { 
-   unten = mitte+1;  
- 
-</code> 
- 
-  * Das ganze muss wiederholt werden, solange der Suchbereich ''oben-unten'' noch mindestens ein Element umfasst. 
- 
-=== Implementiere die Methode im Programmgerüst und teste sie === 
- 
-Hilfestellungen  
- 
- 
-{{ :faecher:informatik:oberstufe:algorithmen:binaere_suche:binsuchprogramm:flowchart.png |}} 
  
  • faecher/informatik/oberstufe/algorithmen/binaere_suche/binsuchprogramm/start.1618851128.txt.gz
  • Zuletzt geändert: 19.04.2021 18:52
  • von sbel