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 213.215.67.–

sleepy
Matematika › Úloha na Vennovy diagramy
17. 12. 2013   #185348

Sucet elementov vo venovom diagrame je K + I + B - K&I -K&B - I&B + K&I&B = 23;

K=8; I=9; B=6; K&I&B=2; K&B=1; K&I=2 => 23 - 8 - 9 - 6 - 2 + 1 + 2 = I&B = 1; => (c=2, a=4, b=1)

sleepy
C / C++ › Dynamická alokace paměti ve…
14. 12. 2013   #185267

Nvyznam sa velmi do c, ale preco alokujes o 1 bit viac ako potrebujes? Nemoze byt problem s niecim ako zarovnanie pamate? Kedze pre pristup potrebujes prenasobit index velkostou daneho typu.

sleepy
Java › Spustenie novej hry cez JBut…
2. 11. 2013   #183138

Vobec nerozumiem tomu kodu co si napisal, netvrdim ze to mas nutne zle, ale chcel by som vidiet viac, lebo podla mna tam mas syntakticku chybu. Typujem ze premennu hra nemas inicializovanu. Podla vsetkoeho to chces z nejakeho dovodu pisat podla mna takto:

class NovaHra { // tu si niesom isty preco je nova hra objektom ked uz je objektom samotna hra

private Pong hra;

public NovaHra(){
	hra = new Pong(); // typujem ze toto nemas, ale pravdou je ze v tom co si napisal sa vobec nevyznam
}

public void crGui() {
	JButton newGame = new JButton();
	newGame.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			hra.initGame();
		}
	});
}

}

ak to chces spravit ako facotry metodu, z nejakeho dovodu, tak initGame daj static a return type daj Pong.

rudolf
Java › String - EveryThird
13. 9. 2013   #181344

Doplietol som to, ale na to uz si zrejme prisiel:

for(int i=0; i < key.length(); i++){
	sb.append(key.charAt(i));
}

rudolf
Java › online uložené promněné
13. 9. 2013   #181343

Tak zalezi co chces mat ulozene, bud (asi vo vacsine pripadov pouzijes db ako bolo vyssie spomenute), alebo si napises server a klienta a server sa bude starat o tvoje premenne ulozene niekde na danej stanici.

Java › TCP komunikace a přístup do…
31. 5. 2013   #177047

Skus to nerobit cele staticke a rozdel to na 2 vlakna jedno co zapisuje do Socketu a druhe co z neho cita. Co som si vsimol u teba, tak program celu dobu iba caka na prijem spravy. Cize pokial ti niekto nieco neposle ty mu tiez nic neposles. Ak robis nieco ako echo server, ktory musi najskor nieco priat az potom nieco posle spat, tak ti to nepojde, myslim ze informatici tomu hovoria deadlock. Tu som napisal nieco, ako by som postupoval ja, nieje to dokonale a neskusal som to, ale mohlo by to s drobnymi upravami fungovat (a samozrejme s dopisanim kodu :D ). A malo by to posielat z lubovolneho vlakan, ktore ma referenciu na objekt Connection.

public class Connection{
	private booelan connected = false;
	private Socket connectionSocket = null;
	private MyReader reader = null;
	private MyWriter writer = null;
	private Thread readerThread = null;
	private Thread writerThread = null;
	
	public Connection(String ip, int port){
		connectTo(ip, port);
	}

	public void close(){
		// uzavret porty
		// a zastavit reader a writer
	}
	
	public void sendMsg(String msg){
		writer.writeMsg(msg);
	}

	public Socket getSocket(){
		return this.socket;
	}

	public String recieveMsg(){
		return reader.readMsg();
	}

	public synchronized boolean isConnected(){
		return connected;
	}

	private synchronized void setConnected(boolean connected){
		this.connected = connected;
	}

	public void connectTo(String ip, int port){
		try {       
			Socket client=new Socket(host,port);
			setConnected(true);
			reader = new MyReader(this);
			readerThread = new Thread(reader);
			readerThread.start();
			writer = new MyWriter(this);
			writerThread = new Thread(writer);
			writerThread.start();
            	}
		catch(IOException ioe){
			// odhitit a spracovat vynimku
		}
		catch(UnknownHostException uhe){
			// odhitit a spracovat vynimku
		}
	}
}

public class MsgReader implements Runnable{
	private BufferedReader reader;
	private Connection connection;
	private Thread currentThread = null;
	private String msg = null;
	private boolean recieved = false;
	
	public MsgReader(Connection connection){
		this.connection = connection;
		reader = new BufferedReader(new InputStreamReader(connection.getSocket()));
	}	

	public void run(){
		try{
			while(connection.isConnected()){
				String msg = reader.readLine(); // Zda sa mi ze sa blokuje do vtedy pokial nieje ready
				setMessage(msg);
			}
		}	
	}

	private synchornized setMessage(String msg){
		recieved = true;
		this.msg = msg;
	}

	private synchronized getMessage(){
		recieved = false;
		return this.msg;
	}

	private synchornized isRecieved(){
		return this.recieved;
	}

	public String readMsg() throws InterruptedException{
		currentThread = System.currentThread();
		while(!isRecieved()){
			currentThread.wait();
		}
		return getMessage();
	}

	public void close(){
		currentThread.intrrupt();
		currentThread = null;
		reader.close();
	}
}

public class MyWriter implements Runnable{
	// podobne ako reader
}
Java › vkládání do JListu
31. 5. 2013   #177040

Ahoj, mozno si si to uz vsimol, ale ty mas listModel, ktory vobec nema referenciu v JListe, ktory si prave nacital. Takze mas niekolko moznosti ako to vyriesit. bud z toho nahraneho JListu si vitiahnes jeho ListModel ( getModel() ). Alebo to nebudes ukladat, ako JList ale ako nejkau inu kolekciu a JList si za kazdym vytvoris.

Riesenie 1:

panelHorni = new JPanel();

JList listCtenaru = null;
ListModel listModel = null;

listScroll = new JScrollPane()

FileInputStream fis = new FileInputStream("myjlist.bin");
ObjectInputStream ois = new ObjectInputStream(fis);
try{ 

	listCtenaru = (JList)ois.readObject();
	listModel = listCtenaru.getModel();
}
catch(IOExceptio ioe){
// toto je ked nieco nebude fungovat, aby nedol listCtenaru a listModel nastavene na null
	ioe.printStackTrace();
	listModel = new DefaultListModel();
	listCtenaru = new JList(listModel);
}
catch(ClassNotFoundExceptio cce){
	cnfe.printStackTrace();
	listModel = new DefaultListModel();
	listCtenaru = new JList(listModel);
}

listScroll.add(listCtenaru);
// dalej to pokracuej normalen ako to mas

Riesenie 2:

// Pozor tato metoda neprecita ten subor co mas ty, lebo ty tam mas uplne iny Object
// Na to treba vytvorit iny subor.
public ArrayList<String> loadData(String fileName){
	ArrayList<String> data = null;
	try{
		ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(fileName)));
		try{
			data = (ArrayList<String>) ois.readObject();
		}
		finally{
			ois.close();
		}
		
	}
	catch(IOException ioe){
		ioe.printStackTrace();
		data = new ArrayList<String>();
	}
	catch(ClassNotFoundException cnfe){
		cnfe.printStackTrace();
		data = new ArrayList<String>();
	}
}

public void saveData(String fileName, ArrayList<String> data){
	if(data == null)
		return;
	try{
		ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(fileName));
		try{
			oos.writeObject(data);
		}
		finally{
			oos.close();
		}
	}
	catch(IOException ioe){
		ioe.printStackTrace();
	}
}

JPanel panelHorni = new JPanel();
JListModel listModel = new JListMode();
JList list = new JList(listModel);

for(String readerName : loadData("citatelia.txt")){
	listModel.add(readerName);
}
// a tak dalej
Java › šifrování
31. 5. 2013   #177037
Java › Tahání dat z otevřeného vlákna
30. 5. 2013   #176989

Alebo mapisat metodu, ktora ti vrati aktualnu hodnotu, pozor treba ju synchronizovat.

class MyClass implements Runnable{
	public int counter;
	
	public MyClass(){
		counter = 0;
	}

	public void run(){
		// cyklus a v nom je niekde counter
		// kod 
	}

	public int synchronized getCount(){
		return counter;
	}
}


MyClass runableClass = new MyClass();
Thread thread = new Thread(runnableClass);
thread.start();

// v nejakom vlakne ktore ma referenciu na runnableClass

int currentState = runnableClass.getCount(); 

Alebo ako je vyssie spomenute mozes pouzit Observery, Listenery a ine ery... co len chces a ako len chces.

