regex le yapabilirsin edt: çok kafa yorarsın ama sonucu hoşuna gidecektir. ğren kanımca...

eğer matematik işlemi yapacaksan expression parser yazmalısın veya open source olanlardan bir tanesini seçip kullanabilirsin. Eğer yazacam diyorsan uğraştıcı bir iştir. Matematik formülünü kolay parse edebilmen için infux, suffix, prefix yapılarını bilmen gerekiyor. Formülünü prefixe dnüştürdükten sonra ona gre işlemleri yapman gerekiyor. http://simplemathparser.codeplex.com/ bunu kullanabilirsin oldukça basittir Geyik Candır :]

Aynen hoca expression parser lazim sana ilk. Switchle neyi sorgulayacaksn bir suru ic ice olabilir. The king is bleeding.

C# da kolay bir yolu olabilir fakat czümde Recursive Descent Parser işine yaracaktır. Biz bu sorunun biraz daha karmasığı ile ugraşmıştık. Recursive Descent Parser kullanarak yapılabiliyor. Bunun yanında 2 li ağaçla yapan arkadaşlarda olmuştu ama onlarda recursive kullanmışlar. Yığıt kullanılalarakta yapılabilir fakat onu yapmk biraz zor olabilir. Kolay gelsin..

regex bu konuda işini grür arkadaş haklı eğer sz konusu c# sa biraz araştırırsan anahtar deyim Regex Bir Programcının Parmaklarının ucunda imkansız diye bişey yoktur.

acemi-webci bunu yazdı: regex le yapabilirsin edt: çok kafa yorarsın ama sonucu hoşuna gidecektir. ğren kanımca adam haklı onun için olmasada regex ğren mükemmel bi icat Bence bu dünya üzerinde seçilmiş ırk diye bi kavram varsa bu ırk kesin ruslardır. Onlar daha iyisini yapana kadar en iyisi onlar

