raider Mesaj tarihi: Temmuz 12, 2008 Paylaş Mesaj tarihi: Temmuz 12, 2008 Selam arkadaşlar. Şimdi benim istediğim şey şöyle bişey olucak. Klavyeden String olarak bi equation girilecek. örneğin: 3sinx – x2 ki buda bilgisayara söyle giriliyor: 3 * sin x – pow x 2 bunu bir şekilde işlem haline getirmeliyim.sanırsam söyle olucak.misal çarpma işareti gördüğünde, kendinden bir öncekiyle kendinden bir sonrakini çarpıcak.bu şekilde equation elemanları bitene kadar bunları tekrarlayacak.fakat bunu nasıl kod olarak yazıcam çözemedim. Java bilen arkadaşlardan yardım ve destek bekliyorum :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ardeth Mesaj tarihi: Temmuz 12, 2008 Paylaş Mesaj tarihi: Temmuz 12, 2008 genelde işlemler bilgisayara queue olarak giriliyor. Tabi queue olarak girenler işlem operatörleri. Bir çeşit bir öncelik tanımlaman lazım işlemler arası çünkü adam 5*5+5 dediğinde önce toplamayı değil çarpmayı yapmalı. Yani sadece operatörleri ekrandan okuma seviyesinde bir olay değil. Queue'ya ekrana girilen satırı okudukça, tüm olası operatörleri ve parantezleri sokuyorsun fakat çıkarırken sırayı gözetmek adına nasıl bir yol izliyordun tam hatırlamıyorum biraz düşünmem lazım :p Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ardeth Mesaj tarihi: Temmuz 12, 2008 Paylaş Mesaj tarihi: Temmuz 12, 2008 eğer bunla uğraşmak istemiyorsan da, windows calculator gibi işlemlerin ekrana sırayla tek tek girilmesine izin verirsin ki onun programını yazmak oldukça kolay olur (nette tonla örneği vardır) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
riglous Mesaj tarihi: Temmuz 12, 2008 Paylaş Mesaj tarihi: Temmuz 12, 2008 Precedence deniyo buna. Islem sirasi. Eger wikipedia'da aratirsan neyin onceligi vardir sana gosterir. Recursive olarak yapman programi isine gelir. Soyle ki, string'i alip oncelik sirasina gore aratirsin, mesela "=" bunun onceligi en sondur. "sin"in onceligi "*"dan oncedir. Diyelim ki kullanacagimiz islemler sadece bunlar: ['sin', '*', '"']. Once string'de sin var mi diye bakiyourz. Varsa calculateSin(x) diye bi fonksiyon yazarsin, gider double return eder. Bunu "sin x" degerinin yerine yazarsin. Sonra equation solver'da yeni string'i verirsin. Ayni islem tek bir sayi kalincaya kadar tekrarlanir. http://en.wikipedia.org/wiki/Order_of_operations Bu adreste var listesi: 1 () [] -> . :: Grouping, scope, array/member access 2 ! ~ ++ -- - + * & sizeof type cast (most) unary operations, sizeof and type casts 3 * / % Multiplication, division, modulus 4 + - Addition and subtraction 5 << >> Bitwise shift left and right 6 < <= > >= Comparisons: less-than, ... 7 == != Comparisons: equal and not equal 8 & Bitwise AND 9 ^ Bitwise exclusive OR 10 | Bitwise inclusive (normal) OR 11 && Logical AND 12 || Logical OR 13 ?: Ternary operator 14 = += -= *= /= %= &= |= ^= <<= >>= Assignment operators Senin isine yarayacaklar () / * - + % ^(ya da pow) muhtemelen. "(" ")" icin String'i " " (bosluk) karakterine gore ayir. "(" gordugun zaman ")" bunu ara. Sonra aradaki her seyi "main" fonksiyonuna yolla, return edeni string'in dogru yerine yaz ve bu sefer hepsini main'e yolla. "/" icin Sembolu gordugun index'in bir oncesini ve bir sonrasini division() fonksiyonuna yolla, gelen cevabi orjinal String'deki dogru yerle replace et. Tekrar main'e yolla. vs. vs. anladin? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
raider Mesaj tarihi: Temmuz 12, 2008 Konuyu açan Paylaş Mesaj tarihi: Temmuz 12, 2008 Oda bir problem ama asıl problemim ,string'i işlem haline getirmek.misal x in ikinci kuvvetini "pow x 2 " olarak string şekline girdim diyelim.öncelikle bu string'i ilk chardan sonuna kadar aratmam lazım. ilk olarak p yi bulucak. sonra o ve w yi bulacak. off fena halde kafam karışmış bulunmata. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
riglous Mesaj tarihi: Temmuz 12, 2008 Paylaş Mesaj tarihi: Temmuz 12, 2008 ya yukarida soyledigim gibi "[space]" karakterine gore array'e yazarsin, ya da String.indexOf("pow")... o kadar zor degil, sakin ol biraz. Git bi cay ic falan, rahatla, Sonra kagit kalem al eline, yaz ciz ne yapilmasi gerekiyosa. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
raider Mesaj tarihi: Temmuz 12, 2008 Konuyu açan Paylaş Mesaj tarihi: Temmuz 12, 2008 yada bi şekilde string array olarak girme olasılıgım varmı equationu.ama bir seferde. mesela direk "3 * sin x – pow x 2" yazdım. ama her boşluk bulunduğunda arrayın diğer elemanına atsın. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Penthesilea Mesaj tarihi: Temmuz 12, 2008 Paylaş Mesaj tarihi: Temmuz 12, 2008 Java'da her sey cok koolay yahu sakin ol. Programi ben olsam su sekilde yapardim, islem onceligi nasil? 1- pow 2- carpi bolu 3- arti eksi str alacagin string diyelim while (str.indexOf("pow") != -1) loopuyla powlari hallediceksin. indexofun dondurecegi sayi, pow'un p sinin indexidir. ona gore ayarlayip kacinci poweri oldugunu hallediceksin. isin icine parantez girmedigini varsayarak yaziyorum bu algoritmayi belirteyim. sonra while str.indexOf("*") || / yapicaksin iste, o islemi yapicaksin. yine dondurecegi indexin operatorun indexi oldugunu dusunerek, oncesini sonrasini alicaksin, alma islemini de soldaki sayi icin 0-9 gordukce sola git seklinde yapip o aranin substringini alarak yapabilirsin mesela, sag icin de saga giderek. + ve - yukaridakiyle ayni sekilde. Yukaridaki her while loopunun sonunda, islemi bitirdiginde tum kullandigin sayi ve operatorun yerine o kismi yazicaksin. onu da soyle yapabilirsin. ornegin pow x2 yi yaptin ve bu 5 indexinde basliyor, uzunlugu da gorecegin uzere 6: str = str.substring(0,5) + sonuc + str.substring(11); yapicaksin, oh mis. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
riglous Mesaj tarihi: Temmuz 12, 2008 Paylaş Mesaj tarihi: Temmuz 12, 2008 Google amca derki String str = "Madrid,Paris,London"; String[] tokens = str.split(",") ------------------------------------- tokens[0] = "Madrid"; tokens[1] = "Paris"; tokens[2] = "London"; ------------------------------------- Kendininkine uyarla iste... Ne icin istiyosun bunu ders mi? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
raider Mesaj tarihi: Temmuz 12, 2008 Konuyu açan Paylaş Mesaj tarihi: Temmuz 12, 2008 Sanırım anladım gibi. :) saolun. başka bilemediklerim olursa yazarım :P. ki daha bu denklemin köklerini vs bulucam. bu arada bu proje gibi bişey.okulumun yaz okulu olmadığı için, başka bir okuldan ders alıyorum.(data structures) dersin içeriği ve gerektirdiği Prereqs biraz farklı oluğunan zorlanıyorum. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
riglous Mesaj tarihi: Temmuz 12, 2008 Paylaş Mesaj tarihi: Temmuz 12, 2008 Kolay gelsin. Bu sekilde yardimci oluruz biz de. Programin kendisini istemedigin surece sorun yok Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Penthesilea Mesaj tarihi: Temmuz 12, 2008 Paylaş Mesaj tarihi: Temmuz 12, 2008 StringTokenizer diye bir class var, ben onu kullaniyorum dille ilgili islemlerde kelime vs ayirirken, onu da kullanabilirsin. String str = bilmemne StringTokenizer tokens = new StringTokenizer(str); space t ve n olanlari ayiriyo bu. nextToken() diyerek falan alabiliyorsun. veya StringTokenizer tokens = new StringTokenizer(str, "+"); diyorsun, + lardan ayiriyor.. gibi Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Sly-One Mesaj tarihi: Temmuz 12, 2008 Paylaş Mesaj tarihi: Temmuz 12, 2008 öyle göz kırparsan bişi anlamaz Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
myster1o Mesaj tarihi: Temmuz 14, 2008 Paylaş Mesaj tarihi: Temmuz 14, 2008 Sly-One said: öyle göz kırparsan bişi anlamaz;) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
raider Mesaj tarihi: Temmuz 14, 2008 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2008 Sorumu değiştireyim; herhangi bir String array in son elemanını silmek mümkünmü? son elemanı null a eşitlediğimizde hata veriyor nedense. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Fly Mesaj tarihi: Temmuz 14, 2008 Paylaş Mesaj tarihi: Temmuz 14, 2008 bir döngüyle sonundaki silinmiş bir array yaratabilirsin diye düşünüyorum. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
riglous Mesaj tarihi: Temmuz 14, 2008 Paylaş Mesaj tarihi: Temmuz 14, 2008 "" 'e esitlersin. Bu arada string karsilastirmalari icin umarim str1.equals(str2) kullaniyosundur.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
raider Mesaj tarihi: Temmuz 14, 2008 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2008 equals olayına daha en başta takılmıştımda gogıl saolsun. elimde adam gibi bi kitap vs olsa hiç bunlar sorun olmayavak ama. saol :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
raider Mesaj tarihi: Temmuz 14, 2008 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2008 Son sorum geliyor , bunuda çözersem olay tamamdır. :) şimdi hoca demişki; Finding a solution to equations of the form f(x) = 0 is one of the important problems of numerical analysis. If it is known that f is continuous and it has two points low and high such that f(low) and f(high) have opposite signs, a root must exist between low and high, which can be found using binary search. At each iteration, binary search checks the function value at the midpoint of the [low, high] interval. If a zero (f(x) = 0) is encountered, the algorithm terminates. Otherwise, low and high are updated in a way dictated by the function value at the midpoint and the execution proceeds with the next iteration mesela "x3 + -10.0/5*/" denklemine göre düşünürsek Burada yapmam gereken herhangi 2 sınır alıp,(-1000,1000)bunların midpointini(0) x'in yerine koyup.çıkan sonucun işaretine göre yeniden midpointle sınır oluşturmak oluyor deilmi? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Penthesilea Mesaj tarihi: Temmuz 14, 2008 Paylaş Mesaj tarihi: Temmuz 14, 2008 String olayina cevap vereyim, son elemani simek icin str = str.substring(0, str.length-1) yaparsin, hallolur Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
raider Mesaj tarihi: Temmuz 14, 2008 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2008 eleman silme olayını hallettim. fakat bu kök bulma olayı sandığımdan daha zormuş :/ Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
riglous Mesaj tarihi: Temmuz 14, 2008 Paylaş Mesaj tarihi: Temmuz 14, 2008 f(low) ile f(high) 'in -/+ olmasi gerekiyo, low ile high'in degil, buna dikkat et. Diyo ki, eger f(x)=0 olmussa, eger ki low ve high diye iki sayi, f(low) ve f(high) hesaplandiginda farkli sign'lara sahiplerse o iki sayi arasinda mutlaka bi kok bulunmali. Son paragrafta soyledigin dogru. Her seferinde ihtimallerin yarisini elemis oluyosun ki buna binary search deniyo. pseudo findRoot(low, high) alacak. Daha sonra midPoint=(low+high)/2 if( f(midPoint) == 0) return null; else if( f((midPoint+high)/2) == 0 ) return findRoot(low, (midPoint+high)/2)) else return findRoot((midPoint+high)/2), high) gibin... Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
raider Mesaj tarihi: Temmuz 15, 2008 Konuyu açan Paylaş Mesaj tarihi: Temmuz 15, 2008 Hala yazdığım bu kök bulma olayında sorun var sanırım. mesela x * x * x - 27 nin kökünü bulurken , x * x - 4 ü bulmamakta. while(solved==false){ midpoint=(low+high)/2; if((f(midpoint)==0) solved=true; System.out.println("Root of the equation is : "+midpoint); } else if(f(midpoint)>0){ high=midpoint; } else if(f(midpoint)<0) low=midpoint; } Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
riglous Mesaj tarihi: Temmuz 15, 2008 Paylaş Mesaj tarihi: Temmuz 15, 2008 muhtemelen sorunun yuvarlamalarda. Yuvarlarken alta indiriyo. eger 1000'den baslarsan, 500, 250, 125 ... 15, 7, 3, 1 deniyo sirayla, haliyle bulamiyo. Bunun yerine yukariya tamamlamasini sagla. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
raider Mesaj tarihi: Temmuz 15, 2008 Konuyu açan Paylaş Mesaj tarihi: Temmuz 15, 2008 Neyse öyle böyle yolladım programı. Herkese yardımları için teşekkürler. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar