1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Toán tin: Khảo sát và vẽ đồ thị hàm số

154 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Khảo Sát Và Vẽ Đồ Thị Hàm Số
Tác giả Lê Văn Doan
Người hướng dẫn TS. Nguyễn Hữu Thông
Trường học Trường Đại Học Sư Phạm TP. HCM
Chuyên ngành Toán - Tin Học
Thể loại luận văn tốt nghiệp
Năm xuất bản 2005
Thành phố Hồ Chí Minh
Định dạng
Số trang 154
Dung lượng 93,82 MB

Nội dung

Đề tài của em là một trong những phần mém ứng dụng vẻ tin học trong trường học đó là khảo sát và vẽ đồ thị hàm số ở lớp 12, công việc này đối với các thầy cô dạy toán ở phô thông cụ thé

Trang 1

BỘ GIÁO ĐỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HÒ CHÍ MINH

KHOA TOÁN - TIN HỌC

Lê Văn Đoan

LUAN VAN TOT NGHIEP

GIAO VIEN HUONG DAN:

TS NGUYEN HUU THONG

THANG 9 NAM 2005

Trang 2

PAI HOC

SP

Te mS cri mines

_BQ GIÁO DỤC & ĐÀO TAO

TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HCM

KHOA TOÁN - TIN HỌC

GVHD : TS NGUYEN HỮU THONG

)|SVTH: = LÊVĂN DOAN

Trang 3

Lời cảm ơn!

Sư Phạm TP HCM đã tận tâm, tận tình chi bảo, giảng day cho em nắm vững những kiến thức qua những năm tháng ngôi trên giảng đường Những kiến thức giảng dạy

đã được các thây, các cô sàng lọc, chọn lựa, tôm gọn dé truyền đạt cho chúng em

những kiến thức mới mẻ nhất, gọn gàng nhất và uyên thâm nhất Những kién thức đó

Sẽ là hành trang trong suốt cuộc đời giảng day và làm việc sau nay của em

Em xin cam ơn sâu sắc đến thay Nguyễn Hữu Thông, thay vừa là người giảng day, vừa là người hướng dân em làm luận văn Ngoài đời thay rất giản di, hiển từ, kiến thức Tin học sâu rộng chỉ bảo em tận tình, thay thường nêu những quan điểm,

nhận xét, đánh giá đây tâm huyết của mình cho bài luận văn của em để nó có thể

hoàn thiện như ngày hôm nay.

Xin chân thành cám ơn các bạn lớp 4T đã đóng góp, góp ý về bài luận văn của mình từ những chỉ tiết rất nhỏ, tạo cho minh những kinh nghiệm học tập để tự hoàn

thiện mình