Java › Graphics2D .create(int, int,…
29. 5. 2013   #176939

Neviem ci je tam metoda na vymedzenie a ak inc nenajdes mozes skusit nieco na tento sposob. Ze si vytvoris buffer a kreslis do neho:

Point selectionPosition = ...;
BufferedImage backBuffer = ...;
BufferedImage selctionBuffer = ...; // Ma presne tu istu velkost ako oblast

public Rectangle makeSelection(int x, int y, int w, int h){
	selectionPosition = new Point(x,y);
	selectionBuffer = backBuffer.getSubimage(x,y,w,h);
}

public void paintComponent(Graphics g){
	render()
	g.drawImage(backBuffer,0,0,null);
	g.disopose();
}

public void render(){
	Graphics g = backBuffer.getGraphics();
	// kod toho co sa kresli v komponente
	// pripadne sa to vobec nemusi prekreslovat ak netreba
	if(selectionBuffer!=null){
		renderSelection();
		g.drawImage(slectionBuffer, selectionPosition.x, selectionPosition.y,null);
	}
	g.dispose();
}

public void renderSelection(){
	int x = recalculate();
	Graphics g = selectionBuffer.getGraphics();
	// kreslis do vybranej oblasti.
	g.dispose();
}

Aha, az teraz som si vsimol, ze si si vobec nevytvoril referenciu na ten novo vytvoreny object a stale pouzivas iba ten povodny, ktory nieje vymedzeny. Tu je riesenie, ktore mozno bude fungovat:

public void paint(Graphics g){
  Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  super.paint(g);
  Graphics slectionGraphics = g.create(203, 80, screenSize.width-203,screenSize.height-80);
// Teraz kreslis do selectionGraphics.
// slectionGraphics.drawLine(0,10,100,10);
  ...
}
Java › Odkaz na objekt ve 2dGraphics
5. 5. 2013   #175816

#2 Flowy
Objekt Graphics nepozna metodu fill(Shape s) na to treba pouzit Graphics2D. A navyse Rectangle ani Shape-om neni treba pouzit Rectangle2D.

#1 Jan Vesely
Prilis malo informacie si zadal, mozes to robit teda, ako Flowy naznacuje, alebo ak mas niekde ulozene ako ma ten rectangle vyzerat, resp co do neho nakreslit, atd... . Mozes to robit nasledovne :

// Nejaky object Canvasu
public void update(Graphics g){
	// nejaky kod
	rectangle.draw(g);
	// iny kod
}

// Tu konci
class MyRectangle{
	// premenne
	

	// konstruktory


	// metody

	public void draw(Graphics g){
		// Ak je fillOnly nastavene na true tak sa pouzije iba metoda g.fillRect
		if(!fillOnly){
			g.drawRect(x, y, w, h);
			g.fillRect(x,y,w,h);
			g.drawText(text, x, y);
		}
		else{
			g.fillRect(x,y,w,h);
		}
		
	}
}

Java › obsah proměnné je proměnná
4. 5. 2013   #175796

#9 jabupe
Ty len nevies ze v skutocnosti chces pouzit mapu. Alebo ako to neskor popisujes, chces Set naplnenny objektami ktore si drzia meno premennej a referenciu na nu. Daj si pozor na prepisanie equals, aj ked si myslim ze je to blbost a v skutocnosti chces uz niekolko krat spomenutu mapu.

Offtopic › Elektromagnet a teleso(nároč…
30. 3. 2013   #174129

Sak jednoducho potrebujes len nekonecne dlhu nabitu platnu s urcitou hustotou nabija, na vyrusenie gravitacneho pola, urcite nie taku kocku ako si nakreslil, ta nema take pole ako ty potrebujes. Popravde nechapem preco elektromagnet? No a potom potrebujes velmi slabucko nabitu sferu, jednoduche je spocitat ako velmi nabytu pri akej uhlovej rychlosti a v akej vzdialenosti.

OS - GNU / Linux › Web terminál
31. 12. 2012   #169611

A ssh si skusal?

Offtopic › Ako cestovat vakuom
25. 12. 2012   #169300

#5 Gulam

Este je dolezite aby sa ti hybnost zachovavala (pozri aj Ciolkovskeho rovnicu). Dovod lebo ak stojis tak v tom stave zostanes, ak na teba nezaposobi nieco ine (To je tiez jedna zo skrytych fint klasickej mechaniky). V pripade rakety posobys na plyn ktory vymrstujes von nejakou rychlostou a ma nejaky objem, teda hybnost a ta je rovna hybnosti tvojej rakety. (MV)=(mv)

Ale ako som napisal, staci sa stat elmag. vlnou a budes si to svistat bez paliva po celom vesmire s celkom slusnou rychlostou, a z tvojho pohladu budes v najvzdialenejsom kute glalaxie okamzite (malo by tam fungovat nieco s tym ze vsetky udalosti nastavaju naraz.) ;)

Offtopic › Ako cestovat vakuom
23. 12. 2012   #169256
Java › Java random čisiel
16. 12. 2012   #169026

Aha takze nic som nenapisal existuje metoda pre list Collections.shuffle(List<T> list).

Java › Java random čisiel
16. 12. 2012   #169025

Sak si vytvor, ArrayList o velkosti n a taky ze tam nahadzes vsetky znaky. Teraz budes volat vzdy funkciu random() ktora ti nejakym sposobom bude davat cisla {0,1,2,3,...,n-k-1}, kde k je uz pocet vypisanych cisel do nejakeho noveho arraylistu do ktoreho ich budes kopirovat ale uz so zmenenym poradim. A nemusis mat ziadnu kontrolu nicoho, lebo neexistuje moznost ako by sa ti mohli opakovat ak sa ti neopakovali na zaciatku.

public List<Integer> createList(int size){
	List<Integer> sList = new LinkedList<Integer>();
	List<Integer> oList = new ArrayList<Integer>(size);
	for(int i=0; i<size; i++){
		sList.add(new Integer(i));
	}
	Random r = new Random();
	for(int j=0; j<size; j++){
		int k = r.nextInt(size - j);
		oList.add(sList.remove(k)); // Z linkedlistu ti to bude vzdy tie
					//prvky vyhadzovat a zapisovat ich do ArrayListu
	}
	return oList;
}
Java › Jak z "List<Integer> pole" u…
16. 12. 2012   #169024

#2 ingiraxo
aha pardon ten zvysok po prvej vete uz patril K4BIOs

Java › Jak z "List<Integer> pole" u…
16. 12. 2012   #169023

#2 ingiraxo
neviem ci ti to z nahody nevytvori pole Objektov Integer. Mozno nie, mozno na to existuje nejaka kniznica. Ja by sim si vypital velkost listu: list.size(). Spravil rovnako velke pole int[] primInt a zapisal do kazdej bunky patricnu hodnotu: primInt[index] = list.get(index).intValue(). Do arraylistu primitivnu premennu neulozis => nebude fungvat list.add(3), ked tak list.add(new Integer(3));

Java › Program pre Javu
10. 11. 2012   #166342

Staci ti aj notepad, ale hlavne aby si mal nainstalovane jdk.

Matematika › pythagorova veta zakladni šk…
9. 11. 2012   #166303

#3 CHARGER

Som si trocha zmenil zadanie. No tak skusim toto:
1.) Vies ze stvorec ma dlzku vsetkych stran rovnaku oznacme ju a;

