Chyba v primitivním programu – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Chyba v primitivním programu – Java – Fórum – Programujte.comChyba v primitivním programu – Java – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
ViliX64+1
Návštěvník
10. 7. 2013   #1
-
0
-

Zdravím, napsal jsem jednoduchý program pro Bubble Sort pole, někde ovšem nastala chyba a nefunguje to: 

package cz.vilix;


public class UntitledMain {
	static boolean pokracovat = true;
	static int[] pole = {99, -10, 100123, 18, -978, 5623, 463, -9, 287, 49};
	
	public static void main(String[] args) {
		do {
			for(int i = 1; i < 10; i++) {
				if (pole[i] < pole[i - 1]) {
					prohod(pole[i], pole[i - 1]);
				}
			}
			zkontroluj();
		} while(pokracovat);
		vypis();
		System.exit(0);
	}
	
	static void zkontroluj() {
		if ((pole[0] <= pole[1]) && (pole[1] <= pole[2]) && (pole[2] <= pole[3]) && (pole[3] <= pole[4]) && (pole[4] <= pole[5]) && (pole[5] <= pole[6])
			&& (pole[6] <= pole[7]) && (pole[7 ]<= pole[8]) && (pole[8] <= pole[9])) {
			pokracovat = false;
		}
	}
	
	static void prohod(int a, int b) {
		int pom;
		pom = a;
		a = b;
		b = pom;
	}
	
	static void vypis() {
		for(int i = 0; i < 10; i++) {
			System.out.println(pole[i]);
		}
	}
}

Domnívám se, že je chyba buď v metodě, která kontroluje, jestli je to seřazené, nebo v metodě, která promněnné prohazuje..

Nahlásit jako SPAM
IP: 88.101.227.–
Vilém Zouhar
Reklama
Reklama
ViliX64+1
Návštěvník
10. 7. 2013   #2
-
0
-

Přišel jsem na to pár minut potom, co jsem to sem vložil, v metodě prohod(); sice hezky prohazuji promněné, ale nepřiřazuji je do pole..

Každopádně bych se chtěl ještě zeptat, jestli není něco efektivnějšího, než tahle zkouška: 

(pole[0] <= pole[1]) && (pole[1] <= pole[2]) && (pole[2] <= pole[3]) && (pole[3] <= pole[4]) && (pole[4] <= pole[5]) && (pole[5] <= pole[6]) && (pole[6] <= pole[7]) && (pole[7 ]<= pole[8]) && (pole[8] <= pole[9])

Pokusil jsem se o cyklus: 

static boolean zkontroluj() {
		for(int i = 1; i <= 9; i++) {
			if(pole[i] < pole[i - 1]) {
				return false;
			}
		}
		return true;
	}

ten ovšem nefunguje tak, jak by měl.

Nahlásit jako SPAM
IP: 88.101.227.–
Vilém Zouhar
martin
~ Anonymní uživatel
1379 příspěvků
10. 7. 2013   #3
-
0
-

#2 ViliX6

myslel jsi to dobre ale napsal jsi to spatne, zkus toto.

	private static boolean checkArray() {
		for(int i = 1; i<pole.length; i++){
			if(pole[i-1]>pole[i]){
				return false;
			}
		}
		return true;
	}

Nahlásit jako SPAM
IP: 90.176.210.–
ViliX64+1
Návštěvník
10. 7. 2013   #4
-
0
-

Už jsem to opravil, problém je, že tuto metodu jsem si dosadil do cyklu do - while, takže jsem tam měl akorát prohozené hodnoty, čili tohle je správně: 

static boolean zkontroluj() {
		for(int i = 1; i <= 9; i++) {
			if(pole[i] < pole[i - 1]) {
				return true;
			}
		}
		return false;
	}
Nahlásit jako SPAM
IP: 88.101.227.–
Vilém Zouhar
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, 33 hostů

Podobná vlákna

Chyba programu — založil bbeni

Chyba v programu — založil vasek.t

Chyba v programu — založil

Chyba v programu — založil choice_

Chyba programu - switch — založil nevim

Moderátoři diskuze

 

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