Anonymní profil sleepy – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil sleepy – Programujte.comAnonymní profil sleepy – Programujte.com

 

Příspěvky odeslané z IP adresy 147.175.177.–

sleepy
Java › Java a MSSQL zadavani prikazu
20. 2. 2014   #187535

Presne ako hovori An. Z dokumentacie pre ResultSet:

A ResultSet object maintains a cursor pointing to its current row of data. Initially the cursor is positioned before the first row.

Treba pouzit metodu next().

sleepy
Java › doplňanie slovnika
20. 2. 2014   #187534

Neviem ako to mas napisane, ale stacil by ti list a nejaky class WordDefinition, mozno nejaky lepsi nazov.

class WordDefinition implements Comparable<WordDefinition> {
	enum WordClass{
		NOUN, ADJECTIVE, VERB, ...
	}
	String word;
	WordClass wordClass;
	public WordDefinition(String word, ...) {

	}

	public int compareTo(WordDefinition wd){
		return this.word.compareTo(wd.word);
	}
}

List<WordDefinition> defs = new ArrayList<>();

// kod v aplikacii
// vytvoris nejake ui a vo funkcii add urobis nieco taketo
public void addWordDefinition(WordDefinition wd){
	
	defs.add(wd); // mozes overit aj ci podobny zaznam
			// uz v liste neexistuje
			// alebo pouzit strom, pripadne set
}


Neviem co s tym chces dalsie robit, okrem doplnania slov. Takze tazko povedat, co je pre teba najlepsie.

sleepy
OS - GNU / Linux › Julius rozpoznávání hlasu
11. 2. 2014   #187312

skusal si ten -help?

sleepy
Java › nacitanie arraylistov
8. 2. 2014   #187241

Preto som sa pytal, aby som vedel ako potrebujes tie hodnoty citat. Netusim co chces urobit. Mas tam len jednu dlhu strudlu zlozenu z characterov [0-9\\n]. A potom si prisiel z agentami v ktorych su dve polia. Moja otazka je ako spravne priradovat hodnoty poliam. A preto som sa pytal na co sluzia agenti, aby som lepsie porozumel tomu o co sa snazis. Cize napis aspon priradenie.

sleepy
Java › nacitanie arraylistov
8. 2. 2014   #187234

Kto resp. co je agent a co tam robi? Nikde nevidim jeho definiciu. A aku ulohu v tom celom hraju arraylisty x a y. Nemas tu definovane dolezite veci.

sleepy
Java › časová prodleva během běhu p…
8. 2. 2014   #187227

#7 sleepy
Zle som sa vyjadril, ale po precitani kodu si to vsimnes.

sleepy
Java › časová prodleva během běhu p…
8. 2. 2014   #187226

Z toho navratova hodnota ani nepojde. Je to totiz void. Ani to nema zmysel. Zober si tvoja aplikacia bezi, vygeneruje vlakno v ktorom bezi vypocet a pocas toho aj tvoja aplikacia. Na to aby si vedel zasa ziskat navratovu hodnotu. Tak sa vlakna musi pockat. Cize jedno z nich musis pozastavit. Na taketo veci sluzi interface Callable<T> . Kotry ti ako navratovu hodnotu poskytne Future<T>. Z ktoreho ziskas hodnotu metodou get(). Ta magicka metoda ti pozastavy vlakno do vtedy pokial nebude mat druhe vlakno vysledok, alebo nebude interuptnute. Ale neviem ci sa to da pouzit v Timery. Takze nie je. Ale da sa to urobit nejako takto:

SheduledExecutorService timer = Executors.newSingleThreadScheduledExecutor();
SheduledFuture<T> future = timer.<T> shedule(new Callable<T>(){
	public T call(){
		return // nieco v T;
	}
}, 10L, TimeUnit.SECONDS);

// Dalsi kod

// A tu si pockas na vysledok future
T vysledok = future.get();


Na tvojom mieste by som volil, aby animacia bezala v inom threade a pocitalo sa v maine. Tak sa dokazes vyhnut nepriemnostiam.

sleepy
Java › nacitanie arraylistov
1. 2. 2014   #186932

#3 Milan
Na toto si sa vobec nepital, ja nevlastnim vestecku gulu a zo zadania to jasne nebolo. Mozes ten string rozdelit, napr. pocas citania:

while((line = reader.readLine())!=null){
	char[] numbers = line.toCharArray();
	for(char nChar : numbers){
		int readInt = (int)(nChar - '0'); // netusim ci to bude fungovat, ale malo by
		if (counter == 0 || counter == 2) {
			prvy.add(readInt);
		} else if( counter == 1 || counter == 3) {
			druhy.add(readInt);
		} else if (counter == 4) {
			treti.add(readInt);
		} else if (counter == 5) {
			stvrty.add(readInt);
		}
	}
	counter++;
}
sleepy
Návrhy na vylepšení › Chyba v pagination v linuxe
24. 1. 2014   #186635

V pripade ze sa jedna o chybu o mna tak sa ospravedlnujem.

sleepy
Návrhy na vylepšení › Chyba v pagination v linuxe
24. 1. 2014   #186634

Dobry den, chcel by som nahlasit bug v pagination v linuxe, zrejme ide len o zly font. Tu je screenshot:

Připojen obrázek.

sleepy
PHP › Kontrola správnosti zadaného…
19. 1. 2014   #186457

Keby si tento regex prepisal do php: \w+@\w+\.[a-zA-Z]{0,3}

sleepy
C / C++ › Dvojrozmerne pole/ matica
19. 1. 2014   #186454

Na moj kod sa moc nesustreduj, zrejme nieje dobre napisany. Ale islo mi prave o to aby si naplnil to pole matica. Malo to byt, len zovseobecnenie pre lubovolnu maticu nie len 9x4.

sleepy
C / C++ › Dvojrozmerne pole/ matica
19. 1. 2014   #186452

#3 vitamin
Jak, ze nie v c by to malo fungovat a preto som myslel ze c++ by s tym nemal mat problem. Sak predas pointer na 2 rozmerne pole do metody a tam ho naplnis. A dalsou to zobrazis? Ci? Vobec sa nevyznam v rozdieloch, medzi c a c++ (okrem toho ze c++ je objektovo orientovany). Som predpokladal, ze taketo veci zostali v c++.

sleepy
Java › Výpočet rychlosti stahování
19. 1. 2014   #186447

#7 sleepy
Sorry, dve opravy diferencialy namiesto derivacie a v tom vypocte potrbujes prve cislo castnut na double.

sleepy
C / C++ › Dvojrozmerne pole/ matica
19. 1. 2014   #186446

Nerozumiem moc c++, ale v c by to mohlo vyzerat nejak takto:

void generujMaticu(int[][] matica) {
	int m = sizeof(matica)/sizeof(matica[0]);
	int n = sizeof(matica[0])/sizeof(matica[0][0]);
	int r,s;
	for (r=0; r<m; r++){
		for(s=0; s<n; s++){
			matica[r][s] = // nejakym sposobom vygenerujes cislo napr. rand()*A + B
		}
	}
}

void vypisMaticu(int[][] matica){
	// zda sa mi ze v c je funkcia length(), ale niesom si isty
	// podla stack overflow by toto malo dat velkost pola
	int m = sizeof(matica)/sizeof(matica[0]);
	int n = sizeof(matica[0])/sizeof(matica[0][0]);
	int r, s;
	for (r = 0; r < m; r++) {
		for (s=0; s<n; s++) {
			if (s) {
				print("%d", matica[r][s]);
			} else {
				printf("\t%d", matica[r][s]);
			}
		}
		printf("\n");
	}
}
sleepy
Delphi › Sieť z obdlžníkov
19. 1. 2014   #186444

Nema byt to y:= 0 vnutry toho beginu? Pascal uz si velmi nepamatam.

sleepy
C / C++ › výpočet integrálu
19. 1. 2014   #186443

