Parseleme İşlemi..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Parseleme İşlemi..

Mesaj gönderen qamyoncu »

Merhaba arkadaşlar.. herkeze kolay gelsin...

Matematiksel denklemlerle ilgili bir program yapıyorum.. Ancak şöyle bir sorunum var.. Verilen fonksiyonun tanımsız olup olmadığını anlamam gerekiyor.. Payda 0 olduğunda fonksiyonumuz tanımsız olur. Benim bunu yakalamam lazım.. Kullandığım komponent var bir tane.. Tparser10 diye.. Aşağıya komponentin .pas dosyalarının linkini koydum indirmek isteyenler indirebilirler. Sorunu komponent dışında çözersem daha iyi. ama eğer komponenetin .pas dosyasından yakalıycağımız bişey varsa aşağıdan bakabilirsiniz.. Yardımlarınızı bekliyorum. Programımın kilit noktası bu çünküü.. :/


http://rapidshare.com/files/187496469/parser.rar.html
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Parseleme İşlemi..

Mesaj gönderen mkysoft »

Tabiki kodları inceleyerek belki birşeyler yakalanabilir. Ancak try...except bloğu içinde kodları çalıştırarak 0'a bölünme hatalarını kolayca yakalayabilirsiniz. Ayrıca değişkenlerin durumuna göre payda 0 değeri alıyor olabilir, yani denklemin kökleri. Bunu anlamanız mümkün değil. Ancak kodları inceleyerek bölme işlemini yapan fonksiyona payda koruması yapabilirsiniz. Benim tavsiyem, try..except. biraz tembellik ama olsun.
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: Parseleme İşlemi..

Mesaj gönderen qamyoncu »

evet hocam.. mantıklı bir fikir..

Ancak kodlar arasında oluşabilecek birsürü sorun var.. örneğin Edit'in içine sayısal veri girmemesi, editin içinin boş olması, editin içine komponentimin anlıyamadığı bir bilgi girmesi gibi.. bunlar arasından tanımsız olduğu bölümü seçmem zor olsa gerek..?

Ayrıca denklemi kullanıcı kendisi gireceği için denklemin köklerini yakalama şansım yok dediğiniz gibi..

ilginiz için teşekkürler.. araştırıyorum.. yardımlarınızı bekliyorum şimdiden sağoLun. .
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: Parseleme İşlemi..

Mesaj gönderen qamyoncu »

arkadaşlar gerçekten yardıma ihtiyacım var ... try except bloğu bile çalışmıyor nedense:S

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
try
grafik_ciz();                  // yarattığın herhngi bir prosedure..
except
    showmessage('Fonksiyon tanımsız');
end;
end;
burdaki sorunu çözemedim.. işlemiyor. verdiği uyarı.. '.... Floating by zero .... '
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Parseleme İşlemi..

Mesaj gönderen Battosai »

Hata olunca bunun önüne geçmeye çalışmak yada kullanıcıya çaktırmamak yerine matematiksel işlem yapan kodlarınızı düzenlerseniz daha iyi olur...Örneğin payda sıfır ise işlemi yapmayın ..if payda>0 then gibi bir ön kodda işinizi görür....
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: Parseleme İşlemi..

Mesaj gönderen emin_as »

try except blogu çalışır, fakat delphi içinde programı derleyip, debug ediyorsan, bu exception ı delphi yakalayıp, hatayı gösterir. Program delphi ide den degil de dışarıdan çalışırsa, except blogunun çalıştıgını görürsün.

Delphi IDE sinin bu exceptionları yakalamasını istemiyorsan, seçeneklerden debugger optionsı kontrol et.
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: Parseleme İşlemi..

Mesaj gönderen qamyoncu »

@Battosai;
Fonksiyon kullancı tarafından girildiği için paydayı bulma işlemi fazlasıyla uzun olucaktır. Ayrıca bu işlem sadece payda için değil.. örnek olarak logaritma fonksiyonu için 0dan küçük her değerdede bu sorun olucaktır. Dolayısıyla başka türlü kontrol altına almam gerekiyor.

@emin_as;

evet.. haklısınız, teşekkür ederim.. 1hafta içinde bitirmem gerekiyor programı umarım yetişir.. :( :?
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Cevapla