Ngôn ngữ vốn là phương tiện giao tiếp của loài người, hơn thế nữa ngôn ngữ còn giúp loài người hiểu nhau hơn để cùng giải quyết những khó khăn chung, tiến tới xây dựng một thế giới ngày càng tươi đẹp. Ngày nay, cùng với sự phát triển vượt bậc của công nghệ thông tin thì việc trao đổi liên lạc giữa người với người ngày càng dễ dàng hơn thông qua các ứng dụng tiện ích thực tế. Trong đó phải kể đến sự hỗ trợ của các chương trình từ điển, chúng giúp con người nhanh chóng nắm bắt ngôn ngữ của nhau đồng thời giúp họ thoát khỏi công việc nặng nhọc là tra cứu từ trong các quyển từ điển dày và nặng.
Hiện nay ở nước ta, ngoài tiếng Anh là ngoại ngữ chính thì tiếng Nga cũng là ngoại ngữ rất cần thiết cho nhiều ngành khoa học, đặc biệt là các ngành kỹ thuật như cơ khí, luyện kim, thuỷ tinh
Vì thế thông qua ngôn ngữ lập trình trên máy tính, từ điển điện tử tiếng Nga sẽ tạo điều kiện thuận lợi hơn cho người dùng trong việc tra cứu từ vựng. Thêm vào đó cần có một chương trình tiếng Nga hoàn thiện về ngữ pháp, bài tập để phục vụ người dùng không những tra từ mà còn có thể học tốt ngôn ngữ này.
Mục tiêu này từ lâu đã là niềm thích thú của bản thân em, chính vì thế “Chương trình học tiếng Nga” được em chọn làm đề tài tốt nghiệp của mình.
Do hạn chế về thời gian thực tập nên đề tài không tránh khỏi những thiếu sót, rất mong được sự đóng góp ý kiến của thầy cô và các bạn để chương trình ngày càng hoàn thiện thêm.
Em chân thành cảm ơn thầy Nguyễn Đình Thuân cùng các bạn trong lớp đã nhiệt tình hướng dẫn và giúp đỡ em trong suốt thời gian thực hiện đề tài. Và đặc biệt xin cảm ơn Khoa Ngoại Ngữ – Trường Cao đẳng Sư phạm Nha Trang đã tạo điều kiện giúp đỡ để đề tài có điều kiện tiếp tục chỉnh sửa, hoàn thiện.
58 trang |
Chia sẻ: vietpd | Lượt xem: 1699 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đồ án Chương trình học Tiếng Nga, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
PHẦN I: GIỚI THIỆU ĐỀ TÀI VÀ CÔNG CỤ LẬP TRÌNH 7
I.1. GIỚI THIỆU ĐỀ TÀI 7
1. Mục tiêu của đề tài 7
2. Yêu cầu của đề tài 7
I.2. CÔNG CỤ LẬP TRÌNH 8
1. Các tính năng của môi trường phát triển ứng dụng delphi 8
2. Cấu trúc chương trình delphi và unit 10
3. Lệnh điều khiển trong object pascal 11
4. Các kiểu dữ liệu trong ngôn ngữ object pascal 12
5. Hàm và thủ tục 14
6. Form và các thành phần điều khiển 16
7. Lập trình đồ họa, in ấn, multimedia và các đối tượng có liên quan 18
8. Thư viện liên kết động (dll) 19
9. Giới thiệu về WIN32 API và hệ thống thông điệp 20
Phần II: TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬ T 21
II.1. GIỚI THIỆU 21
1. Giải thuật và cấu trúc dữ liệu 21
2. Cấu trúc dữ liệu và các vấn đề liên quan 21
3. Các tiêu chuẩn đánh giá cấu trúc dữ liệu 21
4. Đánh giá độ phức tạp giải thuật 22
II.2. SẮP XẾP VÀ TÌM KIẾM 22
1.Một số giải thuật sắp xếp. 23
2. Các giải thuật tìm kiếm nội 24
II.3. CẤU TRÚC CÂY 25
1. Định nghĩa và khái niệm 25
2. Các cách biểu diễn cây 26
3. Cây nhị phân 26
4. Biểu diễn cây tổng quát bằng cây nhị phân 27
5. Cây nhị phân tìm kiếm 28
6. Cây nhị phân cân đối 29
7. Cây nhị phân tìm kiếm tối ưu 30
Phần III: TỔ CHỨC LƯU TRỮ CÂY TỪ ĐIỂN 31
Phần IV: THIẾT KẾ CHƯƠNG TRÌNH 34
V.1. TẠO BỘ GÕ VÀ FONT TIẾNG NGA CÓ DẤU NHẤN TRỌNG ÂM CHO NGƯỜI DÙNG 34
1. Khái quát về bộ gõ 34
2. Cách thiết kế bộ gõ Tiếng Nga và Tiếng Việt cho riêng chương trình 34
3. Phương pháp tạo Font Tiếng Nga mới 35
V.2. PHƯƠNG PHÁP LƯU ÂM THANH VÀ HÌNH ẢNH CHO CHƯƠNG TRÌNH TỪ ĐIỂN 37
1. Lưu âm thanh 37
2. Lưu hình ảnh 37
3. Cách thức nối kết các file âm thanh và hình vào chương trình 37
V.3. MỘT SỐ GIẢI THUẬT TRONG CHƯƠNG TRÌNH 38
1. Giải thuật tìm kiếm trên cây từ điển 38
2. Các bước tra từ 40
3. Các bước thêm từ 41
4. Các bước sửa từ 42
5. Các bước xóa từ 44
6. Giải thuật tìm kiếm nhị phân để chèn từ vào đúng vị trí trong danh sách 44
7. Mã lệnh tạo bộ gõ Tiếng Việt 46
8. Mã lệnh tạo bộ gõ Tiếng Nga 49
V.4. GIAO DIỆN CỦA CHƯƠNG TRÌNH VÀ CÁCH THỨC HOẠT ĐỘNG 51
1. Giao diện chính của chương trình với các menu thành phần 51
2. Giao diện Từ điển 52
3. Giao diện Ngữ pháp 56
4. Giao diện Bài tập 57
5. Giao diện Luyện nghe 59
6. Trang giới thiệu đề tài 62
Phần V: NHỮNG KHÓ KHĂN, THUẬN LỢI VÀ HƯỚNG PHÁT TRIỂN CHƯƠNG TRÌNH 63
1. Những khó khăn 63
2. Thuận lợi 63
3. Hướng khắc phục và phát triển chương trình 64
Phần VII: KẾT LUẬN 65
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Điểm của hội đồng: ......................................
LỜI MỞ ĐẦU
Ngôn ngữ vốn là phương tiện giao tiếp của loài người, hơn thế nữa ngôn ngữ còn giúp loài người hiểu nhau hơn để cùng giải quyết những khó khăn chung, tiến tới xây dựng một thế giới ngày càng tươi đẹp. Ngày nay, cùng với sự phát triển vượt bậc của công nghệ thông tin thì việc trao đổi liên lạc giữa người với người ngày càng dễ dàng hơn thông qua các ứng dụng tiện ích thực tế. Trong đó phải kể đến sự hỗ trợ của các chương trình từ điển, chúng giúp con người nhanh chóng nắm bắt ngôn ngữ của nhau đồng thời giúp họ thoát khỏi công việc nặng nhọc là tra cứu từ trong các quyển từ điển dày và nặng.
Hiện nay ở nước ta, ngoài tiếng Anh là ngoại ngữ chính thì tiếng Nga cũng là ngoại ngữ rất cần thiết cho nhiều ngành khoa học, đặc biệt là các ngành kỹ thuật như cơ khí, luyện kim, thuỷ tinh…
Vì thế thông qua ngôn ngữ lập trình trên máy tính, từ điển điện tử tiếng Nga sẽ tạo điều kiện thuận lợi hơn cho người dùng trong việc tra cứu từ vựng. Thêm vào đó cần có một chương trình tiếng Nga hoàn thiện về ngữ pháp, bài tập để phục vụ người dùng không những tra từ mà còn có thể học tốt ngôn ngữ này.
Mục tiêu này từ lâu đã là niềm thích thú của bản thân em, chính vì thế “Chương trình học tiếng Nga” được em chọn làm đề tài tốt nghiệp của mình.
Do hạn chế về thời gian thực tập nên đề tài không tránh khỏi những thiếu sót, rất mong được sự đóng góp ý kiến của thầy cô và các bạn để chương trình ngày càng hoàn thiện thêm.
Em chân thành cảm ơn thầy Nguyễn Đình Thuân cùng các bạn trong lớp đã nhiệt tình hướng dẫn và giúp đỡ em trong suốt thời gian thực hiện đề tài. Và đặc biệt xin cảm ơn Khoa Ngoại Ngữ – Trường Cao đẳng Sư phạm Nha Trang đã tạo điều kiện giúp đỡ để đề tài có điều kiện tiếp tục chỉnh sửa, hoàn thiện.
Sinh viên thực hiện
PHẦN I: GIỚI THIỆU ĐỀ TÀI VÀ CÔNG CỤ LẬP TRÌNH
I.1. GIỚI THIỆU ĐỀ TÀI
1. Mục tiêu của đề tài
Nhằm tạo điều kiện thuận lợi và linh hoạt hơn cho các bạn học sinh, sinh viên cũng như các bạn mới học Tiếng Nga trong việc tra cứu từ vựng, tài liệu ngữ pháp, bài tập ứng dụng cũng như luyện kỹ năng nghe. Chương trình học Tiếng Nga hướng tới khả năng đáp ứng đầy đủ các yếu tố trên với các chức năng như sau:
Tra cứu Từ điển Nga Việt.
Tham khảo Ngữ pháp Tiếng Nga cơ bản.
Thực hành bài tập.
Thực hành kĩ năng nghe.
2. Yêu cầu của đề tài
Chương trình học Tiếng Nga cần thỏa mãn các yêu cầu sau:
- Từ điển có các chức năng cơ bản: Tra từ, Thêm từ, Sửa từ, Xóa từ và tra lại các từ trước đó.
- Có thư viện âm thanh, hình ảnh hỗ trợ cho các từ trong Từ điển.
- Giới thiệu bàn phím Tiếng Nga nhằm tạo điều kiện thuận lợi cho người dùng làm quen với ký tự trên bàn phím.
- Giao diện bàn phím phải thuận lợi cho người sử dụng trong quá trình tra từ:
+ Có chức năng tắt/mở hiển thị bàn phím.
+ Chức năng soạn thảo từ bằng cách click chuột trên các nút chữ.
- Ngữ pháp cô đọng, dễ hiểu.
- Bài tập không quá khó để phù hợp với kiến thức của người mới học, đồng thời giúp người học nắm thêm từ vựng và áp dụng ngữ pháp đã học.
- Thực hành nghe với những bài đối thoại do người bản xứ đọc, âm thanh rõ ràng, chất lượng tốt.
- Cấu trúc dữ liệu của chương trình phải gọn và không gây lãng phí bộ nhớ.
- Các thuật toán sắp xếp và tìm kiếm trên cây đủ nhanh, hiệu quả.
I.2. CÔNG CỤ LẬP TRÌNH
Chương trình được thực hiện với ngôn ngữ Delphi, là ngôn ngữ có cấu trúc tương tự ngôn ngữ Pascal, nhưng thực hiện theo hướng lập trình hướng đối tượng. Qua một thời gian tìm hiểu về ngôn ngữ này, ta có thể rút ra một số nhận xét sau:
- Delphi là một bộ phận của môi trường Windows, phát triển ứng dụng có hiệu quả cao và hỗ trợ một cách nhanh chóng các ứng dụng với một lượng mã rất ít.
Delphi chính xác là ngôn ngữ Object Pascal dễ học và dễ hiểu.
Trong chương trình này Delphi áp dụng để:
+ Xây dựng các ứng dụng Windows trực quan tương tự Visual Basic.
+ Thiết kế ứng dụng cơ sở dữ liệu.
+ Biên dịch các ứng dụng DLL (thư viện liên kết động).
+ Xây dựng trình điều khiển thiết bị.
+ Gọi hàm API cấp thấp.
Với Delphi, mọi ý tưởng về hình ảnh, đồ họa, âm thanh, lập trình hệ thống, truy xuất cơ sở dữ liệu, lập trình mạng, Internet …. đều có thể trở thành hiện thực.
1. Các tính năng của môi trường phát triển ứng dụng delphi
1.1 Môi trường phát triển trực quan
Delphi cho phép xây dựng ứng dụng bằng cách chọn các thành phần công cụ có sẳn từ bảng công cụ đặt chúng vào Form (cửa sổ chính), lắp ghép và tạo nên một ứng dụng hoàn chỉnh.
Delphi sẽ tự động sinh mã khi kết nối các công cụ trên Form. Cách tiếp cận lập trình này tương tự như môi trường Visual Basic và các môi trường phát triển trực quan khác. Tuy nhiên kỹ thuật lập trình hướng đối tượng thực sự (Object Oriented Programming - OPP) là một trong số những điểm khác biệt để nhận ra Delphi.
1.2. Lập trình biên dịch 32-bit được tối ưu hóa
Điểm đặc biệt tách rời Delphi với các môi trường phát triển trực quan khác (như Visual Basic) là khả năng biên dịch các chương trình thực thi .exe độc lập 32-bit chạy rất nhanh và hiệu quả.
Trình biên dịch Delphi cũng đưa ra những chỉ dẫn bổ ích giúp quyết định sự tối ưu, loại bỏ những biến dư thừa không sử dụng đến, thông báo lỗi chính xác. Mã nguồn của chương trình vì thế sẽ trở nên trong sáng, dễ hiểu, tránh được những lỗi tiềm ẩn.
1.3. Truy cập và xử lý cơ sở dữ liệu mềm dẻo
Ứng dụng Delphi có khả năng giao tiếp và truy xuất nhiều loại cơ sở dữ liệu khác nhau, từ cơ sở dữ liệu cục bộ (local database) như FoxPro, Acces cho đến cơ sở dữ liệu kết nối từ xa (remote database) như SQL Server, Oracle, InterBase, ...
1.4. Ngôn ngữ và thư viện
- Delphi sử dụng ngôn ngữ hướng đối tượng Object Pascal (một phiên bản tiếp theo của ngôn ngữ Pascal cũ). Object Pascal cung cấp một tập hợp ngôn ngữ mở rộng hiệu quả và uyển chuyển hơn ngôn ngữ Pascal bao gồm:
+ Xử lý lỗi ngoại lệ (Exception handling): cho phép chương trình đón bắt các lỗi xảy ra trong một khối lệnh lúc thực thi.
+ Kiểm tra kiểu dữ liệu lúc thực thi (RTTI hay Runtime Time Information): chương trình có thể kiểm tra kiểu dữ liệu của một đối tượng lúc ứng dụng thực thi (runtime) thay vì vào thời điểm biên dịch (compile - time).
+ Hỗ trợ từ khóa mới Interface: từ khóa này được sử dụng để phát triển các ứng dụng COM. Đồng thời có thể xây dựng nhiều lớp giao tiếp (interface) dành cho một đối tượng nào đó.
+ Kiểu chuỗi không giới hạn (unlimited-length string): với Object Pascal kiểu chuỗi có thể chứa số ký tự không giới hạn. Theo lý thuyết có thể chứa một chuỗi với kích thước ...2GB (cũng có nghĩa là khoảng 2 tỉ ký tự).
+ Kiểu dữ liệu tiền tệ (currency type): hướng đến môi trường xí nghiệp và cơ sở dữ liệu, Object Pascal hỗ trợ cách tính toán cho các ứng dụng xử lý giao dịch về tài chính dựa trên kiểu dữ liệu currency
+ Kiểu dữ liệu variant (“không kiểu” hay “untyped data”): nếu ngại khai báo kiểu tường minh, ta có thể sử dụng biến kiểu variant dùng để chứa và tính toán với mọi kiểu dữ liệu.
- Thư viện các thành phần công cụ trực quan VCL (Visual Component Library) là bộ khung làm việc hướng đối tượng chủ yếu của Delphi. Trong Delphi, mỗi đối tượng hay thành phần VCL được nắm kéo từ bảng công cụ gắn lên Form đều tương tác chặt chẽ với nhau thông qua các lớp đối tượng. Đồng thời có thể dễ dàng thay đổi cách ứng
xử của đối tượng một cách trực quan từ môi trường Delphi với giao diện đồ họa thân thiện.
2. Cấu trúc chương trình delphi và unit
– Chương trình được xây dựng từ các đa thể mã nguồn nhỏ được gọi là Unit. Mỗi Unit chứa trong một tập tin và được biên dịch độc lập; Unit được biên dịch ra các thư viện: đó là các tập tin mang tên mở rộng .DCU. Đối với người lập trình Pascal, các tập tin .DCU hoàn toàn tương đương với tập tin thư viện của Pascal .TPU. Các Unit dùng để liên kết với nhau tạo ra ứng dụng.
Unit cho phép:
+ Chia một chương trình lớn thành nhiều đơn thể (module) nhỏ có thể soạn thảo mã nguồn và biên dịch độc lập với nhau.
+ Tạo ra thư viện dùng để lưu trữ hàm dùng chung giữa các chương trình.
+ Phân phối thư viện đã biên dịch đến các nhà phát triển khác mà không cần kèm theo mã nguồn.
– Chương trình chính được lưu trong tập tin dự án (project) có phần mở rộng là .DPR, còn hầu hết mã nguồn của chương trình lại nằm trong Unit với tên truyền thống .PAS.
* Thành phần của một Project bao gồm:
a) DPR : file Project:
Liệt kê tất cả form và unit file trong Project.
Lưu giữ mã của các ứng dụng.
b) PAS : Mã nguồn cho Unit.
Một file .PAS được tạo ra cho mỗi form trong Project. File này chứa tất cả các khai báo và thủ tục.
c) DFM : file lưu dạng form.
Là file nhị phân, chứa những thuộc tính của form trong Project. Được tạo dựa trên sự tương ứng của file.PAS cho mỗi form.
d) OPT : file tùy chọn của Project. File văn bản, chứa những cài đặt hiện hành cho tùy chọn của Project.
e) RES : Compiler resource file. File nhị phân, chứa những biểu tượng ứng dụng và những tài nguyên khác.
( ~DP : file lưu của Project.
( ~PA : File lưu của Unit.
( ~DF : file lưu của Graphic form.
( DSK : file cài đặt màn hình.
( EXE : file thực thi cho ứng dụng, những file này sẽ sát nhập với những file .DCU (điều này có nghĩa ứng dụng không cần file. DCU khi thực thi).
( DCU : file mã đối tượng đơn vị. Được tạo ra khi biên dịch file.PAS tương ứng.
( DLL : file liên kết động.
Ngoài ra còn một số file hỗ trợ như:
( Image file ( .BMP, .WMF ): là file bitmap, thể hiện khi sử dụng các thành phần loại Timage, nó có thể nằm bất cứ nơi đâu. Khi cần thiết, Delphi có thể chụp một " bức ảnh" file trên đĩa và nó lưu giữ trên file. DFM và nó sẽ phiên dịch vào trong file thực thi.
( Icon files (. ICO), Help files ( .HLP ) : tương tự như Image file.
3. Lệnh điều khiển trong object pascal
3.1. Lệnh GOTO
Là lệnh nhảy không điều kiện, nó chuyển hướng thực thi của chương trình đến vị trí mà nhãn label đang đứng.
Cú pháp: goto label
Lệnh goto thường dùng để thoát khỏi vòng lặp.
3.2. Các lệnh cấu trúc
* Lệnh with: dùng để phân rã các cấu trúc phức hợp của một thành phần.
* Lệnh điều kiện gồm lệnh if và lệnh case: dùng để rẻ nhánh chương trình theo một tiêu chuẩn nào đó.
* Lệnh lặp gồm lệnh repeat, ưhile và for: dùng để quay trở lại thực hiện mã lệnh vơi một điều kiện nào đó.
* Lệnh ngắt break và continue: được sử dụng bên trong vòng lặp repeat, ưhile và for.
* Các nhóm lệnh đặc biệt khác như raise, try....except và try....final: dùng để xử lý những lỗi ngoại lệ (exception) phát sinh trong khối lệnh.
4. Các kiểu dữ liệu trong ngôn ngữ object pascal
4.1. Kiểu dữ liệu đơn giản
* Kiểu thứ tự: gồm integer, char, boolean, kiểu liệt kê và kiểu tập con.
* Kiểu số nguyên Integer
* Kiểu kí tự Char: Delphi có 2 kiểu kí tự cơ sở là AnsiChar và WideChar.
- AnsiChar là kiểu kí tự 1 byte (tương tự bộ kí tự ASCII).
- WideChar là kiểu kí tự 2 byte, dùng biểu diễn bộ mã Unicode cho tập hợp kí tự.
* Kiểu boolean: gồm
- ByteBool tương đương với giá trị luận lý kiểu byte có kích thước 1 byte.
- WordBool tương đương với giá trị luận lý kiểu Word có kích thước 2 byte.
- LongBool tương đương với giá trị luận lý kiểu LongInt có kích thước 4 byte.
* Kiểu liệt kê: để khai báo ta sử dụng cú pháp sau
Type typeName = (val 1, ..., val n )
Với typeName là tên kiểu (hay tên tập hợp); val là định danh hay tên gọi của các phần tử tự do người lập trình tự đặt.
* Kiểu tập con: là một định nghĩa thu hẹp của các kiểu thứ tự khác. Các toán tử áp dụng trên kiểu thứ tự đều có thể áp dụng cho kiểu tập con tương ứng.
4.2. Kiểu số thực
Gồm: Real48, Single, Double, Extended, Comp, Currency, Real
4.3. Kiểu chuỗi
Gồm: ShortString, AnsiString, WideString.
4.4. Kiểu cấu trúc
* Tập hợp (Sets): là một tập các giá trị cùng kiểu thứ tự. Mỗi biến kiểu tập hợp có thể chứa nhiều phần tử của tập hợp.
Cú pháp: set of baseType
Trong đó baseType là kiểu thứ tự bất kì (thường là tập con) có số phần tử không quá 256.
* Mảng (Array): dùng để biểu diễn một tập hợp các phần tử có cùng kiểu dữ liệu. Các phần tử mảng được truy xuất theo chỉ số, mỗi phần tử tương ứng với một chỉ số duy nhất. Mảng có thể được cấp phát tĩnh và cấp phát động vùng nhớ để lưu trữ các giá trị mà nó nắm giữ.
- Cú pháp xây dựng mảng tĩnh: array [indexType 1, ..., indexType n] of baseType
Trong đó indexType là một tập các số có kiểu thứ tự (hay bất kỳ các tập con thứ tự khác không vượt quá 2 GB) dùng làm chỉ số mảng.
baseType là kiểu dữ liệu chung cho các phần tử của mảng.
- Cú pháp xây dựng mảng động: array of baseType
Trong đó baseType là kiểu dữ liệu của các phần tử mảng.
* Bản ghi (Record): là một tập hợp gồm nhiều phần tử có các kiểu khác nhau hợp lại. Mỗi phần tử trong cấu trúc bản ghi được gọi là trường (field). Khai báo kiểu bản ghi sẽ chỉ định tên và kiểu cho mỗi trường.
Cú pháp: type recordTypeName = record
fieldList 1 : type 1;
....
fieldList n : type n;
end;
Trong đó recordTypeName là tên kiểu bản ghi do người sử dụng đặt.
fieldList n cho biết tên trường mà bản ghi lưu trữ.
type n cho biết kiểu dữ liệu tương ứng với trường.
* Kiểu tập tin (File): bao gồm một tập hợp các phần tử có cùng kiểu được lưu thành tập tin trên đĩa.
Cú pháp: type fieldTypeName = file of type
Trong đó fieldTypeName là tên định danh của kiểu file.
type là các kiểu có kích thước cố định.
4.5. Con trỏ và kiểu con trỏ
* Con trỏ là một biến lưu giữ địa chỉ của một vùng nhớ.
* Cú pháp khai báo kiểu con trỏ: type pointerTypeName = ^type
4.6. Kiểu thủ tục (procedural type)
Kiểu thủ tục cho phép sử dụng hàm, thủ tục như một giá trị. Có thể thực hiện các phép gán hàm và thủ tục cho biến, truyền tên hàm và thủ tục như một đối số trong các lời gọi hàm khác.
4.7. Kiểu Variant
Kiểu Variant được sử dụng khi phải xử lý loại dữ liệu không biết trước được kiểu chính xác của nó lúc biên dịch.
Các biến kiểu Variant tiêu tốn nhiều bộ nhớ hơn các biến có kiểu dữ liệu thông thường và điều đó làm cho tốc độ thực thi của chương trình sẽ chậm đi, đồng thời trình biên dịch sẽ không thể nào kiểm tra tính tương thích của kiểu dữ liệu trong các phép toán.
5. Hàm và thủ tục
Thủ tục (procedure) và hàm (function) thường được xem như các thường trình (routines). Bản thân chúng là những khối lệnh có thể được gọi từ những vị trí khác nhau của chương trình.
Hàm là một thường trình trả về trị, sau khi thực thi xong khối lệnh.
Thủ tục là thường trình chỉ dùng thực thi khối lệnh mà không trả về trị.
5.1. Khai báo thủ tục
Khai báo thủ tục theo khuôn mẫu sau:
procedure procedureName(parameterList); directives;
localDeclaration;
begin
statements
end;
trong đó procedureName là tên của thủ tục.
parameterList là danh sách các tham số truyền cho thủ tục.
directives là các chỉ dẫn để gọi thủ tục.
localDeclaration là các khai báo biến cục bộ bên trong thủ tục.
statements sẽ được thực thi khi gọi đến thủ tục.
5.2. Khai báo hàm
Khai báo hàm theo khuôn mẫu sau:
function functionName(parameterList): returnType;directives;
localDeclaration;
begin
statements
end;
trong đó functionName là tên của hàm.
parameterList là danh sách các tham số truyền cho hàm.
returnType là kiểu dữ liệu mà hàm trả về.
Directives là các chỉ dẫn để gọi hàm.
localDeclaration là các khai báo biến cục bộ bên trong hàm.
statements là tập hợp các khối lệnh thể hiện phần thân của hàm.
5.3. Các qui ước gọi hàm và thủ tục
Khi khai báo hàm hay thủ tục, ta có thể khai báo thêm các “qui ước gọi hàm” bằng những chỉ thị (directives) kèm theo như register, pascal, cdecl, stdcall, safecall...
Qui ước gọi hàm sẽ qui định cách đặt và lấy các tham số truyền cho hàm hay thủ tục ra khỏi ngăn xếp (stack) của chương trình gọi.
Ví dụ: + chỉ thị register, pascal sẽ qui ước đặt tham số truyền cho hàm (hay thủ tục) vào ngăn xếp theo thứ tự từ trái sang phải.
+ chỉ thị cdecl, stdcall, safecall sẽ gọi hàm và đặt các tham số vào ngăn xếp theo thứ tự từ phải sang trái.
5.4. Khai báo trước (forward)
Chỉ thị forward đặt sau một hàm hay thủ tục đại diện cho khối lệnh chưa được khai báo của hàm hay thủ tục.
Mục đích của khai báo forward là để mở rộng phạm vi hoạt động của hàm và thủ tục. Nó cho phép chương trình gọi đến hàm trước khi thân hàm hay thủ tục được định nghĩa chi tiết.
5.5. Khai báo ngoài (external)
Chỉ thị external được dùng để báo cho trình biên dịch biết thân hàm hay thủ tục được cài đặt ở một nơi khác.
Các hàm hay thủ tục khai báo external có phần định nghĩa và cài đặt thân hàm từ một ngôn ngữ khác thông qua tập tin mã nhị phân .OBJ hay thư viện liên kết động DLL.
Khai báo external với thư viện liên kết động DLL theo khuôn mẫu sau:
FunctionDeclaration external StringConstant
Trong đó FunctionDeclaration là các khai báo hàm thông thường.
StringConstant là một hằng chuỗi cho biết tên tập tin DLL (có thể bao gồm cả đường dẫn đầy đủ).
6. Form và các thành phần điều khiển
6.1. Xây dựng ứng dụng từ những thành phần công cụ trực quan VCL
Một đối tượng VCL thường bao gồm phương thức (method), thuộc tính (property) và các tình huống (event) để phản ứng lại với sự tương tác từ phía người dùng.
6.2. Các thành phần điều khiển của Windows
Những đối tượng này có thể được tìm thấy trên bảng công cụ Standard. Đây là những đối tượng chuẩn giúp người dùng tương tác với giao diện đồ họa trong Windows được dễ dàng và thuận tiện hơn.
Sau đây là những tính năng của các đối tượng:
N