#11 KIIV
Ano, ale Simpsona mozes pozuit aj tak ze, vzdialenost medzi bodmi nedas jeden interval od x_i po x_i+1, ale 2 od x_i po x_i+2. Ja som ho len spomenul pretoze ako som hovoril, on konvarguje valmi rychle O(h^5). Kdezto lychobeznik a obdlznik, konverguju pomalsie O(h^3). Ale je pravda, ze su jednoduchie, a ak to ma skorej obdlznikovy charakter Simpson nieje najlepsi kandidat, lichobeznik a obdlznik ti daju presne hodnoty. Inak k tej postupnosti ak je to parny pocet cisel, tak si zahojeny. Namiesto nasobenia mozes pouzit bitshift (su tam nasobky iba (1,2,4), ak mas pravidelne rozlozenie. Musis asi nais co ti vyhovuje najviac. Inak neviem ci sa dobre rozumieme, napisem kod ako by som to robil pre simpsona:

long I = 0.; // Zle oznacenie, ale velkym I sa oznacuje integral v Matematike
int[] y;
int length = ...
int h = // interval od x_i po x_i+2 predpoklad vsetky intervali su rovanko velke
I = y[0]
for (int j=1; j < length-1; j++){
	if ( j % 2) {
		I += (y[j]<<1) // 2*y[j]
	} else {
		I += (y[j]<<2) // 4*y[j]
	}
}
I += y[length-1];
I = (I * h)/6;

Ak 4 derivacia danej funkcie nebude prilis divoka a teda |f^(4)(x)| <= 1 a interval bude 2 tak sa do danej presnosti uplne v pohode zmestis. Ak ale potrebujes este vacsiu presnonst, a funkcia nemusi mat nutne charakter linearnej alebo kvadratickej funkcie (aspon na podintervaloch). Tak budes asi musiet siahnu po niecom silnejsom napriklad 3/8 Simpson. Inak tu su vsetky zakladne newton-cottesove http://en.wikipedia.org/wiki/Newton-Cotes_formulas vzorce pre numericky vypocet integralu. Zalezi velmi na tom ako mas definovany interval. Su tam aj vzorce pre otvorene konce.

sleepy
Java › Výpočet rychlosti stahování
19. 1. 2014   #186440

Su to derivacie, nie determinanty (to su zasa urcovatele orientovaneho objemu). No da sa to, ale ako som pisal je to zbytocne. Ale tu je kod:  

byte buffer[] = new byte[1024];
int read = 0;

long lastTime = System.nanoTime();
long curentTime = 0;
double speed = 0.;
while ((read = in.read(buffer, 0, buffer.length)) != -1) {	
	currentTime = System.nanoTime();
	speed = read /(currentTime - lastTime) *1000000000/1024;
	// mohol by som dat lastTime = currentTime, ale tam by som to meral
	// aj s vypoctom rychlosti. Tu tiez meras aj ine veci.
	// Ale ak chces celkovu rychlost aj s operaciami, ta by mala dat
	// realnejsiu hodnotu. Tak daj lastTime = currentTime;
	lastTime = System.nanoTime();
	// read ti dava ciastkovy differencial dx, alebo jak sa to vola
	// ciastkovy diferencial dt vypocitas z rozdielov casov.
}
sleepy
Java › Výpočet rychlosti stahování
19. 1. 2014   #186438

Nemyslim si ze okamzita rychlost stahovania, je presnejsia na odhad doby stiahnutia, ako stredna hodnota. Zober si pripad kedy x(t) sa bude velmi prudko menit, napr. x(t) = { sum( x(k*T), k=0, k < n) + 10*t, n%2 == 1; sum( x(k*T), k=0, k<n) +0.1*t, n%2==0} a T je nejaka perioda. V takomto pripade by si prisiel na to ze mas 2 rychlosti stahovania 0.1 a 10 + nieco okolo tychto hodnot (tam kde dx/dt to nie je definovana, ale numericky sa tomu nevyhnes) a nemohol by si odhadnut presnu hodnotu.

sleepy
Java › Výpočet rychlosti stahování
19. 1. 2014   #186436

#2 Flowy
Mozes pocitat, okamzitu rychlost (dx(t)/dt, x(t) je mnozstvo dat prenesenych v danom od zaciatku stahovania, cize dx/dt = lim dt->0 (x(t-dt) - x(t))/dt, presnejsie je vsak lim dt->0 (x(t+dt) - x(t-dt))/2dt), len ci to v tomto pripade na nieco bude, tu ja asi naozaj pouzitelnejsia stredna hodnota od zaciatku stahovania.

sleepy
C / C++ › výpočet integrálu
19. 1. 2014   #186422

Jaj tak tam mas 1/4  nie 1/5, popravde len som to odpisal bez uvazovania. No ale to musi sediet aj ten Simpson. Cize pouzi simpsona napr. V tomto pripdae da uplne presnu hodnotu ~ 2,309...., lebo Simpson prave pre kvadraticke funkcie dava absolutne prenu hodnotu . Je to ten isty vysledok. A Simpson pre n = 2*k bodov je nasledovny: Int(f(x)dx, a, b) ~ h/6 * ( f(x_0) + 4*f(x_1) + 2*f(x_2) + 4*f(x_3) + 2*f(x_4) + .... + 4*f(x_n-1) + f(x_n) ), ak mas rovnomerne rozlozenie bodov tak h je vzdialenost od x_j po x_j+2. V podstate ako to co som pisal vyssie, len je toho viac scitaneho do kopy. Tu ti dam link: http://en.wikipedia.org/wiki/Simpson's_rule. Inak Simpson funguje na tom principe, ze urobis kvadraticky spline a ten pointegrujes.

sleepy
C / C++ › výpočet integrálu
18. 1. 2014   #186419

#1 Pavelv
Ale po pravde neviem z coho si vypocital to 2,3. To by si mohol napisat, lebo takto mi vychadza pre kade x_i = [0,1,2,3,4] je f(f_i) = [0,1,2,3,4], ze f(x) = x;

sleepy
C / C++ › výpočet integrálu
18. 1. 2014   #186418

#3 Pavelv

No na to treba pouzit vzorec, napr.simpson: int (g(x), dx, a, b) ~ (a-b)/6 * [f(a) + 4*f((a+b)/2) + f(b)]. Ale mozes si vystacit aj s lychobeznikom. Len to nebude tak presne, Simpson koverguje rychlejsie. V tvojom pripade bude jeden integeral [0,1,2] a druhy [2,3,4].
Cize: 2/6 *(0 - 4*1^2+2^2) + 2/6 * (2^2 - 4*3^2 + 4^2) = 64/3 => integral predelis 5 => 64/15 => sqrt => 2.06559. Ak by som sa pokusil za u(t) = t dosadit najdendouchsiu funkciu, ktora splna [0,1,2,3,4]->[0,1,2,3,4]. Integral znov vide 64/15. Samozrejme tato funkcia nemusi, korelovat z realitou a preto pre simpsona existuje odhad chyby a to taky err f(x) ~ 1/90 * ((b-a)/2)^5 * |f^(4)(c)|, kde c patri intervalu <a,b>. Toto som vypocital s chubou 1/90 * |d^4 f(c)/dx^4|, kde c je hodnota z <a,b>. Vzdy sa pocita sup x \is <a,b> tohto, teda vybres cislo take pri ktorom vies ze bude najvacsia hodnota. A to je chyba tohoto vypoctu.

sleepy
C / C++ › výpočet integrálu
18. 1. 2014   #186417

#1 Pavelv
Navyse existuje taky vztah medzi nimi: (&Delta;s)^2 = |s^2(x)| - s_ap(x)^2. Kde &Delta;s je standardna odchylka |s^2(x)| = sqrt(1/(b-a) int(f^2(x), dx, a, b)) a s_ap(x) = 1/(b-a)int(f(x),dx, a, b).

sleepy
C / C++ › výpočet integrálu
18. 1. 2014   #186415

Ako si prisiel na to ze 1/T int (u(t), dt, a , b) = sqrt(1/Tint(u^2(t), dt, a, b). To neplati. A druha vec ty pocitas kvadraticky (alebo nieco tomu podobne) priemer nie aritmeticky, ako v prvom pripade. A to ti vzcsinou vide ine. A taka podotazka vies ako sa pocita numericky integral?

sleepy
Python › python - grafika - cykloidy
18. 1. 2014   #186412

Tak este raz, mas to napisane konkretne takto:

import Image
import math

def demo():
	im = Image.new('RGB', (400,200), (255,255,255))
	pixels = im.load()
	r = 50
	max_angle = 360
	for t in range(max_angle):
		x = int(r*(math.radians(t) - math.sin(math.radians(t))))
		y = int(r*(1 - math.cos(math.radians(t))))
		pixels[x,y] = (100,255,105)
	im.show()
	im.save('demo1.png')

demo()

Tu je obrazok, ktory to vytvori:

Připojen obrázek.

sleepy
Python › python - grafika - cykloidy
18. 1. 2014   #186407

 Vyhod komenty a malo by to bezat. Za prve si mala im.putpixel((x,y),(farba)) mimo for cyklu a za druhe. tvoj obrazok nebol dostatocne velky. Preto ten IndexError. To si treba vzdy odhadnut. Napr. teraz cykloida moze max dosiahnut 6.28 * 50 px < 400 px v x a v y suradnici mas <0,2> * 50 < 200px. Este jedna vec cykloida bude opacne obratena. Lebo v pythone tak ako v inych jazykoch sa zacina pocitat od laveho horneho rohu.

import Image
import math

def demo1():
	im = Image.new('RGB', (400, 200)) // Toto musi byt vacsie ako tam, 
					// kde bude cykoloida
	pixels = im.load() // toto vraj urychluje
	r = 50
	max_angle = 360
	for t in range(max_angle):
		x = int(r*(math.radins(t) - math.sin(math.radians(t)))
		y = int(r*(1-math.cos(math.radians(t)))
		// tu vykreslujes pixely do obrazku, to musi byt v cykle
		// tak ako x a y
		pixels[x,y]=(100,255,105) // alebo im.putpixel((x,y), (100,255,105))
	im.show()
	im.save('demo.png')

demo1()
sleepy
OS - GNU / Linux › Mail server pro více domén
11. 1. 2014   #186206
sleepy
Java › Matice z textového souboru ?
11. 1. 2014   #186205

#4 sleepy
Ale fuj co som to napisal. Treba pouzit iterrator a len i++ 

int i =0, j=0;
for(List<Double> row : matList){
	for(Double c : row) {
		a[i][j] = c;
		j++;
	}
	i++;
}
sleepy
Python › Django dynamicke pridavanie…
8. 1. 2014   #186133

Dobry den, riesim teraz taky problem s pridavanim poli do formulara. Vo formulari ma uzivatel zadanu polozku material. Ktora pozostava z = { 'typ' : ModelChoiceField, 'hrubku':ModelChoiceField, 'podiel':DecimalField}. Ako ste uz mozno postrehli jednotlive moznosti taham ako modely z databazy, kvoli moznosti jednoduchsej editacie. Do formulara odsielam tieto fieldy + jeden skryty, ktory bude pocitat, kolko ich uzivatel ma pridanych. Pridavat nove materialy ('typ', 'hrubka', 'podiel') bude uzivatel pomocou js. A moja otazka je ako najvhodnejsie, poslat tomu jQuery vsetky typy a vsetky hrubky? Bude musiet najskor vygenerovat stranku aj s prislusnym javascriptom a potom mu odoslat json objecty? Alebo to mam urobit inak? Dakujem za vase odpovede.

sleepy
Java › Matice z textového souboru ?
7. 1. 2014   #186091

Regulare vyrazi ti pomozu. Alebo delit to podla toho cim su cisla v riadku oddelene ... . Tobre predpokladajme ze mas subor a v nom su cisla ulozene v nejakom floating point formate.  

Pattern doubleFormat = Pattern.compile("[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?");

private double[][] a;

public void readMatrix(File matrixFile) throw IOException {
	BufferedReader reader = new BufferedReader(new FileReader(matrixFile));
	String line = null;
	// len pomocny list na to aby som podla neho vedel vygenerovat pole
	List<List<Double>> matList = new LinkedList<>();
	while((line = reader.readLine()) !=null) {
		Matcher m = doubleFormat.matcher(line);
		List<Double> row = new LinkedList<Double>();
		matList.add(row);
		while(m.find()) {
			row.add(Double.valueOf(m.goup());
		}
	}
        reader.close();
	a = new double[matList.size()][matList.get(0).size()];
	for(int i = 0, m = matList.size(); i < m; i++) {
		for(int j = 0, n = matList.get(0).size(); j < n; j++) {
			a[i][j] = matList.get(i).get(j);
		}
	}
	
}

Mozno s tam drobne chyby, ale to si uz opravis.

sleepy
Java › nacitanie arraylistov
7. 1. 2014   #186089

Nechapem na co to je? Takto je to vzdy zadane? Alebo existuje nejaka formulka podla ktorej sa pocita, ktory riadok ide do ktoreho arraylistu. Prip. moze byt arrayListov viac? Inak ked mas pevne dane, kolko bude v ktorom arrayliste prvkou, preco pouzivas, list, tu uplne vistacuje pole. Mozno by sa zisiel lepsi popis toho co robis, resp. o co sa v tomto kroku snazis. Lebo je velka pravdepodobnost, ze ti to teraz napisem a niec ine ao toto sa to nebude dat pouzit. Ale kod:

private ArrayList<Integer> prvy = new ArrayList<>(2);
private ArrayList<Integer> druhy = ...

...

public void readFromFile(File file){
	BufferedReader reader = null;
	try{
		reader = new BufferedReader(new FileReader(file));
		int counter = 0;
		String line = null;
		while((line = rader.readLine())!=null){
			int readInt = Integer.valueOf(line);
			if (counter == 0 || counter == 2) {
				prvy.add(readInt);
			} else if( counter == 1 || counter == 3) {
				druhy.add(readInt);
			} else if (counter == 4) {
				treti.add(readInt);
			} else if (counter == 5) {
				stvrty.add(readInt);
			}
			counter++;
		}
	} catch(IOExceptio ioe){
		ioe.printStackTrace();
	} finally{
		try{
			if(reader!=null) {
				reader.close();
			}
		} catch(IOException e){
			e.printStackTrace();
		}
	}
}
sleepy
Matematika › POČÍTÁNÍ S MNOHOČLENY
7. 1. 2014   #186087

ano

sleepy
Java › Naprogramování - Zásobník, F…
6. 1. 2014   #186048

Nieco uz si napisal, kod mas? Vies ako funguju dane datove struktury? Resp. s cim si nevies rady? A ak sa znahody pytas ci ti to niekto nenapise, tak asi nie. Este taka vec, mozes pouzivat nejake kniznice k tomu. V jave je zasobnik aj fronta naprogramovana. Moze to sluzit ako inspiracia. Prip. urob wraper, ktory bude obsluhovat LinkedList, tak aby sa to spravalo ako (Stack, Queue).

sleepy
C / C++ › Graficka kniznica pre C
19. 12. 2013   #185469

Dakujem za rady, urcite sa na to allegro ale aj na sdl pozrem. Zatial som si vsak nasiel nahrasku v podobe pycuda (Pythonovska kniznica pre CUDA). Ale do buducnosti, toto zrejme bude jedina volba.

sleepy
Matematika › Derivace funkce
19. 12. 2013   #185468

f(x) = 4 * arctan(2/x) - x;

f'(x) = [4 * arctan(2/x) - x] =4 * [arctan(2/x)]' - [x]' = 4 * 1/(1 + (2/x)^2)*[2/x]' - 1 = 4/(1 + (2/x)^2)*(-2/x^2) - 1 = -8/(x^2 + 4) - 1 =

 = (-8 - x^2 - 4)/(x^2 +4) = - (x^2 + 12)/(x^2  + 4)

[ ]' -> oznacenie toho ze nieco v zatvorke idem derivovat. a^b -> a umocnene na b.

sleepy
C / C++ › Práce s náhodnými čísly ve s…
17. 12. 2013   #185402

   

double func(double a, double X, double Y, double A, double B) {
	double s = |X-Y|/|A-B|;
	double t = X - A;
	return a * s + t; // linearna transformacia
}
sleepy
sleepy
Matematika › Úloha na Vennovy diagramy
17. 12. 2013   #185400

Ospravedlnujem sa nadviazal som na zle riesenie. Je tam chyba zadania.

sleepy
Matematika › Sucin
17. 12. 2013   #185398

(2n-1)!!/(2n)!!

sleepy
C / C++ › Graficka kniznica pre C
17. 12. 2013   #185353

Zdravim, chcel by som sa opytat, aka je najjednoduchsia (resp. najpouzitelnejsia pre moj pripad) graficka kniznica pre C. Zacal som sa troska hrat s c-cuda a tak ma napadlo ze simulacie by nebolo od veci neakym sposobom zobrazovat. Niesom velmi zbehnuty c programator, ale mam nejake zakalady, aku graficku kniznicu by se mi odporucili (mimochodom pracujem v Linuxe takze ma napadlo gtk).

sleepy
Java › Řádkový filtr, hledání řežez…
13. 12. 2013   #185224

   

File input = new File("/path/to/input/file");
File output = new File("/path/to/output/file");

BufferedReader reader = 
	new BufferedReader(new FileReader(input));
PrintWriter writer =
	new PrintWriter(output); // prip PrintWriter(output, csn)


String line = null;
String crit = ...;

while((line = reader.readLine()) != null) {
	if(line.contains(crit)) { // pripadne line.containsIgnoreCase(crit)
		writer.println(line);
		writer.flush();
	}
} 

sleepy
Java › Řádkový filtr, hledání řežez…
13. 12. 2013   #185222
sleepy
Matematika › Pevná a pohyblivá rádová čia…
12. 12. 2013   #185197

Presne rovnako, ako to funguje v dekadickej sustave. Kazde cislo ma svoju (celu cast, mantisu a exponent). Cize 121.650 = 1.2165 x 10^2. Tu prvu cast uz si robil a uz len pridas exponent v binarnom kode. Double ma napriklad rozlozenie (1bit znak, 52bit cislo, 11bit exponent). Tu je link ako vyzera double: http://en.wikipedia.org/wiki/Double-precision_floating-point_format

sleepy
Java › Applet mouseListener problem
11. 12. 2013   #185133

Preco mas addMouseListener v painte. V okamziku ako to prekresli prida ti to novy mouseListener. Nemusis pouzivat init staci to napisat v tvojom pripade aj do konstruktoru.

sleepy
Java › Applet mouseListener problem
11. 12. 2013   #185118

   

class Nieco extends Applet implements MouseListener{
	
	@Override
	public void mouseClicked(MouseEvent event) {
		// kod toho co sa ma vykonat
	}
}
sleepy
Matematika › vṕočet strany trojuholníku
11. 12. 2013   #185113

Pardon som to zle napisal sin uhla som mislel (ano viem ze to ide trojclnkou). Len mi islo o to ze znova pouzivas 2 kroky. Ale na tom nezalezi, ja som chcel iba zodraznit, ze existuje aj ina cesta. A pri tupom uhle, je troska problem, lebo: sqrt(1-sin(x)^2) ma obor hodnot len v intervale od 0 po 1. Ale tak s tupim uhlom je podobny problem aj pri pouziti pytagorvich viet.

sleepy
Java › Problém z programom
10. 12. 2013   #185064

Tak skusim priklad int 3 = 11 a int 9 = 1001 a pri binarnom operatore je to tak ze ides po bitoch. Cize 3 & 9 = 0011 & 1001 = 0001; 3^9 = 0011 ^ 1001 = 1010; 3|9 = 0011 | 1001 = 1011. Jednoducho pouzivas operator medzi k-timi bitmi. Pre boolean ktory reprezentuje len 0 a 1 (false a true) je len 1 bit (aj ked v jave sa uklada ako 8bit-ov, ale to teraz nieje dolezite). Logisky operator sa neda pouzit na cisla ale iba na booleane, dalo by sa povedat ze pracuje len s 1bitom a teda true a false.

sleepy
Java › Problém z programom
10. 12. 2013   #185053

Presne, logicke operatory je velmi dobre pouzivat s boolean-om. Tu to zatial mozno este nevidis, ale o nedlho sa dostanes po take kody kde referencia objektu moze ukazovat na null a ty to mas spracovat. Jednoducho logicke operatori neporovnavaju ked uz nemusia napr. ak p = false a q = ? a mas urobit p && q, tak q jednoducho uz nieje potrebne zistovat lebo nemeni vysledok. Ukazem konkretnejsie:

MyObject obj = ...
if(obj != null && obj.satsfiesCondition()) {
	process(obj);
}


Toto je priklad toho, kde to ma neskutocne vyuzitie, lebo ak obj = null tak neexistuje metoda stisfiessCondtion() a volanim by to hodilo NullPointerException a cela aplikacia by ti na tom mohla padnut. Lenze pouzitim toho logickeho operatora sa druha cast podmienky overovat uz nebude (netreba, nemeni to vysledok). Takze nemusis kod pisat takto: 

if(obj!=null) {
	if(obj.satisfiesCondition()) {
		process(obj)
	}
}


To iste plati aj pre or ak je prva cast rovna true druha sa nevykonava. Znova by sa dal uvist podobny priklad. Inak uz rozumies tomu, ako si to mal vyriesit? A uz vidis rozdiel medzi logickym a binarnym operatorom? Jednoducho vsetko je zapisane ako seria 1 a 0 napr. int je ich 32. Binarne opertaori su take, ze porovnanie sa deje na kazdom bite. Cize ak mas (cislo, znak, ...) zapisany v takomto tvare: 0xba_na_n-1 ...a_1a_0 a druhy operand podobne 0xb_nb_n-1...b_1,b_0 tak pre lubovolne c_k plati c_k = a_k (operator na danom bite) b_k, kde k = {0,1, ..., n}.

sleepy
Matematika › vṕočet strany trojuholníku
10. 12. 2013   #185047

To bol len iny navrh riesenia. V prvom pripade potrebujes taktiez 2 kroky (vypocitat uhol, asi sin-veta a vypoctat stranu, cos-veta)

sleepy
Matematika › vṕočet strany trojuholníku
10. 12. 2013   #185035

Dalo sa to aj s pomocou pytagorovej vety.

sleepy
Java › Problém z programom
9. 12. 2013   #185032

Ospravdlnujem sa, mozno som zaviedol svoju mylnu predstavu o doplnku. Je to tak ako pise Flowy. Ja som to ponimal skorej z tej matematickej stranky, teda ako doplnok (co by boli vsetky cisla okrem tebou zadaneho). A spravne pripomina takyto doplnkovy kod sa pouziva pri pocitany so znamienkom.

sleepy
Java › Problém z programom
9. 12. 2013   #185026

No v jave take nieco ako negacie integeru nieje. Vtipom je ze si vlastne vobec neriesil zadanie knihy, ale nieco troska ine a preto ti to nefunguje. Ty totizto pouzivas bitewise operatory, ktore funguju na cislach dokonca pre 1 a 0 budes dostavat hodnoty ako pre true a flase. Bohuzial negacie nieje definovana, ako bitewise operator, ani by to nemalo zmysel. Cize riesenie tvojho problemu, nebude preist na int (cele cisla), ale zostat pri booleane a pri vypisovani, ak bude hodnota true napises 1 a ak false napises 0. Tu je ukazka toho ako sa to da opravit:  

boolean d = !p;
... // tu je tvoj kod
System.out.println((b?"1":"0") + "\t" + (d?"1":"0")); // alebo ak uz vies ako funguju polia

System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
boolean[] res = new boolean[6];
for(int i=0; i<4; i++) {
	res[0] = i%2==1?true:false; // toto pouzivam iba na generovanie cisel p a q
	res[1] = i/2==1?true:false; // skrateny zapis if(?) else(:)
	res[2] = res[0] && res[1];
	res[3] = res[0] || res[1];
	res[4] = res[0] ^ res[1];
	res[5] = ! res[0];
	for(int k=0; k<5; k++) {
		System.out.print(res[k]?"1":"0"+"\t");
	}
	System.out.println(res[5]?"1":"0");
}

// Este existuje jedna moznost s pouzitim celych cisel a to namiesto ! pouzit (p+1)%2 dava to ten isty vysledok

	
sleepy
Java › použití Javy?
9. 12. 2013   #184985

K čemu se používá jazyk java?

Programovanie, vacsinou. Ale mozes si z pasie spustat napriklad prikaz: java -version.

Dále se dá používat i v mobilních zařízeních?

Ano aj sa pouziva.

Četl jsem, že složí spíše pro větší firemní aplikace, protože pro real-time aplikace- počítačové hry, nemá dostatečnou rychlost.

Toto nieje pravda, existuje vela real-time aplikacii napisanych v jave. A serveri sa taktiez velmi neflakaju, to su asi okrem (super pocitacov, gridu ako ma cern a inych) jedny z najvytazenejsich pc. To znamena, ze ak by java bola tak ultimatne pomala ako to vseci popisuju, tak by sa tam ten jazyk nepouzival. A pocitacove hry su zly priklad, lebo v dnesnej dobe nemas hru pisanu v jednom jazyku (mozno tak tetris alebo hadika ;) ), ale su pisane v roznych jazykoch napr. LoL ma istu cast serverou pisanu v jave http://forums.na.leagueoflegends.com/board/showthread.php?t=16318, tam to mas vsetko vypisane.

Na vypoctovy vykon javy, vplivaju mohe faktory a nezanedbatelny je aj ten ako mas napisany kod. To znamena, ze je velmi dobre sa drzat istych standardov, ako sprvane pisat kod (pomoze ti v tom napriklad Effective java od Blocha). Samozrejme najvacsi vplyv ma algoritmizacia a vyber vhodnej datovej struktury, o tom nemoze byt ani rec (toto plati pre vsetky jazyky).

Cize aby som to zhrnul. Java ma naozaj vyuzitie a zaroven nemale zastupenie na trhu.

sleepy
Java › Prosím o radu! :)
4. 12. 2013   #184780

inak naco najskor overujete ci je jednou z nich, v tomto pripade je to uplne zbytocne.

sleepy
Java › Prosím o radu! :)
4. 12. 2013   #184779

Pouzi radsej switch case, je to asi rovnako modularne ako toto co si napisal, kontrolujes tam veci len raz, ke to zrozumitelnejsi kod a napises toho menej: 

String farba;
switch(farba.toLowerCase()){
	case "cierna":
		....
		break;
	case "cervena":
		... // kod
		break;
	...

	default:
		// co sa ma stat ak ziadna farba nvyhovie
}
sleepy
Java › Zastavení smyčky
29. 11. 2013   #184551

Drz vsetko v pamati, ak planujes pouzit menej, so suborom sa hraj len v tedy, 

class DiaryEventHandler{
	private Set<DiaryEvent> diary = Collections.synchronizedSet(new HashSet<DiaryEvent>());

	private Timer = new Timer();

	public addNewEvent(final DiaryEvent evt) {
		diary.add(evt);
		TimerTask task = new TimerTask(){
			public void run(){
				printMessageOnScrren(evt.getMessage());
				diary.remove(evt);
			}
		}
		timer.shedule(task, evt.getDate());
	}
	
	// Vtimery budes mat problem s rusenim taskov, jedina moznost 
	// je ukoncit timer vytvorit novy a vlozit do neho vsetky od znova, 
	// lebo TimerTask sa neda interruptnut.

	// dalsie metody ...

	
}

ked to naozaj potrebujes (Pri nacitani aplikacie, ukonceni a ulozeni zmien). Dalsia vec ak si jediny kto k suboru pristupuje, nepotrebujes ziadnu kntrolu, lebo sami z nicoho sa data neprehadzu, ak tam sucastne pristupuju viacery, pozi bud eventy, alebo observer model. A namisto cyklu na kontrolu, kedze mas nejake datumy pripomienky, pouzi Timer a vytvor si TimerTask co ma nastat v najblizsej buducnosti a timer bude cakat doi vtedy, kym udalost nastane. Idealne by bolo mat tie Datumi v nejakej prioritnej fronte (Strome, niecom co je usporiadane). Riesenie problemov s pridanim noveho Datumu by si sa len pozrel ci ten datum je nutne vykonat skor ak ten o ktory sa stara tvoj timer, ak je ho nutne vykonat skorej ten v timery. Zrusis ten v timery a vratis do fronty a tento vrazis do timeru ako novy TimerTask. Pri vykonani prikazu v timery sa okamzite popne dalsi najmensi z fronty a hodi do timeru. Vidim to takto:

sleepy
Java › komplexní šísla
27. 11. 2013   #184497

#14 KIIV
V jave teda aspon podla blocha je velmi dobre robit objekty co najviac immutable, kvoli zabezpeceniu. Cize skorej ako vytvorit Complex object ktory vie menit hodnoty hodnoty real a im a mat na ne setery je lepsie si vytvorit nieco ako Builder (String builder) a Complex nechat immutable. Videl by som to asi takto:

class ComplexNumberBuilder{
	private double re, im;
	public ComplexNumberBuilder(ComplexNumber c) {
		this.re = c.getReal();
		this.im = c.getImaginary();
	}

	...

	public ComplexNumberBuilder mul(ComplexNumber b) {
		this.re =  this.re * b.re - this.im * b.im;
		this.im = this.re * b.im + this.im * b.re;
	}

	public ComplexNumberBuilder add(ComplexNumber b) {
		this.re += b.re;
		this.im += b.im;
	}

	...

	public ComplexNumber build() {
		return new ComplexNumber(this.re, this.im);
	}
}
sleepy
Java › Rada ohladom teorie z javy
27. 11. 2013   #184485

#1 Ika
1. int (urcite)

2. Comparator, ArrayList

3.List je interface, ak by tam nebol ten list medzi nimi tak LinkedHashSet, kvoli tomu ze hashSet a ArrayList pouzivaju polia a tu sa vyuziva hojne ten hash z 1.kroku (v HashSete, vyhladavanie v O(1)).

sleepy
Java › Prolomení hesla java
27. 11. 2013   #184427

Aj keby ti ten kod fungoval tak kde overis, kde ze je zadane heslo spravne? Co je metoda getCharacters()? No skusim nieco napisat:

 

class BruteForceAtacker{
	private char[] carset;
	private String password;
	
// pouzil som normalny konstruktor namiesto initu
	public BruteForceAtacker(char[] charset, password){
		this.charset = charset; // lepsie by mohli byt to skopirovat
		this.password = password;
	}

	private boolean verifyPassword(String password) {
		// toto nieco spravi 
		// a vrati to ci je alebo nieje heslo spravne
		return this.password.equals(password);
	}

	public String breakPassword(int length) {
		int[] pasCh = new int[]; // pomocne pole aby som moholist 0 .. n
		char[] pass = new char[length]; // toto je tvoje heslo ako pole znakov
		for(int i=0; i<length; i++) {
			// prehodi pole cisle do znakov podla charsetu
			pass[i] = charset[pasCh[i]];
		}
		while(!verifyPassword(new String(pass))) {
			// pripocitas 1 a zmodulujes podla velkosti charsetu
			pasCh[0]=(pasCh[k]+1)%charset.length;
			for(int k=1; k< cahrset.length; k++) {
				if(pasCh[k-1]==0 && pasCh[0]==0){
					pasCh[k]=(pasCh[k]+1)%charset.length;
				}
			}
			for(int i=0; i<length; i++) {
				pass[i] = charset[pasCh[i]];
			}
		}
		// najde heslo tak ho posle naspat
		return new String(pass);
	}
}
sleepy
C / C++ › Const v jazyce C
26. 11. 2013   #184403

To aj v beznom zivote si menis konstanty ako sa ti zachce (napr. pi, e) ? Ak to chces menit na co tam mas const?

sleepy
Java › Unreported Exception
25. 11. 2013   #184376

Alebo to zalogujes, ukoncis atd ... . Inak taketo nieco sa pouziva ak mas objekt v ktorom sa nachadza objekt, ktory vie hodit vynimku a ty aby si blizsie specifikovala tvoju vinimku tak odchytis povodnu vynimku a hodis novu viac suited pre tvoj objekt. Bloch uvadza takyto kod:

public T get(int index) {
	ListIterator<T> i = listIterator(index);
	try {
		return i.next();
	} catch(NoSuchElementException e) {
		throw new IndexOutOfBoundsException("Index: "+index);
	}
}

Tvrdi ze je nekorektne ak metoda hadze vynimku ktora nesuvisi so zadanou ulohou. Ak by ten blok zostal bez try catch hodil by NoSuchElementException, namiesto IndexOutOfBounds, ale vzdy je tu ale ani toto by sa nemalo prehanat.Jednoducho vynimka by mala popisovat co sa tam stalo.

sleepy
Java › Continue
25. 11. 2013   #184375

a inak ked si nastavim pocet sirek na 12 a odectene sirky na 105. Zrejem ti tam chyba asi nejaky cyklus. A ak si chcel spravit v tom if ze ci je to true alebo false porovnanim, tak to nerob, kod je sice nepatrne ale stale pomalsi a vznikaju tam chyby prave take ako si teraz napisal. Robis tam priserne vela kontroli ktora sa da vybavit jenym if-om, v jave existuju aj logicke operatory ako je &&, ||, !. A nemas odchytenu taku vec ci uzivatel zadal true, resp. nejake cislo.

sleepy
Java › číslo -> text
25. 11. 2013   #184373

Zober si nejaku ucebnicu Ceskeho jazyka a tam pri cislovkach mas urcite napisane co sa kedy robi a ako sa to dava (aj s vynimkami). Zacni napr. tym ze si napises map nejakych zakladov cisel a potom s tym budes pracovat podla tej ucebnice. Vlastne prepis algoritmus tvorby cisloviek z ucebnice do kodu.

sleepy
Java › vložení obrázku v gui
25. 11. 2013   #184372

Inak toto nieje dobre riesenie, ale na to uz prides sam.

sleepy
Java › vložení obrázku v gui
25. 11. 2013   #184371

No tak asi nejako takto to daj do kopy:

BufferedImage img = ImageIO.read(new File("/cesta/k/suboru"));
// a mas nacitany obrazok

// teraz ho musis bykreslit

// predpokladam ze take nieco ako canvas, alebo hocico na kreslenie mas

// ak nie tak to kresli do JPanel-u

class JCanvas extends JPanel{
	
	BufferedImage img = ...

	@Override
	public void paintComponent(Graphics g) {
                super.paintComponent(g);
		g.drawImage(img, x, y, width, height, null); // asi pozri ako to je v Graphics
	}
}

musis menit ten obrazok img napriklad setermi, alebo si nacitas tie obrazky a budes ich mat v nejakom liste.

Za kazdou zmenou musis zavolat repaint(), JPanel tu metodu uz obsahuje ona vsetko prekresli.

sleepy
Java › vložení obrázku v gui
25. 11. 2013   #184362

a robis so swingom s awt alebo fx? Akosi tu chybaju dalsie informacie.

sleepy
Java › Prolomení hesla java
22. 11. 2013   #184239

tryOpen(char[]). Inak mas celkom dost mimo aj kod, najskor napis co to ma robit, resp. napis ako si predstavujes, ze to ma fungovat. Lebo toto asi nebude roibit nic. Kde overujes ze je heslo spravne, alebo neoverujes? Co zadavas, ako to volas. Jednoducho napis vsetko co treba, lebo takto ti asi velmi nikto neporadi.

sleepy
Java › vypocet uhlu pomoci souradnic
19. 11. 2013   #184106

Cos veta: cos alfa = |x||y|/<x,y> // |nieco| je velkost a <x,y> je skalarny sucin x a y su vektory. A ak nieje jeden 0 tak to bude fungovat.

sleepy
Java › Console in java
14. 11. 2013   #183919

Dakujem uz som nieco spachal, co vyhovuje mojim predstavam. Keby som vedel svoje heslo, oznacil by som vlakno za vyriesen a dal by som +1 kedze to bolo ciastocnou inspiraciou ako aj rozhovor, k rieseniu mojho problemu.

sleepy
Java › třída, konstruktor, statická…
14. 11. 2013   #183867

#3 diabolus99
Nezauimaj sa o obsah tej metody, zameraj sa len na to ako je to napisane ako uz nizsie napisal NotBeginer treba to tak napisat. Ty mas jednoducho objekt v tom objekte su premenne a metodami s nimi nejako interagujes, napriklad chces polomer tak budes volat metodu getPolomer(), ci sa v nej nieco pocita alebo len odosles hodnotu tvojej premennej, ak chces obsah budes volat getObsah() tam znova nieco treba urobit atd. Predstav si to takto kruh je objekt ma nejake atributy (polomer,obsah, obvod, pozicia, a neviem co ine sa da este vymysliet). No nie vsetky su uplne nezavysle napr. jeho obsah je S = pi*r^2 a obvod je O=2*pi*r. Pi je konstanta tak ako 2 cize ti staci drzat iba jeho polomer (ak teraz neuvazujeme poziciu, farbu, otocenie ;), uhlovu rycholost .... (tie posledne ani nemate to je iba pre lepsiu predstavu)).

Takze je rozumne to spravit tak ze v tom kruhu budes mat ulozeny iba polomer a za kazdym ak si nejaky iny objekt vypyta od kruhu {Polomer, Obsah, Obvod} tak ho vypocitas. Ten objekt si to bude pitat pomocou metody getPolomer(), resp. getObsah(), getObvod(). Takze tvojou ulohou je napisat telo tycho metod, v Instancii Kruh. Toto by som nemal robit, ale:

class Rectangle{
	private double width, height;
	public Rectangle(double width, double height) {
		if(width < 0 || height < 0)
			throw new IllegalArgumentException() // ty mas urobit nieco ine ja hodim vynimku ak je vyska alebo sirka < 0
		this.width = width;
		...
	}

	public double getWidth() { //touto metodou vraciam sirku daneho obdlznika
		return this.width;
	}

	...

	public double getArea() { //touto zase obsah
		return width * ...;
	}
}

Tam kde su bodky treba dalsi kod, ale to uz ti nebudem dalej radit. Uz to tu mas 3x napisane.

sleepy
Java › třída, konstruktor, statická…
13. 11. 2013   #183841

Mas napisat triedu s nejkym kostruktorom, ktory zobere double r ako svoj argument a vytvori triedu a mas napisat telo tej triedy aby si z nej dokazal dostat polomer, obsah a obvod. Uvediem ktora bere string ako argumen s metodou ktora ho zasifruje (je to velmi podobny princip, skoro totozne):

class CipherMsg{
	private final String secretString;
	public CipherMsg(String str) {
		this.str = str;
	}

	public String getCipheredString() {
		char[] cpihered = new char[secretString.length()];
		char[] msg = secretString.getChars();
		for(int k=0; k<msg.length; k++) {
			ciphered[k]=msg[k]^47;
		}
		return new String(ciphered);
	}
}

Akurat tu je len 1 metoda a ty mas vytvorit 3 a v konstruktore nieco urobit.

sleepy
Pascal › Posloupnost, každou hodnotu…
13. 11. 2013   #183836

#5 kejta
Metoda funkcia procedura, vsetko je to na jedno kopyto. Co som ti chel naznacit je ze si mas vytvorit funkciu na vkladanie elementou do pola, kde pouzijes jednu globalnu premennu (asi v pascale som neprogramoval uz 7 rokov tak si to vobec nepamatam). Napisem to v nejakom pseudo jazyku:

Integer cursor; // ukazuje poziciu kam sa ma vlozit dany objekt
Integer[] intArray = new Integer[MAX]; // vysledne pole prvkou

function add(Integer element) { // pridava Integer do pola
	Boolean contains = false; // premenna kde ulozis ci dane pole obsahuje alebo neobsahuje dany prvok
	for pos:=0 to cursor-1 { // iterujes po poziciu predosleho prvku
		if(intArray[pos] == element) {
			conatins = true; // ak narazis na rovanky element nastavis conatis na true
			break; // ukoncis cyklus
		}
	}
	if (! contains){ // ak pole neobsahuje dany prvok
		intArray[cursor] = element; // vlozis prvok na koniec tvojho pola
		cursor=cursor+1; // a kurzor zvysis o 1
	}
}

Je to taka zmiesanina vseli coho, ale pascal si uz naozaj nepamatam, ale malo by ti to stacit na pochopenie principu. Je to sice so zlozitostou O(n^2), ale kedze mas iba 10000 prvkove pole, je to uplne jedno.

sleepy
Pascal › Posloupnost, každou hodnotu…
13. 11. 2013   #183829

a co takto si vytvorit metodu add(int a), ktora urobi to ze za kazdym prebehne cele pole a ak sa v poli dany prvok nenachadza tak ho supne na k-tu poziciu a k sa posunie o 1 vyssie.

sleepy
Python › Rozdelenie poľa do viacerých…
13. 11. 2013   #183828

a co nieco taketo:

fields=[]
subfield=[]
ch = 5
for i in a:
	subfield.append(i)
	if (i == ch):
		fields.append(subfield)
		subfield = []
fields.append(subfield)

A mas to rozdelene vo viacrozmernom liste.

sleepy
Java › Console in java
13. 11. 2013   #183825

#4 goddard
No to uz vyzera lepsie, ale neprecital som este kod.

Ja som si to skor cele predstavoval, ze budem mat parser nejakej lajny a Mapu prikazov. Lajna sa mi rozseka podla nejakych pravidiel a ulozi do stacku a prikaz bude vyzerat nejak takto:

public interface Command{
	public Argument execute(Collection<Argument> args);
}

Cize on popne nieco zo stacku pozre sa do mapy a zhodnoti je to prikaz alebo argument. Ak argument nejkym sposobom sa vytvori Argument a vlozi sa do kolekcie, ak narazi na prikaz pozre sa kolko ma mat argumentov a z kolekcie sa vyberu. Argumenty sa vytiahnu a spracuju prikazom a ulozia sa naspat do kolekcie (mozno Dequeue by bola dobra volba, ale ani linked list by nebol na skodu). A na konci by my zostal iba 1 argument ako vysledok, alebo by mito hodilo vynimku do ksichtu. Chcel som to nejako takto aby mal uzivatel aspon aku taku moznost si vytvorit vlastny Command. Dam priklad (toto nechcem, ale ako priklad to posluzi): createFunction f a b minus a plus b multiply 2 a. A on by isiel 2 -> a ->2*a -> b + 2*a -> a - (b+2*a) -> map.put("f", a - (b+2*a)). Toto je len priklad v na toto by mi stacila symja (alebo nieco podobne), ja chcem nieco taketo, chcem len nieco viac abstraktne ako switch. Ale pozrem si ten odkaz dokladnejsie, vyzera to dobre, dakujem.

sleepy
Java › Prvočísla - JAVA (cyklus whi…
13. 11. 2013   #183821
sleepy
Java › Prvočísla - JAVA (cyklus whi…
13. 11. 2013   #183820

a etse jedna vec ak a > p > 2^16 je dobre spravit: a = ((a%p)*(a%p))%p;

sleepy
Java › Prvočísla - JAVA (cyklus whi…
13. 11. 2013   #183819

#11 sleepy
pre ludi ktory by sa zase chceli hadat o konvergencii a divergencii, napisal som si to v pythone , funguje to. Diverkovat to na konecnom pocte nasobeni nemoze ak, jedno z tych cisel samo nieje nekonecno resp. lim k->inf. To ze robime z konecnymi poctami bytov neznamena ze nieco nekonverguje. A za tretie je tam modulo ktore to za kazdym hodi na cislo mensie ako p!

sleepy
Java › Prvočísla - JAVA (cyklus whi…
13. 11. 2013   #183818

Pozri si nieco o malej Fermatovej vete. Plati ze ak a jelubovolne cele (nezaporne) cislo a p je prvocislo => a^(p-1) == 1 (mod p). Cize zapis pre javistu Math.pow(a, (p-1))%p == 1. Metoda podobna tejto sa v dnesnej dobe pouziva v RSA. Pozor na ten znak implikacie, to neplati opacne, ze ak ti z najkych takto zadanych cisel vyde 1 tak p je prvocislo. Prikl. a=1; p=4; 1^3 =1; 1%4=1 ale vieme ze p urcite nieje prvocislo. Cize je vyhodne to vypocitat pre viacero roznych a. A aby to fungovalo ako tak effektivne, je dobre za kazdym umocnennim urobit modulo (toto cele ma nieco docinenia z cyklickymy konecnymi grupami). Takto by som to riesil ja:

public int powMod(int a, int p) {
	int out = 1;
	int exp = p-1;
	for(int k=0; k<32;k ++) {
		if (exp %2 ==1 ) {
			out = (out * a)%p;
		}
		exp= exp>>1; // exp/2
		a = (a*a)%p; // umocnenie priamo z modulovanim
				// inak by si dostal velke cisla
	}
	return out;
}

Inak som si vsimol ze ak zajdes do BigInteger classu taketo veci tam priamo su. A je tam aj metoda isProbablyPrime, ktora bude zrejem fungovat na tomto principe. Dokonca je tam aj metoda powMod() co som do pisania tejto metody nevedel :D.

sleepy
Matematika › Příklady s kombinatoriky
13. 11. 2013   #183816

Oni podla mna v tom druhom priklade tim n chcu n nad nieco {3,4}, vtedy je vysledok 4 teda po a.

sleepy
Java › Console in java
13. 11. 2013   #183815

Hmm to vyzera dobre, ale nechcel som nieco co my emuluje javu, chcel som nieco uplne simlpe, ale aspon sa mozem pozret ako to funguje, velmi pekne dakujem.

sleepy
Java › Console in java
10. 11. 2013   #183662

Dobry podvecer vo spolok prajem. Ako uz nazov naznacuje, chcem sa opytat ci neveiete (nestretli ste sa, nepracujete s(na), ...) o nejakej peknej kniznici pre javu, ktora by zobrala vstup: String, sparsovala a vytvorila k nemu comand-y (interface) a ich argumenty. Samozrejme commandy by som si napisal sam. Jednoducho by som napisal vstup, v zmysle syntaxe danej konzoly (jazyka, ..., a neviem coho ineho), asi nejako takto: "cmd arg arg arg cmd2 arg cmd3 cmd4 arg arg" Ono by sa to sparsovalo a vyplulo by mi to nieco taketo -> output =  cmd(arg, arg, arg, cmd2(arg, cmd3(cmd4.execute(), arg).execute() ).execute() ).execute(). Alebo by mi to vytvorilo strom z tych commandov a argumentov. Nieco ako funguje v linuxe shell (Nemusi sa v tom zrovna dat programovat, len aby to dokazalo sparsovat takyto string). A este by bolo dobre keby to vedelo zvalidovat ten vstup a pripadne vyhodit nejaku chybovu hlasku s objektom Tu (oznacujucim poziciu v stringu, moze to byt aj int).

sleepy
Java › Posloupnost zakončená nulou
10. 11. 2013   #183649

#10 Flowy
Tu je odpoved na tvoju otazku http://cs.wikipedia.org/wiki/P%C5%99estupn%C3%BD_rok.

Ten if sa da zapisat aj takto, btw mas tam jednu podmienku navyse v tom else (dva krat kontrolujes to iste):

if (rok % 4 == 0 && (rok % 100 != 0 || rok % 400 == 0) ) {
	prestupny++;
} else {
	neprestupny++;
}

A tak ma napadlo ze ak chces spocitat pocet prestupnych rokov od nejakeho roku (0 alebo 1584(teda ak uz bol uznany za prestupny, vychadzat to vychadza)). Staci od roku do ktoreho chces pocitat pocet prestupnych rokov odpocitat 0 (1584) a s  tymto nasledne narabat: 

y = rok - 0 (1584)

pocetPrestupnych = 1 + [y / 4] - [y / 100] +  [y / 400] // to je dolna cela 
							// cast po deleni alebo 
							// normalen celociselne 
							// delenie

skusal som to mne to vychadzalo, ale lepsie si to prejist ak to pouzijes. Alebo cyklus cez tie jednotlive roky, neni ich tak vela.

sleepy
Hardware › Myš sa sama hýbe
8. 11. 2013   #183572

Neveim, ale skusim hadat preco som videl zopar mysi blbnut, mohol by to byt poltergeist, alebo spatna podlozka. Cize moja rada znie pod dohladom exorcistu skusit mysku polozit na inu podlozku (iny material). 

sleepy
Matematika › Xta odmocnina z Y
7. 11. 2013   #183461

Tak isto je to 1/x mocnina y. Teda ak chces 0.5 odmocninu z y tak to vypocitats aj na prstoch. Staci uz len vediet ako sa vypocita a ^ b pre lub a, b. a Vies aj ako sa pocita odmocnina, samozrejme na trosicka mensom Df(a,b) {a >= 0(nie vzdy napriklad pre b=1,3,5,...,2*n+1, to vies pocitat odmocniny jednoznacne), b!=0}

sleepy
Java › double exponent
31. 10. 2013   #183062

#10 KIIV
nie jedine, ale asi jedny pouzitelny neviem ako dobre konverguje exp. Ale pre cisla blizke 0 to pojde pekne. V podstate staci vyuzit co si napisal ty s tym ze exp(y*ln(x))=exp(m)*exp(z), kde m je cele a z je nieco blizke 0, toto asi pojde odost rychlejsie ako to co chcem uviest. Ale kedysi davno som rozsiril, algoritmus o to co sa deje za desatinou ciarkou. Asi je to nevyhodnejsie, lebo tam treba pociatat vela odmocnin. Ale da sa to. Konkretne tak ze som si povedal ze nech je bin cislo zapisane takto: b_0 * 2^0 + b_1*2^1 + ... + b_n * 2 ^n + b_(-1) * 2^(-1) + ... + b_(-m) * 2^(-m), b je z {0,1}. A kedze vyssie uvedena rovnica sa da napisat: pow(a,n) = a^n = a^bin(n) = a^(b_0 * 2^0 + b_1*2^1 + ... + b_n * 2 ^n) = a^(b_0 * 2^0) * a^(b_1*2^1) * ... * a ^( b_n * 2 ^n), tak som to len doplnil o tu cast za desatinou ciarkou, kde ak sa dosadi zaporne cislo tak dostavas 1/2^k, k je z {0,...,n} co je vyjadrenie 2^k odmocniny. 2^k odmocninu som pocital ako odmocninu z 2^(k-1) odmocniny cize znova to iste ako pri tom umocnovani. A cuduj sa svete fungovalo to a davalo to dobre vysledky. :D

sleepy
Java › double exponent
31. 10. 2013   #183060

#4 ingiraxo
Casovo narocnejsie mi to pride, ale aj jednoduchie. No ale ten tvoj algoritmus take zvrholosti ako pow (1. - 1/10^9, 10^9); bude pocitat nejaku tu chvylku. Moj na to potrebuje konstantny cas.

sleepy
Java › double exponent
31. 10. 2013   #183059

#4 ingiraxo
ano myslim to vazne a nie nevyde. Nieje to dobre napisane, ale princip v tom je, troska sa mi tam priplietla python syntax. Na a nepozeraj to je nezauimave, zauimave je iba out. a to vide spravne

sleepy
Java › metoda boolean
31. 10. 2013   #183042

tiez je moznost to ulozit do setu:

Set<String> centralEurope = ... // set nazvov statou s malimy pismenami

public boolean isInCentralEurope(String country) {
	return centralEurope.contians(country.toLowerCase());
}

Timto ta nenabadam aby si to takto robil, iba ukazujem troska iny, uhladnejsi, zapis, ako sa to tiez da, a je to z mensou zlozitostou (ak je Hash tak O(1) ak tree tak O (log(n)))

sleepy
Java › double exponent
31. 10. 2013   #183041

Alebo skorej nieco taketo ze ak mas cislo reprezentovane v bin (exponentu) tak staci vzdy vynasobit cislo samo zo sebou a ak je 1 tak ho potom vynasobit zakladom. Asi takto pow(3.1415297,5) = pow (a,0x101) = 1*a * ( 0 * a^2) + 1*(a^4). Cize ti staci robit take nieco:

public static void pow(double a, int b) {
	double out = 1.;
	for(int i=0; i<32; i++) { // viac ako 32 iteracii nepotrebujes
		if(b%2) {
			out *= a;
		}
		b /=2;
		a *= a;
	}
	return out;
}
sleepy
Java › Kreslení a překreslení
29. 10. 2013   #182972

No a ten Override ma hadzat chybu, ak sa dana metoda (s rovankou signaturou) nenachadza nikde v jej nattriedach prip. interfacoch. No a v tomto pripade nic ako paint(Graphics2D g2d) neexistuje teda to hodilo chybu a to bolo pointou co som sa ti snazil povedat. No a s tym prekreslovanim to urob ako je to v tom priklade, skusal som to funguje to takze to musi fungovat aj tebe.

sleepy
Java › Kreslení a překreslení
29. 10. 2013   #182971

Pardon v componentoch nic ako flush neexistuje, ten sa nahcadza v image ...  to asi keby si pouzival doublebuffering (to ta teraz nemusi zauimat). Ale k veci, v tom painte volas v tvojom kode super.paint(Graphics g) teda tu pretazenu metodu? Lebo ta najskor vymaze cely obsah vykresli okno (komponentu, teda JPanel) a az za tym kreslis co chces ty. Presne ako to mam v kode co som ti poslal, konkretne class JCanvas. Za tym super.paint(g) ide hoc co co ches nakreslit. Tak este raz: 

import java.awt.Graphics;

import javax.swing.JPanel;

public class JCanvas extends JPanel {

    /**
     * 
     */
    private static final long serialVersionUID = 3060757030831662850L;

    private Drawable drawable;
    // rovnako mozes Overridnut paintComponent(Graphics g)
    
    @Override
    public void paint(final Graphics g) {
	super.paint(g); // treba volat aj toto super.paint(g)
	// tu napis co chces kreslit ja som
	// tu dal ze sa ma nakreslit object drawable
	this.drawable.draw(g);
    }
    
    // toto je mnou definovana metoda dolezite je len to co sadeje v paint(g)
    public void setDrawable(final Drawable d) {
	this.drawable = d;
    }
}

A tu je to s pohybujucim sa obrazkom:

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class Square implements Drawable {

    public int width;
    public int x, y;
    private final BufferedImage img;

    public Square(final int initX, final int initY, final int width) {
	this.x = initX;
	this.y = initY;
	this.width = width;
	// tuto cast si nevsimaj len sa snazim nacpat vacsi obrazok do mensieho
	this.img = new BufferedImage(width, width, BufferedImage.TYPE_INT_ARGB);
	try {
	    final BufferedImage im = ImageIO.read(new File(
		    "/cesta/k/obrazku/icons/page-add-icon.png"));
	    final Graphics g = this.img.getGraphics();
	    g.drawImage(im, 0, 0, this.img.getWidth(), this.img.getHeight(), 0,
		    0, im.getWidth(), im.getHeight(), null);
	    g.dispose();
	} catch (final IOException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
    }

    @Override
    public void draw(final Graphics g) {
	// TODO Auto-generated method stub
	g.drawImage(this.img, this.x, this.y, null);
    }

    public void moveBottom(final int step) {
	this.y += step;
    }

    public void moveLeft(final int step) {
	this.x += step;
    }

    public void moveRight(final int step) {
	this.x -= step;
    }

    public void moveTop(final int step) {
	this.y -= step;
    }

}
sleepy
Java › Kreslení a překreslení
28. 10. 2013   #182882

Jaj pockaj ty mas problem s tym ze sa ti obrazok vykresli na novo ale neprekresli? Toto lepsie definuj co to znamena. Ze nezmizne ten povodny? (Staci zavolat flush). Tu je na co je ten override ktory som ti radil: http://docs.oracle.com/javase/7/docs/api/java/lang/Override.html. Ten mal pri paint(Graphics2D g2d) generovat chybove hlasky.

sleepy
Java › Kreslení a překreslení
28. 10. 2013   #182881

btw prehodil som omylom strany left a right.

sleepy
Java › Kreslení a překreslení
28. 10. 2013   #182880

Tu je ukazka co som teraz urobil na rychlo urobil. Navrh je uplne zly ten nekopiruj, radsej si premisli ako by to bolo lepsie navrhnut. Ale mozno si v tom najdes svoju chybu:

// samotna animacia je to sice len stvorcek ale zamenou za image budes prekreslovat obrazok

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.Timer;

public class SimpleRepaint {
    public static void main(final String[] arg) throws InterruptedException {
	new SimpleRepaint();

    }

    JFrame frame;
    JCanvas canvas;
    Square sq;

    int timeSlice = 100;

    public SimpleRepaint() throws InterruptedException {
	this.frame = new JFrame("Simple repaint");
	this.frame.setSize(800, 600);
	this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	this.canvas = new JCanvas();
	this.sq = new Square(10, 10, 50);
	this.canvas.setDrawable(this.sq);
	this.frame.add(this.canvas);
	this.frame.setVisible(true);
	final Timer animationTimer = new Timer(this.timeSlice,
		new ActionListener() {
		    @Override
		    public void actionPerformed(final ActionEvent e) {
			SimpleRepaint.this.sq.moveLeft(5);
			SimpleRepaint.this.canvas.repaint();
		    }

		});
	animationTimer.start();
	Thread.sleep(10000);
	animationTimer.stop();
    }
}

// plocha kde sa kresli canvas
import java.awt.Graphics;

import javax.swing.JPanel;

public class JCanvas extends JPanel {

    /**
     * 
     */
    private static final long serialVersionUID = 3060757030831662850L;

    private Drawable drawable;

    @Override
    public void paint(final Graphics g) {
	super.paint(g);
	this.drawable.draw(g);
    }

    public void setDrawable(final Drawable d) {
	this.drawable = d;
    }
}

// interface toho co sa ma vykreslit

import java.awt.Graphics;

public interface Drawable {
    public void draw(Graphics g);
}

// objekt stvorca ktory sa da vykreslit

import java.awt.Color;
import java.awt.Graphics;

public class Square implements Drawable {

    public int width;
    public int x, y;

    public Square(final int initX, final int initY, final int width) {
	this.x = initX;
	this.y = initY;
	this.width = width;
    }

    @Override
    public void draw(final Graphics g) {
	// TODO Auto-generated method stub
	g.setColor(Color.red);
	g.drawRect(this.x, this.y, 50, 50);
    }

    public void moveBottom(final int step) {
	this.y += step;
    }

    public void moveLeft(final int step) {
	this.x += step;
    }

    public void moveRight(final int step) {
	this.x -= step;
    }

    public void moveTop(final int step) {
	this.y -= step;
    }

}

sleepy
Java › Kreslení a překreslení
28. 10. 2013   #182875

To co ty pouzivas je signatura nejakej uplne inej metody paint(Graphics2D g2d), v podstate tebou definovanej. Paint je v swingu a awt len paint(Graphics g). Skus si nad paint napisat @Override anotaciu a uvidis ze ti bude eclipse, alebo kompilator nadavat. Cize asi by si mohol pouzit skor nieco taketo:

public void paint(Graphics g) {
	g.drawImage(img, x,y,w,h,null);
}

Ak chces sila mocou Graphics2D (aj ked Shape nepouzivas v tvojom kode) tak potom niekde do kodu kde to planujes pouzit capni.

Graphics2D g2d = (Graphics2D) g;

A ak budes chciet nakoniec aj nieco skutocne riesit co sa ma prekreslovat, tak si precitaj nieco o doublebufferingu a volatileimage (ten je akcelerovany) + pohladat nieco po googli ja uz si toho vela nepamatam.

sleepy
Java › vysvětlení panitComponent(Gr…
24. 10. 2013   #182766

#1 felix
neviem na co tam mas render ani na co tam mas loop (nic sa tam nehybe, a minimalizaciu a maximalizaciu si swing riesi vnutorne). Ale ten paintComponent najskor vykresli vsetko co sa v danom componente nachadza a potom vyplni stvorec ((10,10);(10,20);(20,20);(20,20)). Rozdiel medzi akymi kodmi? Dobre je ho pouzit vsade kde potrebujes vykreslit stvorec do JComponentu.

sleepy
Java › Abeceda pes metody
23. 10. 2013   #182709

#6 ingiraxo
Tak uvazujem, ze na co tu mapu ked to este raz musis zoradit. Ale ano TreeMapa je vhodny kandidat, alebo TreeSet (V podstate TreeMap) ale nepokusaj sa overridovat equals, to by ti char-y, ktore tam mas viac krat vyhadzalo do prec. Ale tu je este jedno menej pamatovo narocne riesenie:

String veta = .....
char[] charr = veta.toCharArray();
Arrays.sort(charr);
// a znaky mas zosortene charr podla abecedy

Linky:

http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html.
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

sleepy
Java › Java ukol
23. 10. 2013   #182690

#3 tolean
Ak uzivatel zada n-1 z n cisel ktore chce scitat a porovnat zo zvysnim tak jednoducho. Nech s je sucet vsetkych indexov s = 0 + 1 + 2 + ... + n-1 + n. V tvojom pripade je s = 0+1+2+3 = 6. A uzivatel zada idexi (pos[0], pos[1], pos[2], ..., pos[n-2], pos[n-1]). Tak scitanim S = pos[0] + pos[1] + ... + pos[n-1] a naslednymodpocitanim dostanes index, ktory nebol uzivatelom zadany teda (nezadany_index = s - S). Ak mas vsetko v dvoch poliach ako pises tak ti staci:

int s=6 // prip to mozes vypocitat v zavislosti od poctu zadanych prvkou
double[] values = ... // pole kde su cisla
int[] pos = ... // pole indexov zadanych uzivatelom
double sum = 0.
int remaining = s;
for (int k = 0; k < pos.length - 1; k++ ) {
	sum = sum + values[pos[k]];
	remaining = remaining - pos[k];
}

// a porovnanie
sum > values[remaining];

 

 

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