Ketika datang untuk menghitung ekspresi matematika, orang yang berbeda memiliki pendekatan yang berbeda. Beberapa menggunakan metode menganalisis ekspresi. Jika ada kesalahan dalam ekspresi, kotak dialog juga dapat muncul untuk menunjukkan kesalahan yang sesuai. Program ini menggunakan pernyataan SQL standar, yang mendukung banyak operasi, seperti: penambahan, pengurangan, perkalian, divisi, dan divisi; Ada juga operasi string, tetapi itu tidak masuk akal. Karena program ini sesuai dengan tujuan yang disebutkan di atas, tidak ada batasan pada ini, teman-teman yang tertarik dapat memeriksa sintaks ekspresi terlebih dahulu dan kemudian menyerahkannya ke program ini untuk perhitungan.
{
Semua hak dilindungi undang -undang.
Proyek: Perhitungan Ekspresi Matematika
Penulis: huang tao [email protected]
Tujuan: Pelajari cara menggunakan kelas pengecualian
}
unit ucalcexpr;
antarmuka
penggunaan
Windows, pesan, sysutils, varian, kelas, grafik, kontrol, formulir,
Dialog, stdctrls, db, adodb;
jenis
Tfrmcalc = class (tform)
Button1: tbutton;
Edit1: tedit;
Prosedur Button1Click (pengirim: Tobject);
Prosedur Edit1KeyPress (pengirim: Tobject; var Key: char);
Pribadi
{Deklarasi Pribadi}
publik
{Deklarasi Publik}
akhir;
fungsi calcexpr (expr: string): string; // fungsi yang menghitung ekspresi matematika, di mana ekspresi adalah ekspresi
var
frmcalc: tfrmcalc;
Pelaksanaan
{$ R *.dfm}
// Ini adalah inti dari program ini, dan tergantung padanya untuk menghitung ekspresi.
fungsi calcexpr (expr: string): string;
var kueri: tadodataset;
Mulai
Qury: = tadodataset.create (nil);
mencoba
qury.connectionstring: = 'penyedia = msdasql.1; info keamanan tetap = false;' +
'Sumber Data = File DBase';
qury.CommandText: = 'Select' + expr + 'sebagai hasil';
qury.open;
Hasil: = expr + '=' + qury.fieldbyname ('hasil'). asstring;
Akhirnya
query.free;
akhir;
akhir;
Prosedur tfrmcalc.button1click (pengirim: tobject);
Mulai
mencoba
edit1.text: = calcExpr (edit1.text);
kecuali
pada h: pengecualian mulai
Showmessage (H.Message);
akhir;
akhir;
akhir;
Prosedur TFRMCalc.Edit1KeyPress (Pengirim: Tobject; Var Key: Char);
Mulai
jika kunci = #13 maka Button1Click (self);
akhir;
akhir.
Ringkasan: Dari ini kita dapat melihat bahwa ada dua metode untuk menangkap pengecualian. Dua metode penangkapan pengecualian ini berbeda, dan masing -masing memiliki kegunaannya sendiri.
Coba ... kecuali ... end umumnya digunakan ketika kita perlu menangkap kesalahan dan membuat petunjuk yang sesuai setelah metode tertentu dipanggil. Misalnya, saat memanggil fungsi yang menghitung ekspresi dalam program di atas, fungsi yang menghitung ekspresi cenderung melempar pengecualian, jadi ketika menelepon, ia harus menangkap pengecualian, membuat petunjuk yang sesuai, atau melakukan pemrosesan selanjutnya yang terkait untuk menghindari Ini menyebabkan kesalahan sistem dan mempengaruhi keindahan antarmuka program. Jika kami hanya melaporkan kesalahan, kami cukup menulis prompt yang sesuai untuk melaporkan kesalahan di tengah kecuali ... end. Jika Anda ingin melihat jenis kesalahan apa, Anda harus mengikuti praktik di atas untuk menangkap kesalahan.
Coba ... Akhirnya umumnya digunakan untuk melakukan operasi terkait setelah mengalokasikan sumber daya tertentu. Dengan mencoba ... akhirnya ... pernyataan akhir, kita dapat menempatkan pernyataan operasi sepenuhnya dalam mencoba ... akhirnya setelah mengalokasikan sumber daya, dan bayangkan bahwa ini dapat dieksekusi dengan lancar. Keluar dari lingkaran ini dan masukkan akhirnya tanpa melakukannya secara berurutan. Di akhirnya ... Akhiri, kita dapat melakukan beberapa pekerjaan akibat, seperti melepaskan sumber daya yang dialokasikan pada saat itu, karena tidak peduli apakah di atas dieksekusi dengan lancar atau ketika menemukan pengecualian, pernyataan di sini akan dieksekusi.
Dapat dilihat bahwa pernyataan di atas ditetapkan untuk menangkap pengecualian, dan pernyataan berikut ditetapkan untuk alokasi sumber daya, tetapi beberapa teman mengatakan, apa yang harus kita lakukan jika kita ingin menangkap pengecualian dan memulihkan sumber daya? Sayangnya, Borland tidak mencoba ... kecuali ... akhirnya ... Akhir.
Singkatnya, penggunaan kelas pengecualian yang rasional dapat sangat mengurangi pemrograman kami dan membuat ide -ide program kami lebih jelas. Program yang ditulis lebih indah.