2.) Zoberme tvoj trojuholnik vo vnutri tohto stvorca (trojuholnik BCD' ) D' deli stranu AD na polovicu. A urobme vysku na stranu BC (je to kolmica k niektorej strane a prechadza protilalhlim vrcholom). Teraz tato vyska vychadza z nejakeho bodu oznacme ho B' . Vies ze tato vyska ked je kolma na stranu BC je kolma aj na stranu AD a je rovnobezna so stranami AB a CD, takze ma velkost prave a co je dlzka strany trojuholnika.

3.) Kruznica je mnozina bodov rovnako vzdialenych od stredu v rovine. Z toho vyplyva ze vsetky vrcholi opisovaneho trojuholnika musia byt rovanko vzdialene od jej stredu. A z toho ze trojuholnik je osovo symetricky voci osi prechadzajucej B'D', vyplyva ze stred S bude lezat niekde na usecke B'D' (skus si to nakreslit).

4.) nech polomer kruznice opisujucej trojuholnik je R. Dlzka usecky B'D' (teda tej vysky trojuholnika) je R + ua teda R + u = a, lebo aj od tohto vrchola je stred S vzdialeny o R. Lenze tak isto je vzdialeny o R aj od ostatnych vrcholov a vieme, ze B'D' je kolme na BC. Lenze ak stred je vzdialeny od bodu D' o R tak potom strana BC (ta na druhej strane) je od stredu S vzdialena prave o u. BC je stranou B'D' rozdeleny na polovicu. Vieme ze trojuholnik B'SC je pravouhly a ta isto vieme ze R = vlekosti SC, u = velkosti B'S, a B'C je rovne a/2. Z toho vznikne rovnica:
R^2 = u^2 + (a/2)^2

5.) dajme sa smelo do vypoctu:
pouzime vzorec 1. R+u =a
u = a - R
u^2 = (a - R)^2 = a^2 - 2aR + R^2 // inak to ^2 znamena na druhu napr. R^2 = R*R

dosadme do druheho vzorca za u, to nas nezauima:

R^2 = a^2 - 2aR + R^2 +(a^2)/4 // tu uz som umocnil a/2 je to a na druhu deleno 4

2aR = a^2 (4+1)/4 // tu som od oboch stran odpocital R^2, 2aR som dal na druhu stranu a scital som (1+1/4)a^2 inak

// ako nasobenie nepisem medzi znakmi nic

R = (5/8) a  // uz som len celu rovnicu predelil 2a

Dufam ze pochopis co mam na mysli ;) . Tu je obrazok:
 

Java › Java - seriovy port
5. 11. 2012   #165926

#11 tux.martin
nechal si to bezat aspon 5 sekund?

Java › Java - seriovy port
5. 11. 2012   #165925

skus to slusne obzatvorkovat a dopis tam:

if (len > 0) {
	nacteno += new String(buffer, 0, len);
	System.out.println("Nacteno: " + nacteno);
 
}
else
{
	try {
		Thread.sleep(50);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
}
if ((System.currentTimeMillis() - start) > 5000)
	break;

alebo nepuzivaj toto ale sprav to ako predtym ale vo while musi byt ina podmienka, lebo vyzera ze "length" odosiela spravne:

// tento riadok
while ((len = this.in.read(buffer)) == -1) 
// nahrad
while ((len = this.in.read(buffer)) != -1)

ono by to malo fungovat spravne. A metoda read(byte[] a) by mala cakta dovtedy pokial nieco nedorazia nejake data. Inak vwlmi sa ospravedlunujem, ze som si nevsimol u teba == a potom som ta nevedomky plietol.

Matematika › nuklearna fuzia
5. 10. 2012   #164210

#7 Pete
Lebo m-kom samotnym nic nenasobim, m znamena hmotnost a to T,D,He,N su len indexy. Asi som to nie uplne najlepsie napisal, takze este raz:
E=(m_{T}+m_{D}-m_{He}-m_{N})*c^2

OS - GNU / Linux › XFCE - permanentní nastavení…
12. 9. 2012   #163046

Stale mozes vytvorit /etc/X11/xorg.conf v ktorom si nastavis rozlisenia (ktory sa v dnesnej dobe KMS uz nepouziva). Pripadne ak mas nvidiu a mas nainstalovany nvidia-settings, tak tam mas na to klikatko ;) .

Ale co ti budem hovorit tu mas okrem vyssie spomenutych este dalsie 2 moznosti: https://wiki.ubuntu.com/X/Config/Resolution/

Java › Ubuntu - detekce odkazu
4. 8. 2012   #161075
Java › jednoduchá nefunkční metoda…
3. 8. 2012   #161034

#5 johhan
to ti nepomoze znova ti to vrati v tvare int ... . Cize ked budes mat 3 otazkovy a 2 spravne tak budes mat 66.0% aj ked by si odcakaval 66.66666% co by mala byt aj spravna odpoved. Vhodne je este pred samotnou operaciu delenia mat aspon jednu z hodnot ulozenu ako float.

...
public static float vypocetHodnotenia(ina pocetOtazok, int pocetSpravnychOdpovedi){
	return (float) pocetSpravnychOdpovedi / pocetOtazok * 100; // Som jave povedal ze si ma premennu ulozit ako float a tak sa k nej spravat
}
...
// pripadne sa to da aj
public static float vypocetHodnotenia(ina pocetOtazok, int pocetSpravnychOdpovedi){
	return 100. * pocetSpravnychOdpovedi / pocetOtazok; // tu si znova medzivypocet 100. * pocetSpravnychOdpovedi ulozit ako float a potom znova deli float integerom co si ulozi ako float
}
Java › GUI - pro hru
31. 7. 2012   #160881

A co takto vytvorit objekt Label, ktory sa ti vykresli priamo do obrazka (pouzil by som VolatileImage ak sa to bude velmi casto prekreslovat) a obrazok(VolatileImage, BufferedImage) potom vykreslis do daneho JComponentu (Canvasu) pomocou Objektu Graphics, myslim ze sa tomu hovori double buffering.

To vykreslenie Labelov spravis velmi jednoducho a to tak ze si z obrazku vypytas objekt Graphics2D (Graphics) a do toho kreslis.
Sice to mozno pre tvoj pripad teraz nieje az tak nutne, ale moze sa stat ze budes chciet obrazko posuvat(res. sa cely nevlezie do okna a tak budes nuteny sa po nom presuvat) a navise, co je hlavne, tym odpada cely tvoj vyssie uvedeny problem a vzdialenosti budes pocitat uz iba na obrazku.

Nastuduj si nieco o knizniciach Graphics, Graphics2D, VolatileImage, DoubleBufferingu (BufferStrategy) atd...

Matematika › Vektory
12. 7. 2012   #160036

toto teda fakt neviem ako ta napadlo spravit ax*bx*cx + ay*by*cy ... ale je to hlupost, tak nic nevypocitas. Skalarny sucin je zavedeny medzi dvomi vektormi, nie tromi.
Treba to pocitat nasledovne:
r=a-b+c - to mas predpisane

r=[11; 5; -7] - stlpcovi vektor

pouzijes vektor osi z:
e_z = [0, 0, 1] - riadkovy vektor

alpha = ArcCos( e_z.r / (|r|*|e_z|) )

alpha = ArcCos(-7 / 13,96424...) = 120,08....

Java › Šance
21. 6. 2012   #159394

Podla mna je omnoho jednoduchsie si vytvorit take intervali ze {I1, I2, I3, ..., In} a ze <0,1> = I1 zjednotenie I2 ... In a pre kazde 1<= k,l <=n kde k != l plati: Ik prienik Il = 0. Ik bude predstavovat pravdepodobnost padnutia k-teho prvku (napr. p_k%). Potom spustis random() alebo inak vygenerujes nahodne cislo od <0,1>  (samozrejme s rovnomernim rozlozenim). To padne do urciteho intervalu ktoremu bude prisluchat urcite pismeno, cislo, Objekt. Cize by som to videl nasledovne:

.
.
.
public Object getRandObject(Object[] objs, double[] p){
	double skalovanie = spocitaj(p); //spocitam vsetky pravdepodobnosti dohromady
	p = skaluj(p,skalovanie); metoda ktora my to cele preskaluje aby sucet pravdepodobnosti bol 1.
	double[] interval = vytvorIntervaly(p);
	/*
	 * Metoda funguje tak ze interval[0]=0 interval[1]=p[0] interval[2]=p[1]+p[2] ... .
	 * To vytvori urcite hranice.
	 */
	double rand = Math.random(); // nahodne cislo mozes vygenerovat samozrejme aj inak 
					//alebo ho inak ziskat
	int i = indexIntervalu(interval, rand);
	// Metoda vrati index intervalu tak aby platilo interval[i]<= rand < interval[i+1]
	return objs[i]; //Vrati i-ty objekt, ktory mal urcitu pravdepodobnost ze sa vrati p[i]
}
.
.
.

Tie indexy este skontroluj, lebo som nad tym vemy neuvazoval. Za pripadne chyby, aj gramaticke, sa ospravedlnujem.

Java › prosím o radu
7. 4. 2012   #156216

Tak skus to takto, nech su oba objekty Rectangle2D, alebo ini java.awt.geom.* objekt a dany objekt obsahuje metodu intersects(...). Ak sa pretnu tak viez ze si zasiahol. Ospravedlnujem sa kod sa mi nechcelo stahovat a citat.

Java › ActionListener na JButton ne…
7. 4. 2012   #156209

Hmm a co takto implementovat ActionListener na cely Frame a potom overridnut jedinu metodu ActionPerformed(ActionEvent e) asi takto:

public class Xyz extends JFrame implements ActionListener {
	...
	JButton anoButton;
	JButton nieButton;
	...


	...	
	@Override
	public void ActionPerformed(ActionEvent e) {
		if (e.getSource().equals(anoButton)) {
			//co sa ma urobit
			...
		}
		if (e.getSource().equals(nieButton)) {
			//co sa ma v tomto pripade vykonat
			...
		}
	}
}
Java › nacitanie pola z inej triedy
18. 3. 2012   #155124

Mozes, ale musis najskor vediet kde sa to pole nachadza a samozrejme musi exisotvat. Cize bud odosles pointer na to pole priamo do B alebo aspon na A. Cize videl by som to asi takto:

// toto moze byt v hociakom classe, ale tako cez ktory budes pristupovat do programu
public static main(String arg[]){
	A a = new A(10);
	// vlozis nejaky text
	B b = new B(a);
	C c = new C(a.text);
	b.nacitaj(3);
	c.nacitaj(8);
}

class A {
	String[];
	
	public A(int n) {
		text = new String[n];
	}

	public void vlozText(String retzec){
		// nejaky kod na vkladanie
	}
}

class B {
	A a;
	public B(A a) {
		this.a = a;
	}
	
	public String nacitaj(int i) {
		return a.text[i];
	}
}

class C {
	String[] text;
	
	public C(String[] text) {
		this.text = text;
	}

	public String nacitaj(int i) {
		return text[i];
	}
}

pripadne ak by bolo pole String[] typu static tak mozes priamo a to A.text[i].

Java › Rekurze
9. 3. 2012   #154624

Jednoducho return caka na nieco co moze odoslat, co je v tomto pripade (fib(n-1)+fib(n-2)). Cize caka kym sa vypocita fib(n-1) a fib(n-2), spocita ich a odosle.

Inak pre o nieco malo rychlejsi vypocet clenov Fibbonacciho postupnosti existuje taky rekurentny vzorec : fib(n):=(1/sqrt(5))*(((1+sqrt(5))/2)^n+((1-sqrt(5))/2)^n)

Java › NetBeans Zaokrouhlení Čísla
6. 11. 2011   #149628

Pre zaokruhlenie pouzi metodu Math.round();

Java › Float - špatný formát
5. 11. 2011   #149566

#2 sleepy
No ono je to ako 5.0*10^9

Java › Float - špatný formát
5. 11. 2011   #149565

To je spravny vysledok. 5.0E9 mm^2 = 5 000 000 000 mm^2.

Java › Sinus - příklad
4. 11. 2011   #149533

Je to jednoducha trojclenka: 180° je pi rad. Ja len podotknem ze nemas vo svojej kalkulacke osetrene zaporne hodnoty pod odmocninou. Inak sinus sa pocita Math.sin(Double a) a odmocnina je Math.sqrt(Double a).

Java › Java - prvočísla, prohozrní…
1. 11. 2011   #149392

#13 sleepy
tento for ciklus treba nahradit:

for ( int j = 0; pNum[j]*pNum[j] <= sPNum && j<n; j++ )

za

for ( int j = 0; pNum[j]*pNum[j] <= sPNum && j<n && isPNum; j++ )

C / C++ › Pomoc s programem
1. 11. 2011   #149388

A este nezabudni urobit struktoru s pointemi na prvy a posledny prvok zoznamu. Tym budes moct vkladat prvok priamo na koniec zoznamu.

Java › Výpočet obsahu trojúhelnika…
1. 11. 2011   #149387

#11 sleepy
hlupost som napisal aj pre dim = 2 som to teraz spocital pomocou det ( A ) A patri R^2x2

Java › Výpočet obsahu trojúhelnika…
1. 11. 2011   #149386

No a co takto skusit vektorovi sucin? A obsah je z vysledneho vektora jeho velkost (skalarny sucin vektora sameho so sebou pod odmocninou ) predelena 2. 1. vektor bude v = ( x[1] - x[0], y[1]-y[0])^T a druhy u = (x[2] - x[0], y[2]-y[0])^T. spravis w =u x v a potom uz len staci S = (w.w)^1/2. No a predpokladam ze sa pohybujeme v dim U = 2, kde U je VP kde patri u,v, tak ti uplne vypadne ta cast s velkostou a odmocninou. Jedina vec ktoru bude treba osetrit bude zaporny obsah a to s=Math.abs(w[2]). Jo a nemusis robyt celi vektorovi sucin staci iba pre tretiu zlozku a to je w[2] = u[0]*v[1]-v[0]*u[1]; Cize kod by mohol vyzerat takto:

	public int[] makeVector ( int[] sPoint, int[] ePoint )
	{
		int[] vect = new int[2];
		for ( int i=0; i<2; i++) vect[i] = ePoint[i] - sPoint[i];
		return vect;
	}
	
	
	public float volume ( int[] u, int[] v )
	{
		return Math.abs(u[0]*v[1]-v[0]*u[1])/2.0;
	}

kde ako sPoint si zadas napr. suradnicu bodu A a ePoint budu suradnice bodov B a C. to ti vygeneruje 2 vektori AB a AC a ti hodis len do metody volume. Ak to budes chciet riesit v vo viac ako 2 rozmernom priestore budes potrebovat pocitat determinany (namiesto VSucinu), ten ti urci objem okamzite, kedze je to zobrazneie R^(n x n) -> R

Java › Java - prvočísla, prohozrní…
1. 11. 2011   #149383

Ja by som to robil bez dalsej metody jePrvocislo, lebo jej funkcnost vies pohodlne nahradit jednou premennou vo for cykle.
To KIIV: este by sa dal usetrit cas na tom mat tabulku prvocisel a testovat len delitelnost nimi.

Toto by malo bezat:

class PrimeNumber
{
	int[] pNum;
	int n = 0;
	
	public static void main ( String[] args )
	{
		PrimeNumber pn = new PrimeNumber();
		
		pn.getPrimeNumbers (10);
		
		pn.printPrimeNumbers ( );
	}
	
	public PrimeNumber ( ){
		pNum = new int[100];
	}
	
	public void getPrimeNumbers ( int max )
	{
		boolean isPNum; 
		for ( int sPNum = 2; sPNum < max; sPNum++ )
		{
			isPNum = true; //defaultne su vsetky prvocisla a potom len preverujes
			for ( int j = 0; pNum[j]*pNum[j] <= sPNum && j<n; j++ )	// to j<n je tam kvoli prvocislu 2 ktore nieje riesenim napr. max = 1 a max =0 a max = Z- a pNum[j]^2 <= sPNum je inspirovane KIIV-om a Tchibo -m
				isPNum &= (sPNum % pNum[j]!=0);	//nahrada za metodu jePrvocislo()
			if ( isPNum )
			{
				if ( n >= pNum.length ) expandArray (); // Zabrani indexOutOfBounds Exception
				pNum[n] = sPNum;
				n++;
			}
		}
	}
	
	public void printPrimeNumbers ( )
	{
		System.out.println ( "Prvocisiel je: " +n );
		for ( int i =0; i < n; i++ ) System.out.println (pNum[i]);
	}
	
	public void expandArray ( )
	{
		int tmp[] = pNum;
		
		pNum = new int[tmp.length + 200];
		
		System.arraycopy ( tmp, 0, pNum, 0, tmp.length );
	}
}
Java › Úkol z Javy aneb začínám s p…
1. 11. 2011   #149380

ono je to zrejme myslene v classe Uchazec:

class Uchazec
{
.	// Tu su deklarovane globalne premenne pre triedu Uchazec
.
.
// ja by som tie konstruktory riesil tak, ze si vytvorim pomocnu privatnu metodu ktora dane premenne inicializuje, napr. newCandidate ( int cizlo ... ). Ale zrejme ani toto nieje idealne riesenie.
	
	public Uchazec (int cislo, String prijmeni, String jmeno)
	{
		newCandidate ( cislo, "", "", 0, 0 );
	}

	public Uchazec ( int cislo )
	{
		newCandidate ( cislo, prijmeni, jmeno, 0, 0 );
	}
// neviem ale ak by sa to robilo tak ako napisal vyssie liborb, tak zvykne javac obvykle papulovat, lebo nepozna metodu Uchazec