herkese ilgisi için teşekkürler grn arkadasımız sınıf arkadasım aynı zamanda ona ulastım değişik bi metot kullanarak çzdü ama benim bi pok anladıgım sylenemez..=) sizlerle de paylasmak istedim kodları.. ANA FORMpublic partial class MainForm : Form { public MainForm private void textBox1_KeyPress private void calculateButton_Click } İŞLEMLERi YAPTIGI KOD KISMIDA BURADA YER ALIYOR... class Calculator { Tokens m_tokens; char m_spcChars = new char ; public Calculator private void SeparateTokens { int bfindex, i, j; for (bfindex = i = 0; i < str. Length; ++i) { for (j = 0; j < m_spcChars. Length; ++j) { if } } m_tokens. AddToken(str. Substring , TypeExpression. number); } public double Calculate { Token tk, tkadd; double db = 0; for(int i = 0; i < 4; i+= 2) for { if continue; if (!(tk. m_value m_spcChars || tk. m_value m_spcChars )) continue; / operatorun sagini ve solunu isleme sokuyoruz ;) / db = Operate ; //uzerinde bulundugumuzun soldakinin solu yoksa en bastayizdir;) if else tk = tk. m_Next; } return double. Parse ; } private double Operate(Token tk1, Token tk2, Token tkexp) { switch (tkexp. m_value ) return 0; } } //linked list of tokens //bu bagli liste atomlari tutucak. class Tokens { public Token m_root = null; public Token m_cur = null; public int m_count = 0; public Token AddToken { if m_cur. m_Next = new Token ; m_cur. m_Next. m_index = m_count++; return m_cur = m_cur. m_Next; } public Token InsertToken public Token RemoveToken { Token tktr = m_root; for { if } return null; } public Token RemoveToken { Token tktr = m_root; for { if } return null; } } //Bagli listenin bir dugumu class Token { public Token m_Next; public Token m_Prev; public TypeExpression m_type; public string m_value; public int m_index; public Token } enum TypeExpression : int ||DuRuYoRsAm SeBeBi VaR SuSuYoRsAm NeDeNi VaR hErKes RaHaT OlSuN hErSeYiN bİr zAmAnI vAr..!!|| -||Yaşlanarak değil yaşayarak tecrübe kazanılır, zaman insanları değil armutları olgunlaştırır.-||

Hocam şimdi google amcaya girip. "Infix, Prefix, Postfix" yazıyosun. Ne olduklarını ğreniyosun. Senin Infix'i Postfix e çeviren bir fonksiyon yazman lazım sonra kolayca işleyebilirsin verileri :) There are 10 types of people in the world. Those who knows binary and those who dont...

bi kere verdiğin rnek saçma olmuş senin dediğin matematik kurallarına gre doğru nce çarpma ve blme sonra toplama ve çıkarma yapılır ama şunu unutma çarpma ve blmeden ncede parantez içindeki değerler toplanır. senin istediğin olayda logo programında kdv hesaplama alında var grid üzerinde, neyse adam şunu yazarsa ne olcak 10+6/3 senin mantığına gre bu işlemin sonucu = 12 çıkar nce çarpma ve blme ya bana gre ise = 5,33 çıkar yani senin nce işlemi yazma esnasında kendin parantezlere aldırman lazım bak şyle bir mantık geldi aklıma sen bu işlemi yapabilmen için nce opertrlerini yakalaman lazım textbox changesinde operatrleri arat mesela adam 10+2/3 yazarsa sen nce operatrlere bak ve operatr ncesi ve sonrasındaki operand array içine at tek tek ve senin istediğin nceliklede array içinden dngü ile işlemi yaptır bu kadar basit. Bir Programcının Parmaklarının ucunda imkansız diye bişey yoktur.

: Hocam hiçbir şey anlamadım vallaha :/ Eğer sorunun çzülmediyse ve tekrar anlatmaya üşenmezsem yardım edebilirim. hocam soru :textbox a (12+5 3/6) gibi bir ifade yi kullanıcı tek seferde girecek programda bunu hesaplayacak fakat işlem ncelik sırasına gre yani nce çarpma işlemi ve blme işemi sonra toplama ve çıkarma işlemi. grn arkadasımız yardımcı oldu binary tree sistemiyle yapılabilinir dedi su an onu inceliyorum herkese teşekkürler.. ||DuRuYoRsAm SeBeBi VaR SuSuYoRsAm NeDeNi VaR hErKes RaHaT OlSuN hErSeYiN bİr zAmAnI vAr..!!|| -||Yaşlanarak değil yaşayarak tecrübe kazanılır, zaman insanları değil armutları olgunlaştırır.-||

Her girdi olduğunda işlemi yaptırt değişkene ata. İşlem nceliği olmasına gerek olmaz chelishky. wordpress.com|| Büyük devrimlere gereksinimin kalmayacak kadar devrimci kal yeter!

Arkadaşlar c# ta textbox a ard arda işlemler girecek kullanıcı ve bunları programa işlem sırasına gre yaptırıp sonucu yazdırmalıyım switch case ile yapılır aslında ama programda anlayamadıgım bir sey var rnegin textbox a (12+3 5/2-4) kullanıcı bunları ard arda girdigini varsayarsak işlem nceliğine gre ilk nce carpma blme yapılacak sonra toplama cıkarma. switch case ile islem nceliği halledilir fakat işlemi sectiğimizde o işleme girecek sayıları değişkene nasıl atabilirim. mesela switch case yntemiyle işlemini sorguladık buldu fakat program 3 ve 5 i nasıl alabilirim textboxtan. yardımcı olursanız sevinirim teşekkürler.. ||DuRuYoRsAm SeBeBi VaR SuSuYoRsAm NeDeNi VaR hErKes RaHaT OlSuN hErSeYiN bİr zAmAnI vAr..!!|| -||Yaşlanarak değil yaşayarak tecrübe kazanılır, zaman insanları değil armutları olgunlaştırır.-||

tmmda hocam işin gıcık kısmı orda işte işlem sırasına gre hesaplanmasını istiyorum. dier türlü yapmanın anlamıda yok 2 değişkenle yapılır. ||DuRuYoRsAm SeBeBi VaR SuSuYoRsAm NeDeNi VaR hErKes RaHaT OlSuN hErSeYiN bİr zAmAnI vAr..!!|| -||Yaşlanarak değil yaşayarak tecrübe kazanılır, zaman insanları değil armutları olgunlaştırır.-||

Hocam hiçbir şey anlamadım vallaha :/ Eğer sorunun çzülmediyse ve tekrar anlatmaya üşenmezsem yardım edebilirim.

Regexe girmene gerek yok. http://www.west-wind.com/presentations/dynamicCode/DynamicCode.htm Buradaki rnekte kullanıldığı gibi c# da dinamik kod çalıştırma zelliği var yani string olarak verdiğin kodu çalıştırabilir. verdiğin matematik işlemi de C formatında olduğu için bunu çalıştırıp sonucu biyere yazdırabilirsin. web için fazla anlamadan kullanmak çok sakattır, çünkü matematik işlemi yazilacak yere kod yazıp serverda dosya falan yaratabilir adam doğru permissionları vermezsen. Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı ktektir!

arastıralım bakalım ilgin için sağol kurnaz kardeş=) ||DuRuYoRsAm SeBeBi VaR SuSuYoRsAm NeDeNi VaR hErKes RaHaT OlSuN hErSeYiN bİr zAmAnI vAr..!!|| -||Yaşlanarak değil yaşayarak tecrübe kazanılır, zaman insanları değil armutları olgunlaştırır.-||

voltigore teşekkürler ilgilendiğin için fakat biraz daha acıklayıcı olursan sevinirim:) ||DuRuYoRsAm SeBeBi VaR SuSuYoRsAm NeDeNi VaR hErKes RaHaT OlSuN hErSeYiN bİr zAmAnI vAr..!!|| -||Yaşlanarak değil yaşayarak tecrübe kazanılır, zaman insanları değil armutları olgunlaştırır.-||

Benim de yaptığım bir hesap makinem vardı split kullanarak baya bi kasmıştım:) Belki birinin işine yarar.. Tabi geliştirilmesi gerekiyor yarıda bırakmıştım.. kodlar: namespace WindowsFormsApplication1{ public partial class Form1 : Form { string a; public Form1 private void btn1_Click { if else txtislem. Text = a+""+btn1. Text; } private void btn2_Click { if else txtislem. Text = a + "" + btn2. Text; } private void btn3_Click { if else txtislem. Text = a + "" + btn3. Text; } private void btn4_Click { if else txtislem. Text = a + "" + btn4. Text; } private void btn5_Click { if else txtislem. Text = a + "" + btn5. Text; } private void btn6_Click { if else txtislem. Text = a + "" + btn6. Text; } private void btn7_Click { if else txtislem. Text = a + "" + btn7. Text; } private void btn8_Click { if else txtislem. Text = a + "" + btn8. Text; } private void btn9_Click { if else txtislem. Text = a + "" + btn9. Text; } private void btn0_Click { if else txtislem. Text = a + "" + btn0. Text; } private void btntemizle_Click private void btntopla_Click private void btncikar_Click private void btnbol_Click private void btncarp_Click private void btnesittir_Click { string z = txtislem. Text; string satirlar = z. Split ; if (satirlar . ToString "+") if (satirlar . ToString "-") if (satirlar . ToString "X") if (satirlar . ToString "/") } }} Paslanmış bir uygulama geliştirici.. #AnalistŞart

split metodunu araştır. split metoduyla sayıları karakterlerden ayırırıp diziye atarsın iyi bi mantık kurarsan split metoduyla yapabilirsin. Regular expression la da yaparsın daha kolay olur. başka bişey gelmiyor şu an aklıma Hiç savaş grmemiş çocuklarla, hiç barış grüşmemiş çocuklar için adalet farklı anlamlar taşır.