Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:algorithmen:binaere_suche:binsuchprogramm:start [19.04.2021 16:48] – [Ein Programm zum Zahlenraten] sbel | faecher:informatik:oberstufe:algorithmen:binaere_suche:binsuchprogramm:start [04.10.2021 17:04] (aktuell) – [Ein Programm zum Zahlenraten] sbel | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
- | Arbeite mit dem folgenden BlueJ Projekt: | + | Arbeite mit dem folgenden BlueJ Projekt: |
- | ++++ Ohne BlueJ | | ||
- | <code java App.java> | ||
- | /** | ||
- | * Erzeugt eine geordnete Zufallsreihe und ermöglicht Abfragen darüber. | ||
- | | ||
- | * @author Frank Schiebel | ||
- | * @version 1.0 | ||
- | */ | ||
- | class BinarySearch | ||
- | { | ||
- | private int[] daten; | ||
- | int anzahl; | ||
- | | ||
- | public BinarySearch(int anzahl) | ||
- | { | ||
- | this.anzahl = anzahl; | ||
- | daten = new int[anzahl]; | ||
- | int indexvorher = 0; | ||
- | for (int i = 0; i < daten.length; | ||
- | { | ||
- | if ( i>0 ) { | ||
- | indexvorher = i -1; | ||
- | } | ||
- | daten[i] = daten[indexvorher] + (int)(10*Math.random()+1); | ||
- | } | ||
- | } | ||
- | |||
- | | ||
- | public int suche(int zahl) { | ||
- | return 0; | ||
- | |||
- | } | ||
- | |||
- | public void anzeigen() { | ||
- | for (int i=0; i< anzahl; i++) { | ||
- | | ||
- | } | ||
- | } | ||
- | |||
- | | ||
- | } | ||
- | |||
- | |||
- | /* App Klasse. Steuerklasse für unser Programm */ | ||
- | public class App { | ||
- | |||
- | public static void main(String[] args) { | ||
- | BinarySearch liste = new BinarySearch(100); | ||
- | liste.anzeigen(); | ||
- | |||
- | |||
- | } | ||
- | |||
- | } | ||
- | |||
- | </ | ||
- | ++++ | ||
===== Aufgaben: ===== | ===== Aufgaben: ===== | ||
==== A1 ==== | ==== A1 ==== | ||
- | Probiere das Programm aus. Beschreibe, was es macht, verändere auch den Parameter | + | * Beschreibe |
+ | * Implementiere die Methode '' | ||
+ | ==== A2 ==== | ||
- | ==== A2 ==== | + | Implementiere eine Methode '' |
- | Implementiere eine Methode '' | + | |
- | === Programmablaufplan === | + | === (1) Programmablaufplan === |
Erstelle ein Flussdiagramm anhand der folgenden Beschreibung. | Erstelle ein Flussdiagramm anhand der folgenden Beschreibung. | ||
<code java> | <code java> | ||
- | // in der main Methode der App Klasse | + | public |
- | | + | |
- | int treffer = liste.binaereSuche(gesucht); | + | |
- | System.out.println(" | + | |
</ | </ | ||
- | * Die Methode '' | + | * Die Methode '' |
* 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 '' | * 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 '' | ||
Zeile 115: | Zeile 56: | ||
* Das ganze muss wiederholt werden, solange der Suchbereich '' | * Das ganze muss wiederholt werden, solange der Suchbereich '' | ||
- | === Implementiere die Methode im Programmgerüst und teste sie === | + | === (2) Implementation |
- | Hilfestellungen | + | Implementiere die Methode wie entworfen und teste sie. |
+ | === Hilfestellungen === | ||
+ | |||
+ | ++++ Möglicher PAP | | ||
{{ : | {{ : | ||
+ | ++++ | ||
+ | ++++ Mögliches Methodengerüst | | ||
+ | <code java> | ||
+ | public int binarySearch(int needle) { | ||
+ | int minindex | ||
+ | int maxindex | ||
+ | int middleindex | ||
+ | int middlevalue | ||
+ | | ||
+ | while ( ) { | ||
+ | | ||
+ | if ( ) { | ||
+ | return middleindex; | ||
+ | } | ||
+ | | ||
+ | |||
+ | if ( ) { | ||
+ | | ||
+ | } else { | ||
+ | | ||
+ | } | ||
+ | | ||
+ | middleindex = | ||
+ | middlevalue = | ||
+ | | ||
+ | } | ||
+ | | ||
+ | return -1; | ||
+ | } | ||
+ | </ | ||
+ | ++++ |