v ` ~ 4 4 ¥ 2 ` =A ˆ v ` “ + ,

Mặc dù đã rat có gang dé hoàn thiện luận văn này, nhưng khong thể tránhkhỏi những khuyết điểm, vướng mac Vay em mong được các thay cô trong khoa xemxét, đánh giá, bô sung, cho luận văn của em hoàn chỉnh hơn

Cuéi cùng em không biết nói gì hơn em xin kính chúc tat cả các thay cô trong khoa Toán — Tin Trưởng Đại Học Sư Phạm TP HCM một sức khỏe doi dao, vui vẻ

và tràn đây hạnh phúc Chúc thay Thông luôn mạnh khoẻ dé tiếp tục giảng dạy thé hệ

dan em cua chúng em

Sinh vién:

LE VAN DOAN

Trang 4

Chương I: Mở Đầu GVHD: Ts Nguyén Hữu Thông

Chương I:

MỞ ĐẦU

1 Lý do chọn đề tài :

Ngày nay công nghệ thông tin phát triên mạnh như vũ bão, nó xâm

chiếm hau hết mọi lĩnh vực :

Trong kinh tế : công ty, doanh nghiệp siêu thi,

Trong khoa học : vũ tru, vệ tinh, trong nghiên cứu sinh hoá, vật lý,

Trong trường học : Ứng dụng các phần mêm day học, phan mềm quan lý

học sinh, phần mềm ra đề thi trắc nghiệm,

Một trong số các lĩnh vực đó điền hình nhất ở đây là các phần mềm

ứng dụng trong giảng và dạy học Với sự hỗ trợ này không những làm cho

người giáo viên có thê dễ dàng, thuận tiện và đỡ mệt mỏi hơn trong việc

soạn giáo án và giảng dạy môn toán ở phô thông trung học cho học sinh

mà còn làm cho các em nắm bắt được bài nhanh hơn, dé hiểu hơn và hứng

thú hơn với các bài giảng mà giáo viên mang lại

Đề tài của em là một trong những phần mém ứng dụng vẻ tin học trong trường học đó là khảo sát và vẽ đồ thị hàm số ở lớp 12, công việc này đối với các thầy cô dạy toán ở phô thông cụ thé là toán lớp 12 là rat

quen thuộc, nhưng với hau hết các giáo viên trẻ mới vào nghề thì việc vẽ

đồ thị hàm số nhiều khi lai là một điều gì đó khó khăn khi vẽ đồ thị trên

bảng phan, bởi vì do họ chưa quen va chưa có kinh nghiệm vẽ hình trên

bang phan nhiều làm cho họ có thê hing túng khi vẽ hình nên đồ thị có thé

không được đẹp, hoặc không đúng như hàm cần khảo sát chăng hạn

đường vẽ không cong cho lắm, gãy khúc, hoặc đồ thị cắt phải tiệm cận

cho nên thay vì dé các thay cô mat thời gian trình bày các ví dụ trên bảng

SVTH : Lê Văn Doan Trang 1

Trang 5

Chương I: Mở Đầu GVHD: Ts Nguyén Hữu Thông

về khảo sát và vẽ đô thị sau khi dạy cho các em học sinh lớp 12 bài : Các

bước để khảo sát và vẽ đồ thị của một số hàm số sơ cấp thì người giáo viên có thé dùng máy chiếu dé khảo sát và vẽ các hàm số thông qua phan

mềm này Như vậy với công việc mới này làm cho người giáo viên đỡ

một phan trong day học mà phần khảo sát và đô thị lại “dep” và “chính

xác” hơn so với khả năng dùng tay để viết và vẽ lên bảng, một cái ưu điểm nữa của phần mềm này là chí sau một khoảng thời gian rất ngắn khi

người dùng nhập các hệ số của một hàm số loại nào đó vào và bắm nút đề thi hành thì các bước khảo sát và vẽ đồ thị của hàm đó lập tức được thê

hiện day đủ trong chương trình theo các bước mà giáo viên đã dạy cho

các em, do đó các em có thể nhìn vào chương trình và để hình dung hơn

để tự mình thực hành khảo sát và vẽ lại trên giấy

Về giao diện (interface) của chương trình : Rất rõ ràng, thân thiện

rat dé sử dụng với bat cứ đối tượng nào, bởi vì chương trình chủ yếu được

viết bằng tiếng việt, dé thao tác (có thé chi cần dùng chuột riêng không

cần dùng bàn phím hoặc ngược lại) chăng hạn khi người dùng muốn vẽ một hàm số nào đó người dùng chỉ cần nhập các hệ số của hàm đó vào,

nhập khoảng vẽ và chỉ định màu (color) cho đồ thị sau đó bam nút dé

thực thi vẽ, chương trình lập tức sẽ vẽ cho chúng ta một ham số mà chúng

ta mong đợi mà không cần phải viết cú pháp hay câu lệnh gì phức tạp cả.

Thông thường ở phô thông là vẽ đồ thị trên mặt phang, nhưng ở đây với

chương trình này người dùng có thẻ vẽ trong không gian 3 chiều (3-D) chỉ

với một cái click chuột như vẽ trong mặt phang làm cho người dùng cụ thể là đối tượng học sinh có thê bao quát hình dung được hình ánh của đồ

thị một cách rõ ràng hơn.

2 Mục đích nghiên cứu đề tài :

SVTH : Lê Văn Doan Trang 2

Trang 6

Chương I: Mở Đầu GVHD: Ts Nguyén Hữu Thong

- Nam bat được các thuật toán khảo sát những ham số sơ cấp ở phô thông trung học (cụ thẻ là lớp 12).

- Tìm hiểu khả nang làm việc của phần mềm Maple 9.5 trong ứng dụng vẽ

đồ thị các hàm sơ cấp ở phông thông trung học vào Visual Basic 6.0.

- Hỗ trợ các em lớp 12 trong việc khảo sát & vẽ các hàm sơ cấp dé các

em có thê học tốt hơn, nhanh hiéu hơn,

- Hỗ trợ giáo viên trong công tác giảng và đạy học toán ở phô thông trung

- Chương trình ngắn gọn dé sử dụng đối với học sinh, giúp cho học sinh

năm được bài một cách nhanh nhất, dé dàng nhất.

4 Nội dung của đề tài :

Được chia thành 5 chương sau :

Chương I : Mở đầu.

Chương IT: Tìm hiểu kỹ thuật nhúng Maple 9.5 trong VB 6.0

Chương LI: Cơ sở lý luận

Chương IV : Giới thiệu chương trình

Chương V: Đánh giá tong kết, hướng phát triển của đề tai.

SVTH : Lê Văn Doan Trang 3

Trang 7

Chương IT: Ky Thugt Nhing GVHD: Ts Nguyén Hữu Thong

Chuong II:

NHUNG MAPLE VAO VB 6.0

I- Tim hiểu về Maple 9.5 :

1 Khai niém :

Maple 9.5 là một môi trường bao ham toàn diện cho sự khám

phá dạy học và các ứng dụng toán học Chúng ta có thẻ sử dụng Maple

dé giải quyết PDEs, tưởng tượng ra các quỹ đạo của phân tử hyđrô viết

lại thành mật mã các thông điệp, tính toán giá cả tùy ý, thuyết trình trên

các chuỗi Taylor, chạy các phân tích lỗi (error) trên dit liệu thí nghiệm

hay thực hiện bất kỳ một tác vụ khác mà có liên quan đến toán học.

Maple 9.5 chứa đựng hàng ngàn các hàm toán học Nhưng bạn

cũng có thê tạo các hàm tùy ý sử dụng ngôn ngữ lập trình Maple Một khi

bạn đã tạo một ứng dụng Maple, Maple 9.5 chứa các công cụ thực hiện nó

và xuât các kết quả tới các ứng dụng phân mềm khác

Maple 9.5 cung cấp cho người dùng với 2 trang giao điện Ca hai đều

cho truy xuất tới các dụng cụ toán học của Maple 9.5 và nam giữ các lợi thé của chức năng mới trong Maple 9.5

Giao điện chính của Maple 9.5 là hình sau :

SVTH : Lê Van Doan Trang 4

Trang 8

Chương IT: Ky Thugt Nhing GVHD: Ts Nguyén Hữu Thong

` Monospaces

Ngoài những công việc như tính toán với các phép toán thông

thường : Cộng, trừ, nhân, chia các số thực (real), nguyên (integer) nó

còn cho phép chúng ta tính toán, xử lý các hàm phức tạp hơn : Hàm mũ

logarit, hàm lượng giác, tính đạo hàm, giải các phương trình bậc 2, 3,

4, theo biến x, y, M6t trong các tinh năng quan trọng nhất của maple

mà liên quan đến đẻ tài của em là nó còn có thé cho chúng ta vẽ đồ thị của

các hàm số từ các hàm sơ cấp ở phô thông cho đến các hàm phức tạp hơn

ma một số phần mềm không thê làm được Ở đây em chỉ nêu một số tính năng quan trọng của Maple 9.5 trong việc vẽ đồ thị hàm số.

Trong Maple 9.5, chang hạn người dùng muôn vẽ một ham sơ cap

y=f(x) trong mặt phăng Oxy (2D) dùng cú pháp sau :

SVTH : Lê Van Doan Trang 5

Trang 9

Chương IT: KD Thugt Nhing GVHD: Ts Nguyén Hữu Thong

[>plot(f(x),x= XI X2);

rồi nhân Enter, Maple 9.5 sẽ vẽ cho chúng ta ham f(x) theo yêu cau trên

tức là nó sẽ vẽ đỏ thi f(x) trong khoảng hoành độ x; đến x ma chúng ta

giới hạn Còn vẽ trong môi trường 3D tức là không gian 3 chiều Oxyz thì

Trang 10

Chương IT: Ky Thugt Nhing GVHD: Ts Nguyén Hữu Thong

Day là cú pháp và hình ảnh của ví du trên trong không gian 3 chiều

Oxyz (3D):

[>plot3d( x^3 + 3*x^2 + 4, x=-10 10,y=-10 10);

SVTH : Lê Van Doan Trang 7

Trang 11

Chương IT: Ky Thugt Nhing GVHD: Ts Nguyén Hữu Thong

Bên cạnh vẽ đồ thị ra Maple còn có thé tính được dao hàm cấp 1,2, của các hàm số, dé tính được đạo ham, trong Maple 9.5 chúng ta

Kết quả thu được sau khi nhấn Enter :

SVTH : Lê Van Doan Trang 8

Trang 12

Chương IT: Ky Thugt Nhing GVHD: Ts Nguyén Hữu Thong

9

Sx” -6x-7

Trên đây giới thiệu sơ qua một số tinh năng quan trong của Maple 9.5 trong việc khảo sát đô thị ( tính đạo hàm, vẽ đồ thị ) Như vậy đối với

chúng ta, những người thường xuyên làm việc với máy tính cụ thé là

thường xuyên làm việc với Maple thì những câu lệnh, cú pháp trong

Maple thì quả là rất quen thuộc Nhưng chúng ta hãy đặt ra câu hỏi đối

với các em học sinh phô thông : Liệu các em có thé nam bắt được dé dang

ngay những cú pháp, hay câu lệnh trên không khi ma chưa một lần các em

làm việc với Maple vì nhiều lý do không cho phép ?

Đề tài của em giúp cho các em có thê khảo sát và vẽ đồ thị của các hàm số sơ cấp một cách nhanh nhất rõ ràng nhất và đặc biệt là đơn giản

nhất.

Đề có được các tính năng của Maple 9.5 em đã phải đọc tài liệu liên

quan đến Maple và em biết được rằng trong Maple 9.5 còn có hỗ trợ một

số ngôn ngữ lập trình cấp cao như : C, Java và Visual Basic, một ý tưởng

được đặt ra cho em là dùng ngôn ngữ Visual Basic 6.0 lập trình giao diện

và nhúng (embed) các module của Maple vẻ vẽ đồ thị vào Visual Basic.

Tại sao em lại chọn ngôn ngữ Visual Basic 6.0 dé thực hiện nhúng

vào Maple 9.5 chứ không phải là C hay Java, đó là bởi vì :

- Thứ nhất đó là do : Maple 9.5 hỗ trợ Visual Basic với rất nhiều phương

thức

- Thứ hai : Visual Basic là một ngôn ngữ lập trình giao diện, trong sáng,

dé dang dé làm quen với mọi đối tượng.

Đề hiểu rõ các phương thức của Maple 9.5 hỗ trợ các ngôn ngữ lập trình cũng như hoạt động của chúng, chúng ta sang phần tiếp theo :

SVTH : Lê Văn Đoan Trang 9

Trang 13

Chương IT: Ky Thugt Nhing GVHD: Ts Nguyén Hữu Thong

Visual Basic là một ngông ngữ lập trình giao diện để tiếp xúc và hỗ trợ

nhiều tính năng, đặc biệt là các tính năng có thé kết hợp với Maple 9.5.

Statement : Command String (chuỗi lệnh)

Mô tả : EvalMapleStatement phân tích cú pháp và thi hành chuỗi lệnh

căn cứ vào đôi sô trình bày (statement)

*Ham StartMaple(NumArgs, argy, cb, user_data, err) : Mo một phan

OpenMaple

Các đối số :

NumArgs : Số lần khởi động các tham số dòng lệnh

(Long).

Argy : Khởi động các tham số dòng lệnh ( String array).

cb : callback vector ( MapleCallBack)

SVTH : Lê Văn Đoan Trang 10

Trang 14

Chương IT: Ky Thugt Nhúng GVHD: Ts Nguyén Hữu Thong

user_data: dir liệu được đưa vao trong khi gọi ham Callback

( Long).

err : Chuối đệm ( String).

Mô ta: Hàm StartMaple là một phan của giao diện OpenMaple vào

Microsoft Visual Basic.

StartMaple khởi đầu một phần OpenMaple Khi thành công, một phần

điều khiển (handle) được trả về Điều khiển này là cần thiết như một đối

số vào tất cả các chức năng OpenMaple API ( Application Program

Interface : Giao diện chương trình ứng dụng OpenMaple )

Trong dé tài của em đề có thé vẽ được các hàm số được cung cấp trong

Maple 9.5 vào Visual Basic 6.0 em đã thiệt kê các form va hai module :

PlotterModule.bas và maple.bas

Về cơ bản chung nhất của mỗi form có thê vẽ được đó là có một

nút vẽ (button), 3 textbox và một picturebox dé hiện thị hình vẽ của hàm

# A

sO

Vidu: ` Một chương trình nhỏ của em trong Visual Basic có tên là “Ve

đo thị”

Dùng để vẽ một hàm số trong một cửa số : Dữ liệu (data) bao gồm một

form có tên là MainForm và hai module là Module : PlotModule vàModule : Maple Module Maple được chứa trong thư Mục

extern/include tất cả đều chứa trong thư mục Maple 9.5 mà em đã cài đặt

trong 6 C chang han.

SVTH : Lê Van Doan Trang 11

Trang 15

Chương IT: Ky Thugt Nhing GVHD: Ts Nguyén Hữu Thong

MainForm gồm có : Một textbox FunctionBox dé nhập biêu thức hay hàm số cần vẽ và hai

textbox khác lần lượt có tên là Lowerrange và Upperange

Một PictureBox : Dothi

Một nút bam (button) PlotButton, một nút ExitButton dùng dé thoát

khỏi chương trình Giao diện trông như sau :

Source code :

SVTH : Lê Van Doan Trang 12

Trang 16

Chương HH: Ky Thugt Nhing GVHD: Ts Nguyén Hữu Thong

Cua form :

Khai báo biến toàn cục (global) của form :

Public kv As Long ‘kv (kernel vector} is the

handle for the Maple kernel

Public PlotFileName As String

‘Trong load form (đoạn code của MainForm):

Private Sub Form _Load()

‘Khai báo 2 bién :

Dim error As String

Dim args(0 To 1) As String

‘Khoi đầu phương thức callback cho báo lỗi (error), thanh trạng thái

khởi tao Maple bằng cách đặt giá trị dau cho kv với lệnh

StartMaple của OpenMaple

SVTH : Lê Văn Đoan Trang 13

Trang 17

Chương HH: Ky Thugt Nhing GVHD: Ts Nguyén Hữu Thong

kv StartMaple(0, args, cb, 0, error)

If kv = 0 Then

“Nếu kv=0 thi xuất ra thông báo lỗi (error)

MsgBox "Ban nhap sai kieu du lieu!!!” + StrConv(error, vbUnicode), vbCritical, ""

Unload Me End

End If

End Sub

Xử lý nút PlotButton với mã (code) như sau

Private Sub PlotButton_Click ()

‘Khai báo các biến và mang

Dim TempFile, command As String

Dim temppath(256) As Byte

Dim DirLen, + As Long

‘Lay một cái Tên file cho đề thị

DirLen = GetTempPath(256, temppath (0) }

If Dirlen <> 0 Then

TempFile = "dothi.gif”

'TempFile = Left (StrConv (temppath (}„

vbUnicode), Dirien} & "plot" & Int(Rnd() * 10) &

h,g죔

SVTH : Lê Văn Đoan Trang 14

Trang 18

Chương HH: Ky Thugt Nhing GVHD: Ts Nguyén Hữu Thong

-FunctionBox.Text & ", x=“ & lowerrange.Text &

“ % & Upperrange.Text & “);")

Tf r <> 0 Then

* Nếu như r # 0 thì load đồ thị lên PictureBox (dothi)

hinh.Picture = LoadPicture (TempF1i 1e)

End If PlotFileName = TempFile End Sub

‘Doan code của Module PlotModule :

Public cb As MapleCaliBack

Public Declare Function GetTempPath Lib

"kernel32.dll1" Alias "GetTempPathA" _

(ByVal nBufferLength As Long, ByRef IpBuffer As

Byte) As Long

"Xuất của ham CallBack

SVTH : Lê Van Doan Trang 15

Trang 19

Chương HH: Ky Thugt Nhing GVHD: Ts Nguyén Hữu Thong

Public Sub TextCailBack(data As Long, ByVal tag

As Integer, ByVal output As Long)

Dim OutputString As String

OutputString = MaplePointerToString (output)

End Sub

'Xử lý báo lỗi khi người dùng nhập sai của ham Callback

Public Sub ErrorCallBack(data As Long, ByVal Offset As Integer, ByVal output As Long)

‘Xuat ra hộp thông báo (messagebox) lỗi kỹ thuật

MsgBox " at offset " + str(Offset) +" " +

MaplePointerToString (output), vbInformation, ""

Ena Sub

Sau khi đoạn mã của mỗi Object trên được xác lập thì biên

dịch (complie) chương trình của chúng ta sẽ xuất hiện một Form

(MainForm ) dé người ding nhập một hàm cần vẽ vào “FunctionBox” và

nhập giới hạn của hoành độ dé 46 thị sẽ được vẽ trong giới hạn đó vào từ textbox “Lowerrange” đến textbox “Upperrange” và cuối cùng bam

Button “PlotButton” khi ay đồ thị sẽ được vẽ lên trên PictureBox có tên là

“ Dothi”, file ảnh được xuất ra đưới dang file “.gif”

2 Nhân xét_:

Trên đây em đã giới thiệu một số các đặc điểm của Maple 9.5 trong viéc vé đồ thị và nêu kỹ thuật nhúng (emmbed) khả năng vẽ đồ thị của Maple 9.5 vào ngôn ngữ lập trình Visual Basic 6.0 Đề hiểu rõ về cách hoạt động của chương trình cũng như các đối tượng (Object) trên các

SVTH : Lê Văn Đoan Trang 16

Trang 20

Chương IT: KD Thugt Nhing GVHD: Ts Nguyén Hữu Thong

Form cụ thê chúng làm những gì ? dé khảo sát va vẽ đô thị của ham sô

chúng ta bước qua chương IIT: Cơ sở lý luận cua chương trình

SVTH : Lê Van Doan Trang 17

Trang 21

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

Chương II] :

CƠ SỞ LÝ LUẬN

I Cơ sở chung đề viết chương trình :

* Dựa vào những đặc điểm của Maple 9.5 hỗ trợ Visual Basic 6.0

- Ham số hữu ti loai2: y= id

II Cơ sở lý luận thiết kế chương trình :

Chăng hạn một học sinh lớp 12 muốn khảo sát một hàm sơ cấp,

ví dụ hàm bậc 3 : y= 3xÌ+ 10x? - x + 1, trước tiên là học sinh này sẽ

bam vào nút (button ) “Khảo sát & Vẽ” trên form chính có menu như

sau :

SVTH : Lê Văn Doan Trang 18

Trang 22

Chương HH : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

sau đó một form sẽ xuất hiện cho chon hàm số cân khảo sát bam

lúc này một form xuất hiện học sinh nhập lần lượt các hệ số a, b, vào nút dé vẽ hàm bậc 3 :

c,d vào các 6 textbox đành cho mỗi hệ số

Sau cùng học sinh sé bam vào nút VẼ2D hoặc VẼ3D dé khảo sát

phẳng điều này được thực hiện chi trong tích tắc vài giây bao gồm tat

cả các bước : Tìm Miễn xác định, tính đạo hàm, tìm các điểm cực đại,

SVTH : Lê Văn Doan Trang 19

Trang 23

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

cực tiêu (nếu có), tìm diém uốn và các khoảng lỗi lõm, vẽ bảng biến

thiên của dé thị và cuối cùng là vẽ đồ thi Trong chương trình này chúng ta chủ yếu tìm hiểu về khảo sát , vẽ các hàm sơ cấp.

Vậy chương trình trên hoạt động theo những cơ chế nào ? Chúng

ta đi vào tìm hiểu cơ chế làm việc của từng thành phan trong chương

trình :

1 Tổng quan chung :

a Hiễn thị (show) hay kết thúc form :

Trong chương trình tông cộng có tất cả 12 form trong đó có 6 form dùng dé khảo sát và vẽ đồ thi, cơ chế dé gọi các form là dùng cú

pháp :

Tênform.show Chang hạn form có tên là huutil từ form maindraw có nút bam

(button) viết code cho nút này đề gọi form huutil là : huutil show, sau khi chạy chương trình click vào nút này sẽ hiển thị form huutil, và dé kết thúc form cũng tương tự như trên tức là giả sử từ form maindraw

trong chương trình cũng có một button, dé kết thúc (hay tắt) form hiện

hành (form maindraw) ta dùng cú pháp cho nút này như sau :

Unload maindraw

b Tải (load) form :

Trong các form của phần khảo sát và vẽ đồ thị gồm các form sau

: ksvebac3, ksvebac4, ksvebac2, huutil, huuti2, dé tải (load) các form

này khởi động các ham trong OpenMaple của Maple 9.5 hỗ trợ Visual

Basic kết hợp với hai module là : module maple.bas và module plotModule.bas vẽ đồ thị ta viết code chung cho các form như sau :

Đầu tiên là khai báo 2 biến toàn cục :

Public kv As Long ‘ky (kernel vector) is the handle for the Maple kernel

SVTH : Lé Van Doan Trang 20

Trang 24

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

ẺŠẰẰẤ`Ò<== —=—————. _ÊŸ

Public PlotFileName As String

Sau đó là load form :

Private Sub Form_Load()Dim error As String

Dim args(0 To 1) As String

Khoi động ham callbacks cho chữ( text) và báo lỗi(error), còn

các phương thức khác có thẻ cần hoặc không cần thiết chăng hạn như

callback cho thanh trạng thai (status), dòng đọc (readline), :

cb.lpTextCallBack= GetProc(AddressOf TextCallBack)

cb.lpErrorCallBack = GetProc(AddressOf ErrorCallBack)

‘Khoi động Maple bằng cách khởi đầu biến kv với lệnh

StartMaple của OpenMaple :

kv = StartMaple(0, args, cb, 0, error)

If kv = 0 Then

MsgBox "bao loi (warning error !!!" + StrConv(error,

vbUnicode), vbCritical, ""

Unload MeEnd

End If

End Sub

c Về màu ( color) của các đường trong đồ thị của mỗi ham :

Trong các form của các dạng hàm số khác nhau có chứa một

danh sách các loại màu có thê sử dụng mà Maple 9.5 cho phép danh

SVTH : Lê Văn Doan Trang 21

Trang 25

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

sách này được thê hiện trong chương trình là một combobox

— „ khi chúng ta vẽ đồ thị một hàm số, màu của đồ thị hàm

số mặc nhiên là màu xanh (blue) nếu người dùng thích một màu khác

trong danh sách mau thì có thé lựa chọn dùng chuột (click) hay dùng

phím mũi tên chọn các loại màu khác nhau :

combobox này có tên là : danhsachcolor dé xử lý sự kiện chuột và bàn

phím trên combobox này viết code cho 2 phương thức sau :

Đối với sự kiện click chuột trên combobox :

Private Sub danhsachcolor_Click()

Dim TempFile, command As String

Dim temppath(256) As Byte

Dim DirLen, r As LongDirLen = GetTempPath(256, temppath(0))

If DirLen <> 0 Then

TempFile = "dothi.gif"

"TempFile = Left(StrConv(temppathQ), vbUnicode), DirLen)

& "plot" & Int(Rnd() * 10) & ".gif”

End IfCall EvalMapleStatement(kv, "plotsetup(‘gif plotoutput="" + TempFile

+ " plotoptions= "width= 340, height=280°);")

SVTH : Lé Van Doan Trang 22

Trang 26

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

s = hsa.Text & "*x^3 + (" & hsb.Text & ")*x^2 + (" & hsc.Text

& ")*x + (" & hsd.Text & ")

r = EvalMapleStatement(kv, "plot(" & s & ”, x=(" &

LowerRange.Text & ") (" & UpperRange.Text & "), y=(" & yduoi.Text

& ”) (” & ytren.Text & ”),color=” & danhsachcolor.Text & ");")

Ifr <> 0 Then

dothi.Picture = LoadPicture(TempFile)

‘Tf PlotFileName <> "" Then

"KHI PlotFileNameEnd If

End If

PlotFleName = TempFile End Sub

Đối với sự kiện nhân phím enter dé chọn màu :

Private Sub danhsachcolor_KeyPress(KeyAscii As Integer)

Chúng ta nhấn phim Enter khi con trỏ chuột đang nằm ở

combobox danhsachcolor đổ thị sẽ được tô màu hiểu trên đó,

PlotButton2d_Click tương đương với ta nhân vào nút cũng là đoạn lệnh sử dụng cho các textbox các hệ số và giới hạn tung

độ hoành độ khi con trỏ đang năm trong nó khi người dùng bam Enter

lập tức đỏ thi sẽ được vẽ và khảo sát như nhắn nút mx2.| (cũng xử

lý trong sự kiện KeyPress)

SVTH : Lê Văn Doan Trang 23

Trang 27

Chương THỊ : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

2 Phân tích chỉ tiết hoạt động của từng form :

A Form hàm bậc 3 :

Hàm số : y = ax? + bx? +ex+đ (a # 0)

- Xác định với moi x € R

- Đề thị có điểm uốn với x; = -b/3a đồng thời là tâm đối xứng.

Giao diện trang hàm bậc 3 như sau :

y=ax) + bx? + cx + d(az0

Hàm bậc 3 gồm 4 hệ số a, b, c, d tương ứng với số mũ từ 3 trở

xuống 0 khi người dùng nhập hệ số a =0 thì chương trình sẽ xuất ra một

Dialog thông báo (message box) cho biết đây là hàm bậc 3 nên a phải +

0:

SVTH : Lê Văn Doan Trang 24

Trang 28

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

=——=—ôẳÔôs .

SVTH:

Project

Sau khi bam Ok thì chương trình sẽ xoá hết dữ liệu trong các text

box vừa nhập vào và đặt con trỏ (point) vào vị trí đầu tiên tức là trong textbox của hệ số a.

Thông điệp này được xuất hiện là do trong chương trình xét điều

kiện néu a =0 thì xuất ra hộp thông báo :

MsgBox "Xin hay nhap lai,vi day la ham bac 3(a<>0) !!!",

vbOKOnly

đặt các text box bằng rỗng :

hsa.Text = " ”hsb.Text = " ”

hsc.Text = ” ” hsd.Text = " ”

và đặt con tro vào text box hệ SỐ a:

hsa.SetFocus

Nếu người dùng nhập hệ số a # 0 nhưng các hệ số khác, hoặc

nhập sai dữ kiện (nhập chữ), hoặc text box bị bỏ trồng (không nhập) thì

chương trình cũng sẽ phát ra thông điệp là người dùng chưa nhập đây

đủ thông tin:

Project’

Day là xử lý loi của hàm :

Lê Văn Đoan Trang 25

Trang 29

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

cb.lpErrorCallBack = GetProc(AddressOf ErrorCallBack) trong

form_load trong OpenMaple khi lỗi xảy ra thông điệp được gửi đến Module PloterModule dé xuất (Output) ra MessageBox trên, sau đây là

đoạn code trong Module PloterModule :Public Sub ErrorCallBack(data As Long, ByVal Offset As Integer,

ByVal output As Long)

MsgBox "Ban nhap chua du hoac sai du lieu Xin hay nhaplại!!!"

Một hộp thông báo lỗi khác sẽ xuất hiện khi người dùng nhập một trong các hệ số lớn hơn quy định cho phép Ở đây giới hạn các hệ

số cho hàm bậc 3 là giá trị tuyệt đối của a.b.c < 10, nếu người ding

nhập qua giới hạn này chương trình sẽ báo lỗi :

Đề xử lý lỗi này trong chương trình em dùng lệnh điều kiện

hsc.Text = ” ”

hsd.Text = " ”hsa.SetFocus

SVTH : Lé Van Doan Trang 26

Trang 30

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

Message chương trình sẽ xoá tất cả những gì liên quan trong textbox

mà người dùng vừa đánh vào hoặc xoá tất cả dữ kiện của hàm khảo sat

trước néu có, chúng đều có chung một đoạn code xử lý giống nhau :

* Xoá màn hình

Cls

* giấu picturebox đi

dothi Visible = False

“đặt tat ca các label không can thiết bang trồng (hide):

Ibdaul.Caption = 'Ibdau2.Caption = ""

Trang 31

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

Ibduongy2.Caption =Iby_1.Caption = ""

Iby_2.Caption = ""

Iby_12.Caption = ""

Iby_21-Caption = ""

Iby.Caption =

Khi đó thì màn hình giống như bắt đầu khảo sát, tương tự như

người dùng bắm nút “TẠO MỐI.

Một khi người dùng nhập đúng và day đủ dữ liệu vào trong các text box sau khi nhắn Enter khi con trỏ ở textbox bất kỳ tương đương

như người dùng nhân vào nút VẼ2D hàm số sẽ được khảo sát và vẽ đồ

Toàn bộ quá trình khảo sát này chỉ được thực hiện duy nhất trên một nút xử lý là VE2D, VE2D có nghĩa là đồ thị sẽ được vẽ ra trong

SVTH : Lê Văn Doan Trang 28

Trang 32

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

mặt phang 2 chiều Oxy, còn VẼ3D là đồ thị sẽ được vẽ trong không gian 3 chiều Oxyz điều nay sẽ được bàn kỹ hơn ở phan sau Vay button

VE2D ve được xử lý như thé nao ?

Đầu tiên chúng hãy phân tích nguyên lý làm việc của nó, khi mà

hệ số trong textbox hợp lệ, chương trình sẽ xử lý phần else của biệt lệ

/! đoạn code giống nhau đã nêu ở trên

Else

If abs(a)> 10 or abs(b) > 10 or abs(c) > 1Ø or abs(d) > 10 then

° Hộp thông báo lỗi trong trường hợp này

//doan code giống nhau nêu ở trên

Ibdhy.Caption = ""

lbnghiemil Captton = ””

SVTH : Lê Văn Doan Trang 29

Trang 33

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

Ở trên va cả trong chương trình này : labelname.Caption=

“string” là xuất ra màn hình chuỗi trong ngoặc kép ứng với label đó,

labelname.Visible=true hoặc false nếu, bằng true thì sẽ cho hiện

(visible) labelname đó trên màn hình, nêu bang false sẽ ân (hide) nó đi

Mục đích đặt các label đang chứa dữ liệu của một hàm nào đó

được người dùng khảo sát trước rồi sửa lại các hệ số sau đó bam vào

VE2D dé khao sát và vẽ lại thì các label hiện hữu trong lan khảo sát

trước sẽ bằng rồng tức là không chứa text ở bên trong như vậy là sẽ

SVTH : Lê Văn Doan Trang 30

Trang 34

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

không xuất hiện trong lần khảo sát sau, khi ấy chỉ xuất hiện những label cần thiết phù hợp với loại hàm mà người dùng nhập vào dé khảo sát

Đây là đoạn code tìm điểm uốn, tìm nghiệm y’, xét dau y`, xuất

ra hàm số vừa nhập, xuất ra đạo hàm, điểm uốn, lồi lõm, bảng biến thiên dựa vào các hệ số b, c, d, tức là khi nào có b, có e, có đ, hoặc khi

* Xuất ra y’’ và nghiệm điểm uốn :

lbdiemuonxy.Caption = " y’ = ” & struonhsa & struonhsb & ") =>

X_uon= ” & x uon & "(y_uon= ” & y_uon & ")"

Ife <> 0 Then

Ifd <> 0 Thensax3 = format(a, " #x^3”)

sbx2 = format(b, " #)x^2 ")

scx = format(c, "#)x ")

sd = format(d, "#")Ibhs.Caption = "y= ” & sax3 & "+ (" & sbx2 & "+ ("& scx & "+

Trang 35

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

sbx2 = format(b, " #)x^2 ")

scx = format(c, "#)x ")lbhs.Caption = "y= " & sax3 & "+ (" & sbx2 & "+ (" & scx

End If

sl = format(3 * a," #x42 + ")

s2 = format(2 * b," #)x + ”) s3 = format(c,"” #)")

lbdh.Caption = "y= "&sl&"("&s2&"("&s3 & "=>y=0 <=>

Trang 36

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

hsb.Text = "0"

' điem uon ung voi b=0

x_uon = format((-b / (2 * a)), "0.00")y_uon = format(((a * x uon * x_uon * x_uon) + c * x_uon + d),

Ibhs.Caption = "y= " & sax3 & "+ (" & scx

End If

sl = format(3 * a," #x^2 + ")s3 = format(c, ” #) ")

lbdh.Caption = "y= ” & sI &"("&s3 & "=>y=0 <=> " & sI &

Trang 37

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

‘xét dau y’’ và tìm khoảng lỗi lõm dùng các label dé xuất ra màn hình:

[bnghiemdiemuon.Caption = "I(" & x uon & ”; ” & y_uon & ")"

'xuât chuối “y’=0@”

SVTH : Lê Văn Doan Trang 34

Trang 38

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

Ibdhy.Caption = "<=> "

Kế tiếp chúng ta tìm nghiệm của y` và xét dau của delta y' :

‘tinh delta y’

Trang 39

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

ẺŠẰẰẤ`Ò<== —=—————. _ÊŸ

lbdaul.Caption = "+"

Ibdau2.Caption = "+"

lbo.Caption = "-"

‘cho ân lby:

Iby Visible = False

'các mũi tên của bảng biến thiên:

Line (7440, 7080)-(8280, 6600), &H80000018

Line (8520, 6600)-(10320, 6960), &H80000018Line (10560, 6960)-(11520, 6480), &H80000018

“xuất ra dấu vô cực:

“xuất ra 2 điểm cực đại, cực tiéu:

lbnghiemI.Caption = "x_CT= ” & strxl & "=> y CT= " &

Trang 40

Chương M1 : Cơ sở lý luận GVHD : Ts Nguyễn Hữu Thông

Iby_1.Caption = stry2Iby_2.Caption = stryl

‘xuat ra 2 điểm cực đại, cực tiêu:

lbnghieml.Caption = "x_max= " & strxl & "=> y_max= ” &

Ibdau2.Caption = "-"

lbo.Caption = "+"

Iby Visible = False

“Xuất các mũi tên tăng giảm của bảng biến thiên:

Ngày đăng: 20/01/2025, 02:45

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w