Binární vyhledávání – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Binární vyhledávání – Java – Fórum – Programujte.comBinární vyhledávání – Java – Fórum – Programujte.com

 

K4BlOs
~ Anonymní uživatel
56 příspěvků
24. 11. 2012   #1
-
0
-

Ahoj, potřeboval bych poradit s tímto programem

import java.util.*;

public class XXX {
	static Scanner sc = new Scanner(System.in);
	
	public static void binarniVyhledavani(int[] pole, int i) {
		int dolni = 0; // dolni mez
	    int horni = 101; // horni mez
	    int pokus = 0;
	      while (dolni <= horni) {
	    	pokus++;
	        int stred = (dolni+horni)/2;
	        System.out.println(pokus + ": " + stred);
	        i = sc.nextLine().charAt(0);
	        if(i == '>') {
	        	dolni = stred;
	        }
	        else if (i == '<') {
	            horni = stred;
	        }
	        else if (i == '=') {
	        	System.out.println("Hledane cislo = " + stred);
	        }
	      }
	    }

	public static void main(String[] args) {
		int[] pole = new int[101];
		for (int i = 0; i < pole.length; i++) { //vstup pole
			pole[i] = (i + 1)-1;
		}
		System.out.println("---Vysledky---");
		binarniVyhledavani(pole, 0);
	}
}

program hledá číslo, které si vymyslím a zadáváním "<" nebo ">" mi vypisuje číslo pokusu a hodnotu atd...když už je hodnota to číslo, které jsem si vymyslel, tak zadám "=" a program vypise "Hledane cislo =" a hodnotu mého čísla. Jenže vždy když zadám "=" tak se mi pod "Hledane cislo =" vypíše ještě jeden další pokus s hodnotou mého čísla a program navíc nekončí, zůstává pořád spuštěný musím ho ukončit ručně (terminate). Co s tím?

Nahlásit jako SPAM
IP: 176.12.115.–
KIIV
~ Moderátor
+43
God of flame
24. 11. 2012   #2
-
0
-

neni problem s podminkou cyklu?  teoreticky:  horni=12,  dolni=12...  dolni<=horni...  stale probiha stred je pak taky 12 ...

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
K4BlOs
~ Anonymní uživatel
56 příspěvků
25. 11. 2012   #3
-
0
-

a poradil bys mi jak mam napsat podminku aby opakoval dokud "i" nebude "=" ?
zkoušel jsem to takto, ale tomi program skončí hned po zadání buď "<" nebo ">"

public static void binarniVyhledavani(int[] pole, int i) {
		int dolni = 0; // dolni mez
	    int horni = 101; // horni mez
	    int pokus = 0;
	      do {
	    	pokus++;
	        int stred = (dolni+horni)/2;
	        System.out.println(pokus + ": " + stred);
	        i = sc.nextLine().charAt(0);
	        if(i == '>') {
	        	dolni = stred;
	        }
	        else if (i == '<') {
	            horni = stred;
	        }
	        else if (i == '=') {
	        	System.out.println("Hledane cislo = " + stred);
	        }
	      } while (i == '=');
	    }
Nahlásit jako SPAM
IP: 176.12.115.–
KIIV
~ Moderátor
+43
God of flame
25. 11. 2012   #4
-
0
-

proc to vubec nacitas z klavesnice? proc rovnou nehledas v tom poli?

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
K4BlOs
~ Anonymní uživatel
56 příspěvků
25. 11. 2012   #5
-
0
-

protože to mám tak zadaný. Už jsem to vyřešil s uživatelem TheOndrap, který mě nakopl   .Vůbec jsem si nevšiml, ze tam mam "int i" když jsem zadával znaky. No už mi to jede

Nahlásit jako SPAM
IP: 176.12.115.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 61 hostů

Podobná vlákna

Vyhledávání — založil al

Vyhledávání — založil x-flyer

Vyhledávání řetězce — založil scopres

Vyhledávání v DataGridView — založil Pebble

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý