Xây dựng Chương trình học tiếng Nga
Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thuân MỤC LỤC NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Chương trình học Tiếng Nga Svth: Hà Thị Thanh Ngà Trang Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thuân NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Chương trình học Tiếng Nga Svth: Hà Thị Thanh Ngà Trang Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thuân Điểm hội đồng: Chương trình học Tiếng Nga Svth: Hà Thị Thanh Ngà Trang Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thuân LỜI MỞ ĐẦU Ngơn ngữ vốn phương tiện giao tiếp lồi người, ngơn ngữ cịn giúp lồi người hiểu để giải khó khăn chung, tiến tới xây dựng giới ngày tươi đẹp Ngày nay, với phát triển vượt bậc cơng nghệ thơng tin việc trao đổi liên lạc người với người ngày dễ dàng thơng qua ứng dụng tiện ích thực tế Trong phải kể đến hỗ trợ chương trình từ điển, chúng giúp người nhanh chóng nắm bắt ngôn ngữ đồng thời giúp họ khỏi cơng việc nặng nhọc tra cứu từ từ điển dày nặng Hiện nước ta, ngồi tiếng Anh ngoại ngữ tiếng Nga ngoại ngữ cần thiết cho nhiều ngành khoa học, đặc biệt ngành kỹ thuật khí, luyện kim, thuỷ tinh… Vì thơng qua ngơn ngữ lập trình máy tính, từ điển điện tử tiếng Nga tạo điều kiện thuận lợi cho người dùng việc tra cứu từ vựng Thêm vào cần có chương trình tiếng Nga hoàn thiện ngữ pháp, tập để phục vụ người dùng khơng tra từ mà cịn học tốt ngơn ngữ Mục tiêu từ lâu niềm thích thú thân em, “Chương trình học tiếng Nga” em chọn làm đề tài tốt nghiệp Do hạn chế thời gian thực tập nên đề tài khơng tránh khỏi thiếu sót, mong đóng góp ý kiến thầy bạn để chương trình ngày hồn thiện thêm Em chân thành cảm ơn thầy Nguyễn Đình Thuân bạn lớp nhiệt tình hướng dẫn giúp đỡ em suốt thời gian thực đề 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, hồn thiện Sinh viên thực Chương trình học Tiếng Nga Svth: Hà Thị Thanh Ngà Trang Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thuâ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 Mục tiêu đề tài Nhằm tạo điều kiện thuận lợi linh hoạt cho bạn học sinh, sinh viên bạn học Tiếng Nga việc tra cứu từ vựng, tài liệu ngữ pháp, tập ứng dụng luyện kỹ nghe Chương trình học Tiếng Nga hướng tới khả đáp ứng đầy đủ yếu tố với chức sau: - Tra cứu Từ điển Nga Việt - Tham khảo Ngữ pháp Tiếng Nga - Thực hành tập - Thực hành kĩ nghe Yêu cầu đề tài Chương trình học Tiếng Nga cần thỏa mãn yêu cầu sau: - Từ điển có chức bản: Tra từ, Thêm từ, Sửa từ, Xóa từ tra lại từ trước - Có thư viện âm thanh, hình ảnh hỗ trợ cho từ 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ự bàn phím - Giao diện bàn phím phải thuận lợi cho người sử dụng q trình tra từ: + Có chức tắt/mở hiển thị bàn phím + Chức soạn thảo từ cách click chuột nút chữ - Ngữ pháp cô đọng, dễ hiểu - Bài tập không khó để phù hợp với kiến thức người học, đồng thời giúp người học nắm thêm từ vựng áp dụng ngữ pháp học - Thực hành nghe với đối thoại người xứ đọc, âm rõ ràng, chất lượng tốt - Cấu trúc liệu chương trình phải gọn khơng gây lãng phí nhớ - Các thuật tốn xếp tìm kiếm đủ nhanh, hiệu I.2 CƠNG CỤ LẬP TRÌNH Chương trình học Tiếng Nga Svth: Hà Thị Thanh Ngà Trang Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thuân Chương trình thực với ngơn ngữ Delphi, ngơn ngữ có cấu trúc tương tự ngôn ngữ Pascal, thực theo hướng lập trình hướng đối tượng Qua thời gian tìm hiểu ngơn ngữ này, ta rút số nhận xét sau: - Delphi phận môi trường Windows, phát triển ứng dụng có hiệu cao hỗ trợ cách nhanh chóng ứng dụng với lượng mã - Delphi xác ngơn ngữ Object Pascal dễ học dễ hiểu - Trong chương trình Delphi áp dụng để: + Xây dựng ứng dụng Windows trực quan tương tự Visual Basic + Thiết kế ứng dụng sở liệu + Biên dịch ứ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, ý tưởng hình ảnh, đồ họa, âm thanh, lập trình hệ thống, truy xuất sở liệu, lập trình mạng, Internet … trở thành thực Các tính 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 cách chọn 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 tạo nên ứng dụng hoàn chỉnh Delphi tự động sinh mã kết nối công cụ Form Cách tiếp cận lập trình tương tự mơi trường Visual Basic 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 (Object Oriented Programming - OPP) số điểm khác biệt để nhận Delphi 1.2 Lập trình biên dịch 32-bit tối ưu hóa Điểm đặc biệt tách rời Delphi với môi trường phát triển trực quan khác (như Visual Basic) khả biên dịch chương trình thực thi exe độc lập 32bit chạy nhanh hiệu Trình biên dịch Delphi đưa dẫn bổ ích giúp định tối ưu, loại bỏ biến dư thừa không sử dụng đến, thơng báo lỗi xác Mã nguồn chương trình trở nên sáng, dễ hiểu, tránh lỗi tiềm ẩn Chương trình học Tiếng Nga Svth: Hà Thị Thanh Ngà Trang Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thuân 1.3 Truy cập xử lý sở liệu mềm dẻo Ứng dụng Delphi có khả giao tiếp truy xuất nhiều loại sở liệu khác nhau, từ sở liệu cục (local database) FoxPro, Acces sở liệu kết nối từ xa (remote database) SQL Server, Oracle, InterBase, 1.4 Ngôn ngữ thư viện - Delphi sử dụng ngôn ngữ hướng đối tượng Object Pascal (một phiên ngôn ngữ Pascal cũ) Object Pascal cung cấp tập hợp ngôn ngữ mở rộng hiệu uyển chuyể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 lỗi xảy khối lệnh lúc thực thi + Kiểm tra kiểu liệu lúc thực thi (RTTI hay Runtime Time Information): chương trình kiểm tra kiểu liệu đối tượng lúc ứng dụng thực thi (runtime) thay vào thời điểm biên dịch (compile - time) + Hỗ trợ từ khóa Interface: từ khóa sử dụng để phát triển ứng dụng COM Đồng thời xây dựng nhiều lớp giao tiếp (interface) dành cho đối tượng + Kiểu chuỗi khơng giới hạn (unlimited-length string): với Object Pascal kiểu chuỗi chứa số ký tự khơng giới hạn Theo lý thuyết chứa chuỗi với kích thước 2GB (cũng có nghĩa khoảng tỉ ký tự) + Kiểu liệu tiền tệ (currency type): hướng đến mơi trường xí nghiệp sở liệu, Object Pascal hỗ trợ cách tính tốn cho ứng dụng xử lý giao dịch tài dựa kiểu liệu currency + Kiểu liệu variant (“không kiểu” hay “untyped data”): ngại khai báo kiểu tường minh, ta sử dụng biến kiểu variant dùng để chứa tính toán với kiểu liệu - Thư viện thành phần công cụ trực quan VCL (Visual Component Library) khung làm việc hướng đối tượng chủ yếu Delphi Trong Delphi, đối tượng hay thành phần VCL nắm kéo từ bảng công cụ gắn lên Form tương tác chặt chẽ với thông qua lớp đối tượng Đồng thời dễ dàng thay đổi cách ứng xử đối tượng cách trực quan từ môi trường Delphi với giao diện đồ họa thân thiện Cấu trúc chương trình delphi unit Chương trình học Tiếng Nga Svth: Hà Thị Thanh Ngà Trang Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thuân – Chương trình xây dựng từ đa thể mã nguồn nhỏ gọi Unit Mỗi Unit chứa tập tin biên dịch độc lập; Unit biên dịch thư viện: tập tin mang tên mở rộng DCU Đối với người lập trình Pascal, tập tin DCU hoàn toàn tương đương với tập tin thư viện Pascal TPU Các Unit dùng để liên kết với tạo ứng dụng Unit cho phép: + Chia chương trình lớn thành nhiều đơn thể (module) nhỏ soạn thảo mã nguồn biên dịch độc lập với + Tạo thư viện dùng để lưu trữ hàm dùng chung chương trình + Phân phối thư viện biên dịch đến nhà phát triển khác mà không cần kèm theo mã nguồn – Chương trình lưu tập tin dự án (project) có phần mở rộng DPR, cịn hầu hết mã nguồn chương trình lại nằm Unit với tên truyền thống PAS * Thành phần Project bao gồm: a) DPR : file Project: Liệt kê tất form unit file Project Lưu giữ mã ứng dụng b) PAS : Mã nguồn cho Unit Một file PAS tạo cho form Project File chứa tất khai báo thủ tục c) DFM : file lưu dạng form Là file nhị phân, chứa thuộc tính form Project Được tạo dựa tương ứng file.PAS cho form d) OPT : file tùy chọn Project File văn bản, chứa cài đặt hi ện hành cho tùy chọn Project e) RES : Compiler resource file File nhị phân, chứa biểu tượng ứng dụng tài nguyên khác • ~DP : file lưu Project • ~PA : File lưu Unit • ~DF : file lưu Graphic form • DSK : file cài đặt hình • EXE : file thực thi cho ứng dụng, file sát nhập với file DCU (điều có nghĩa ứng dụng khơng cần file DCU thực thi) • DCU : file mã đối tượng đơn vị Được tạo biên d ịch file.PAS tương ứng • DLL : file liên kết động Chương trình học Tiếng Nga Svth: Hà Thị Thanh Ngà Trang Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thn Ngồi cịn số file hỗ trợ như: • Image file ( BMP, WMF ): file bitmap, thể hi ện s d ụng thành phần loại Timage, nằm nơi đâu Khi cần thi ết, Delphi chụp " ảnh" file đĩa lưu giữ file DFM s ẽ phiên dịch vào file thực thi • Icon files ( ICO), Help files ( HLP ) : tương tự Image file Lệnh điều khiển object pascal 3.1 Lệnh GOTO Là lệnh nhảy không điều kiện, chuyển hướng thực thi chương trình đến vị trí mà nhãn label đứng Cú pháp: goto label Lệnh goto thường dùng để 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ấu trúc phức hợp thành phần * Lệnh điều kiện gồm lệnh if lệnh case: dùng để rẻ nhánh chương trình theo tiêu chuẩn * Lệnh lặp gồm lệnh repeat, ưhile for: dùng để quay trở lại thực mã lệnh vơi điều kiện * Lệnh ngắt break continue: sử dụng bên vòng lặp repeat, ưhile for * Các nhóm lệnh đặc biệt khác raise, try except try final: dùng để xử lý lỗi ngoại lệ (exception) phát sinh khối lệnh Các kiểu liệu ngôn ngữ object pascal 4.1 Kiểu liệu đơn giản * Kiểu thứ tự: gồm integer, char, boolean, kiểu liệt kê kiểu tập * Kiểu số nguyên Integer * Kiểu kí tự Char: Delphi có kiểu kí tự sở AnsiChar WideChar - AnsiChar kiểu kí tự byte (tương tự kí tự ASCII) - WideChar kiểu kí tự byte, dùng biểu diễn 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 byte Chương trình học Tiếng Nga Svth: Hà Thị Thanh Ngà Trang Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thuân - WordBool tương đương với giá trị luận lý kiểu Word có kích thước byte - LongBool tương đương với giá trị luận lý kiểu LongInt có kích thước 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 tên kiểu (hay tên tập hợp); val định danh hay tên gọi phần tử tự người lập trình tự đặt * Kiểu tập con: định nghĩa thu hẹp kiểu thứ tự khác Các toán tử áp dụng kiểu thứ tự áp dụng cho kiểu tập 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): tập giá trị kiểu thứ tự Mỗi biến kiểu tập hợp chứa nhiều phần tử tập hợp Cú pháp: set of baseType Trong baseType kiểu thứ tự (thường tập con) có số phần tử khơng 256 * Mảng (Array): dùng để biểu diễn tập hợp phần tử có kiểu liệu Các phần tử mảng truy xuất theo số, phần tử tương ứng với số Mảng cấp phát tĩnh cấp phát động vùng nhớ để lưu trữ giá trị mà nắm giữ - Cú pháp xây dựng mảng tĩnh: array [indexType 1, , indexType n] of baseType Trong indexType tập số có kiểu thứ tự (hay tập thứ tự khác không vượt GB) dùng làm số mảng baseType kiểu liệu chung cho phần tử mảng - Cú pháp xây dựng mảng động: array of baseType Trong baseType kiểu liệu phần tử mảng * Bản ghi (Record): tập hợp gồm nhiều phần tử có kiểu khác hợp lại Mỗi phần tử cấu trúc ghi gọi trường (field) Khai báo kiểu ghi định tên kiểu cho trường Cú pháp: type recordTypeName = record Chương trình học Tiếng Nga Svth: Hà Thị Thanh Ngà Trang 10 Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thuân end; chr(226),chr(194):begin PostMessage(Editor.handle,WM_CHAR,8,1); PostMessage(Editor.handle,WM_CHAR,ord(prevchar)+1,1); handled:=true; end; end; '5':case prevchar of 'a','e','o','u','y','i',chr(246),chr(244):key:=chr(239); 'A','E','O','U','Y','I',chr(214),chr(212):key:=chr(207); chr(234),chr(202):begin PostMessage(Editor.handle,WM_CHAR,8,1); PostMessage(Editor.handle,WM_CHAR,ord(prevchar)+1,1); handled:=true; end; chr(226),chr(194):begin PostMessage(Editor.handle,WM_CHAR,8,1); PostMessage(Editor.handle,WM_CHAR,ord(prevchar)+2,1); handled:=true; end; end; '6':case prevchar of 'a','e','o':key:=chr(226); 'A','E','O':key:=chr(194); end; '7':begin if prevchar in ['U','O','u','o'] then begin postmessage(Editor.handle,WM_CHAR,8,1); handled:=true; end; case prevchar of 'u':postmessage(Editor.handle,WM_CHAR,246,1); 'U':postmessage(Editor.handle,WM_CHAR,214,1); 'o':postmessage(Editor.handle,WM_CHAR,244,1); Chương trình học Tiếng Nga Svth: Hà Thị Thanh Ngà Trang 43 Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thuân 'O':postmessage(Editor.handle,WM_CHAR,212,1); end; end; '8':case prevchar of 'a':key:=chr(234); 'A':key:=chr(202); end; '9':begin if prevchar in ['D','d'] then begin postmessage(Editor.handle,WM_CHAR,8,1); handled:=true; end; case prevchar of 'd':postmessage(Editor.handle,WM_CHAR,241,1); 'D':postmessage(Editor.handle,WM_CHAR,209,1); end; end; end; prevchar:=key; msg.wparam:=ord(key); end; end; Mã lệnh tạo gõ Tiếng Nga //**Thủ tục đổi mã font procedure DoiMaFont(formTuDien: TfrmNgaVietAnh; MaFont: byte); begin PostMessage(formTuDien.cboNhapTu.handle,WM_CHAR,8,1); PostMessage(formTuDien.cboNhapTu.handle,WM_CHAR,MaFont,1); end; {==============} //** Thủ tục chọn font cho đối tượng tiếng Nga procedure _ChoseFont(key:char; chose: byte);export;stdcall; begin Chương trình học Tiếng Nga Svth: Hà Thị Thanh Ngà Trang 44 Đồ án tốt nghiệp gvhd :Th.s Nguyễn Đình Thuân case key of 'f':DoiMaFont(chose,224); 'F':DoiMaFont(chose,192); ',':DoiMaFont(chose,225); '