4 İşlem
-
Cali_KuSu bunu yazdı:
-----------------------------a (label) | 16 | (tekxtBox)
b (label) | 7 | (tekxtBox)
c (label) | 3 | (tekxtBox)
d (label) | 4 | (tekxtBox)
Formül (label) | (a+b-c)/d | (tekxtBox)
hesapla (button) : 5 (label)
görüntü böyle olacak
-----------------------------tekxBox değil textBox diye düzeltelim öncelikle.
Aslında bunu denedim çok uzun birsey cıkıyor diye bıraktım. Burdaki parantezler işlem önceliğini gösteriyor bu yuzden once kaç tane parantez var onu bulman lazım. Ya da yok mu. bunların ındexOf la indexlerini bulcaksın. Sonra bu indexlerle Substring metodu ile içini alıp işlem yapman lazım. Ayrıca içinde kaç değişken var 2 mi 3 mü buna göre switch case le birseyler yapman lazım. Kısaca böyle ama uzun hikaye yani :D
-
çok biliyorum ben kesin yaparım .. :)
bu sorunuda çözemedim :) hadi hayırlsı bakalım .. yattı bu projede..
-
Şimdi anladığımı yazim
a+b=x
x-c=y
y/d=sonuc şimdi ben doğrumu anladım program bunumu yapacak eğer öyle ise paylaşırım c# olarak.
formül programda sabit değilmi değişkenlik göstermeyecek.
-
RebelliouS_SouL bunu yazdı:
-----------------------------Şimdi anladığımı yazim
a+b=x
x-c=y
y/d=sonuc şimdi ben doğrumu anladım program bunumu yapacak eğer öyle ise paylaşırım c# olarak.
formül programda sabit değilmi değişkenlik göstermeyecek.
-----------------------------Yok hoca böyle değil. Formul surekli değişir isterse a+(b*c*d) olur yani. Ve değişkenleride yani a,b,c,d bunlar da textboxtan alıncak :D onlarda sürekli değişebilir
-
hypnos_ bunu yazdı:
-----------------------------RebelliouS_SouL bunu yazdı:
-----------------------------Şimdi anladığımı yazim
a+b=x
x-c=y
y/d=sonuc şimdi ben doğrumu anladım program bunumu yapacak eğer öyle ise paylaşırım c# olarak.
formül programda sabit değilmi değişkenlik göstermeyecek.
-----------------------------Yok hoca böyle değil. Formul surekli değişir isterse a+(b*c*d) olur yani. Ve değişkenleride yani a,b,c,d bunlar da textboxtan alıncak :D onlarda sürekli değişebilir
-----------------------------Tam müridenin son mesajını okuduktan sonra yanlış anlamışım editlim diyecekken alıntılamışsın.
-
Zaten sanıldığı kadar kolay bişey değil bu olay daha öncede söylemiştim her formül için çözüm verebilmesi için stack yapısını kullanman gerekir
http://scriptasylum.com/tutorials/infix_postfix/algorithms/infix-postfix/index.htm
http://scriptasylum.com/tutorials/infix_postfix/algorithms/postfix-evaluation/index.htm
gayet güzel açıklamış burda ...
-
bu işle ilgili gece bi şimşek çaktı kafamda da söyleyim dedim (:
text'in change olayında yapmak daha kolay olur heralde.
her girilen karaktere göre işlem yaparsın.
girilen karakter
if text1.text="(" then bak=1
if bak=0 then
a=b+c
'gibisinden bişey
end if
if bak=1 then
x=y+z 'buralarada textin uzunluğunu kontrol ederek en sondaki karakteri alabilirsin. vbasic te right(text1.text,1) gibi bişey
'gibisinden bişey
end if
not: yine saçmalamış olabilirim. kodlamaya kalktın mı bi sürü sorun çıkacaktır. gerisine karışmam (: ama ilk müsait olduğumda bununla ilgili bişeyler yazacam. bende merak ettim nasıl olacak.
-
yok mu işin içinden çıkabilen ?
-
Cevap : http://stackoverflow.com/questions/4876945/c-sharp-formula-123-21522-evaluation
Bu sistemi suanda 2-3 programda kullaniyorum birisi bankacilik uygulamasi :)
Edit :
istegini yazayim dedim hemen.
string strFormul =
txtFormul.Text
.Replace("a", txtA.Text)
.Replace("b", txtB.Text)
.Replace("c", txtC.Text);
var calc = new System.Data.DataTable();
var dbSonuc = calc.Compute(strFormul, "");
MessageBox.Show(dbSonuc.ToString());
txtFormul,txtA,txtB,txtC forma eklenmeli. bunuda bir butonun icine yaz.
Mesaj 25 Temmuz 2012 (Carsamba) Saat: 14:40'da rakkoc tarafından düzenlendi. -
recep ingilizce yetersizliği uyarısı verdk biz :)
biraz daha anlyabileceğimiz bir şekilde bize anlatırmısın mahsuru yoksa
