12.8.2015, 11:31 | #241 | |
Član
Član od: 1.7.2014.
Lokacija: Bijeljina
Poruke: 228
Zahvalnice: 26
Zahvaljeno 59 puta na 46 poruka
|
Re: How to... Java
Citat:
|
|
4.1.2016, 20:44 | #242 |
Član
|
Re: How to... Java
Radila sam zadatak koji je veoma jednostavan, naime, date su koordinate tri tačke, A(a1, a2), B(b1, b2) i C (c1, c2) koje formiraju trougao i data je neka tačka P (x, y). Treba odrediti da li postoji trougao ABC i ako postoji da li tačka P leži unutar njega.
Ukoliko se tačka P nalazi unutar trougla, onda će povrsina(APB)+povrsina(APC)+povrsina(BPC)=povrsina (ABC). Ovo je kod koji sam ja iskucala: HTML kod:
public static double rastojanje (double x1, double y1, double x2, double y2){ double rast=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); return rast; } public static double povrsina (double a, double b, double c){ double s=((a+b+c)/2); double pov=Math.sqrt(s*(s-a)*(s-b)*(s-c)); return pov; } public static void main(String[] args) { // TODO Auto-generated method stub Scanner ulaz=new Scanner (System.in); double a1, a2, b1, b2, c1, c2, x, y; a1=ulaz.nextDouble(); a2=ulaz.nextDouble(); b1=ulaz.nextDouble(); b2=ulaz.nextDouble(); c1=ulaz.nextDouble(); c2=ulaz.nextDouble(); x=ulaz.nextDouble(); y=ulaz.nextDouble(); double a=rastojanje (b1, b2, c1, c2); double b=rastojanje (a1, a2, c1, c2); double c=rastojanje (b1, b2, c1, c2); if (a+b>c && a+c>b && b+c>a){ double pc=rastojanje (x, y, c1, c2); double pa=rastojanje (x, y, a1, a2); double pb=rastojanje (x, y, b1, b2); double pov=povrsina(a, b, c); double pov1=povrsina(pa, pc, b); double pov2=povrsina(pa, pb, c); double pov3=povrsina (pb, pc, a); double povuk=pov1+pov2+pov3; if (povuk==pov){ System.out.print("Trougao postoji i tacka sa koordinatama: " + x + y + " pripada trouglu"); } else { System.out.print("Trougao postoji ali tacka ne pripada trouglu"); } } else System.out.print("Trougao ne postoji"); } Da li neko možda zna gdje je greška? |
5.1.2016, 0:33 | #243 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.166
Zahvalnice: 2.085
Zahvaljeno 4.923 puta na 2.859 poruka
|
Re: How to... Java
Pre nego što uradiš "if (povuk == pov)", uradi
System.out.println("Povuk: " + povuk + ", pov: " + pov); I vidi da li su brojevi baš različiti, ili su blizu. U prvom slučaju ti ne valja algoritam, u drugom se radi o grešci u zaokruživanju. Kod reprezentacije realnih brojeva na kompjuteru uvek može da postoji greška u zaokruživanju (vidi floating point na wikipediji), a pritom ako vršiš sabiranje (kao npr pov1 + pov2 + pov3), greška se samo povećava. Zato se preporučuje da se double i float vrednosti ne porede direktno sa == , nego sa nekom tolerancijom, na primer za toleranciju od 2%: if ((povuk > pov * 0.98) && (povuk < pov * 1.02)) { ... } |
Sledeći korisnik se zahvaljuje korisniku voodoo_ na korisnoj poruci: | ||
ballerina72 (6.1.2016) |
5.1.2016, 1:03 | #244 |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: How to... Java
What Every Computer Scientist Should Know About Floating-Point Arithmetic
Dosadna matematika može da se preskoči. |
5.1.2016, 20:34 | #246 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.166
Zahvalnice: 2.085
Zahvaljeno 4.923 puta na 2.859 poruka
|
Re: How to... Java
U moju odbranu, kucao sam kasno posle dugog radnog dana
|
6.1.2016, 12:49 | #247 |
Član
|
Re: How to... Java
Ipak nije greška u zaokruživanju
Ali u svakom slučaju, hvala na savjetima! |
6.1.2016, 15:57 | #248 |
Banned
|
Re: How to... Java
Možda da u IF-u staviš u zagradu (a+b) > c, itd... ovako možda samo poredi b sa c.
|
6.1.2016, 23:20 | #249 |
Član
|
Re: How to... Java
Nije tu problem... Danas nisam imala vremena, ali ću sjutra zadatak odraditi (kako bi moja baba rekla) 'Jovo nanovo', pa nadam se da će program ispravno raditi. Ako to ne uspije, pa ništa, čekam da počne škola profesoricu da pitam.
|
8.1.2016, 15:13 | #250 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.166
Zahvalnice: 2.085
Zahvaljeno 4.923 puta na 2.859 poruka
|
Re: How to... Java
Za svaki slučaj, nakon unosa parametara uradi i njihov ispis, možda Scanner nije lepo isparsirao...
|
10.1.2016, 17:30 | #251 |
Član
|
Re: How to... Java
Pronašla sam grešku, formula za rastojanje između dvije tačke u koordinatnom sistemu mi je bila pogrešna, treba da stoji (x1-y1)^2 + (x2-y2)^2 a ne (x1-x2)^2 + (y1-y2)^2...
|
10.1.2016, 18:13 | #252 |
Kekule Mekule
|
Re: How to... Java
Formula za rastojanje jeste koren iz (x-x1)^2 + (y-y1)^2...
|
10.1.2016, 19:56 | #253 |
Član
|
Re: How to... Java
|
10.1.2016, 22:21 | #254 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: How to... Java
Lapsus običan u tekstu. A ti si lapsus napravila ovde:
Kod:
double a=rastojanje (b1, b2, c1, c2); double b=rastojanje (a1, a2, c1, c2); double c=rastojanje (b1, b2, c1, c2); Još jedna sugestija, za proveru postojanja trougla dovoljno je da se proveri da li su sve stranice duže od 0 (trougao je dat u koordinatama, pa se ne može desiti da jedna od stranica bude duža od zbira druga dve) Poslednja ispravka: ivan90BG (10.1.2016 u 23:21) |
10.1.2016, 23:35 | #255 | |
Član
|
Re: How to... Java
Kad sam sve nanovo kucala provjerila sam da li mi je dobra formula za rastojanje i gledala sam samo glavnu formulu (na ovom linku koji sam gore stavila), koja je očigledno pogrešna, a ja nisam ni malo razmišljala...
Citat:
Hvalaaa!!! Ubuduće odmah ću kod kucati nanovo i trudiću se da ne postavljam ovako lagane zadatke sa ovako glupim greškama... |
|
6.3.2016, 2:27 | #256 |
Starosedelac
Član od: 14.3.2009.
Poruke: 1.200
Zahvalnice: 207
Zahvaljeno 276 puta na 179 poruka
|
Re: How to... Java
Jednom nam je profa iz programiranja rekao ,ako ima vise od 6 linija koda , ne pitajte me zasto ne radi kako treba
|
29.4.2016, 22:21 | #257 |
Član
Član od: 1.7.2014.
Lokacija: Bijeljina
Poruke: 228
Zahvalnice: 26
Zahvaljeno 59 puta na 46 poruka
|
Re: How to... Java
|
30.4.2016, 12:56 | #258 |
Starosedelac
Član od: 2.6.2008.
Lokacija: Vršac
Poruke: 1.752
Zahvalnice: 92
Zahvaljeno 311 puta na 294 poruka
|
Re: How to... Java
|
24.5.2016, 14:43 | #259 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.166
Zahvalnice: 2.085
Zahvaljeno 4.923 puta na 2.859 poruka
|
Re: How to... Java
Ne znam gde ću, pa ću ovde:
Konkurs za Android i/ili iOS programera: https://poslovi.infostud.com/posloda...ture-doo/43000 |
23.8.2016, 13:35 | #260 |
Banned
Član od: 8.7.2006.
Lokacija: Above the Abyss
Poruke: 1.879
Zahvalnice: 584
Zahvaljeno 910 puta na 523 poruka
|
Re: How to... Java
Posle flopa sa proucavanjem C++ krenuo bih ozbiljno da ucim Javu(osnove sam prosao, citao sam beginner knjige; Head First Java, 2nd Edition itd.) i sada planiram da odradim neki kurs koji ce me uputiti u neke ozbiljnije stvari. Ortak se kune u Aleph (tj Levi9 ) kurseve u Novom Sadu( Linak ).
Problem je sto ne znam koji od ponudjenih kurseva da izaberem jer bih mogao da radim sve u Javi Nekako me najvise zanima programiranje za Android, ali ne znam koliko je isplativo to znati Naravno znam da je kurs samo pocetak, a da se sve nadalje samostalno uci i to mi nije problem. Zanima me da li neko moze da podeli neka svoja iskustva sa ucenjem jave i da me posavetuje sa kojim kursem da krenem. Unapred hvala |
Bookmarks sajtovi |
Tagovi |
java |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Java - out of Memory | Vajsmilan | Aplikativni softver | 6 | 6.2.2012 20:54 |
Android - pozivanje Java metoda iz native koda | voodoo_ | Programiranje | 5 | 14.10.2011 8:59 |
Samsung D600 Java upload (USB cable) | Aleksandar | Programi za mobilne telefone | 0 | 16.6.2008 13:54 |
Jel' se ovo misli na Java Script ili? | Tim85 | Internet tehnologije | 2 | 7.12.2006 12:33 |
G-thing program za LG(imam U8180) za java igre trazim gde ima? besplatno?trial? | Ilic Marko | Programi za mobilne telefone | 1 | 9.2.2006 14:09 |