	private void newCandidate ( int cislo, String prijmeni, String jmeno, int bodyTest, int bodyPohovor )
	{
		this.cislo = cislo;
		this.prijmeni = prijmeni;
		this.jmeno = jmeno;
		this.bodyTest = bodyTest;
		this.bodyPohovor = bodyPohovor;
	}
.
.	// Kod
.
	// V 2. pripade, ako som uz napisal, sa mi zda ze by ta metody vyhovel() a getBody() mala byt vo vnutri class Uchazec. Ale ak nie tak potom treba zmenit konstantu MAX_BODY na Uchazec.MAX_BODY
	public boolean vyhovel ( )
	{
		return (bodyTest>MAX_BODY/2) & (bodyPohovor > MAX_BODY/2);
	}

	public int getBody ( )
	{
		return bodyTest + bodyPohovor;
	}
.
.
.
}
Java › Výpis kombinací čísel za pod…
31. 10. 2011   #149354

#7 sleepy
aha pardon toto neriesi Vas problem..., som si zle precital zadanie.

Java › Výpis kombinací čísel za pod…
31. 10. 2011   #149353

#1 PetrP

Tak napr. ja by som to riesil: 

public class Main {
    static int sum=0;
	
	public static void main(String[] args) {
            int[] a = {1,2,3,4,5};
            
            psi ( 0, a, a.length );
            System.out.println(sum);
	}

        public static void psi ( int l, int[] a, int n ){
            
            for ( int k = l; k>=0; k-- ){
                int[] c = new int[a.length];
                c = switchNum(k, l, a);
                if ( k!=l && a[0]!=1 ){ // sem mozte dodat dodatocne podmienky, ako napr. a[0]!=1
                    printA ( c );
                    sum++;
                }
                if (l+1 < n) psi ( l+1, c, n );
            }


        }

        public static void printA ( int[] a ){
            for(int i=0; i< a.length; i++)
                System.out.print(a[i]+"\t");
            System.out.println();
        }

        public static int[] switchNum ( int i, int j, int[] a ){
            if(j==i) return a;
            int tmp = a[i];
            a[i] = a[j];
            a[j] = tmp;
            return a;
        }
}
Java › Pomoc s regulárnym výrazom
13. 8. 2011   #146150

#5 sleepy
opava:

int sIndex = text.lastIndexOf(begin);
Java › Pomoc s regulárnym výrazom
13. 8. 2011   #146149

   

public String getString(String text, String begin, String end){
	char[] cText = text.toCharArray();
		
	int sIndex = text.indexOf(begin)+begin.length(); 
	int eIndex = text.indexOf(end, sIndex);

// +- nejake drobne v zavislosti na tom co je v danom stringu okrem BEGIN:VCARD a END:VCARD	
	
	return String.copyValueOf(cText, sIndex, sIndex-eIndex);
}
aleStefan
Funkcionální programování › Pomoc s algoritmem
4. 8. 2011   #145728

   

max=30;
min=0;
boolean incr;//Nieco ako jezdeni;

if(x>max&incr){
	x=max
}
elseif(x<min&!incr){
	x=min
}
else{
	if(incr){
		x++;
	}
	else{
		x--;
	}
}

aleStefan
Java › Jak ukončit if bez returnu
4. 8. 2011   #145713

#9 aleStefan
Pardon pomylil som sa.V siedmom riadku ma byt minus. Inak by to bolo x=+b/2a+-sqrt....

aleStefan
Java › Jak ukončit if bez returnu
4. 8. 2011   #145712

   

public double[] kvadRovnica(double[] koef){
	double[] res = double[4];
	double disc = koef[1]*koef[1]-4*koef[0]*koef[2];
	
	for(int i=0; i<4;i++){
		res[i]=Math.signum(-i+1.5f)*sqrtOrZero(Math.signum(-(i%2)+0.5)*disc);
		res[i]=i<2?koef[1]/(2*koef[0]):0;
	}
	return res;
}

public double sqrtOrZero(double x){
	if(x<=0)return 0;
	return Math.sqrt(x);
}

A co takto to neosetrovat, ale iba vypocitat. To je tiez moznost.

aleStefan
Java › Úprava vstupního kódu
3. 8. 2011   #145707

   

private double[] nacitajKoeficienty(){
	double[] koef = new double[3];
	String[] udaj = {"prvy", "druhy", "treti"};
	boolean valid = false;

	int i =0;
	do{
		System.out.prinltn("Zadajte "+udaj[i]+" koeficient");
		try{
			koef[i] = readNumber();
			i++;
			valid = true;
		}catch(IOException e){
			System.out.println("Zadali ste neplatne cislo");
			valid = false;
		}
	}while(!valid|i<3);
	
	return koef;
}

Alebo tak nejako, lepsie to uz neupravim. Dufame ze to pre klud duse postaci ;)

 

 

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