để so sánh đáp án các emcần thêm một máy tính cầm tay, để phục vụ cho việc học không chỉ hai môn Toán – Lý.Phần mềm MATLAB không chỉ làm cho các em ra kết quả chính xác để so sánh với kế
Trang 1CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
ĐƠN YÊU CẦU CÔNG NHẬN SÁNG KIẾN
Tên sáng kiến
SỬ DỤNG NGÔN NGỮ MATLAB LẬP TRÌNH GUI VÀO HỌC MÔN TOÁN – VẬT LÝ THPT
Tác giả
Đơn vị công tác: Trường THPT Bình Minh
1
Trang 2Ninh Bình, tháng 04 năm 2022
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
ĐƠN YÊU CẦU CÔNG NHẬN SÁNG KIẾN
Kính gửi : Hội đồng sáng kiến Sở GD & ĐT Ninh Bình
Tôi (hoặc chúng tôi) ghi tên dưới đây:
tháng nămsinh
Nơi côngtác
Chứcvụ
Trìnhđộchuyênmôn
Tỷ lệ(%)đónggópvàoviệctạorasángkiến
1 Phạm Hùng Cường 07/06/1985 THPT Bình
Minh
Giáoviên
Đại học 40
2 Đỗ Thanh Dũng 11/10/1985 THPT Bình
Minh
Giáoviên
Đại học 30
3 Phạm Thị Oanh 22/05/1988 THPT Bình
Minh
Giáoviên
Đại học 30
2
Trang 31.Tên sáng kiến, lĩnh vực áp dụng
Là tác giả (nhóm tác giả) đề nghị xét công nhận sáng kiến :
SỬ DỤNG NGÔN NGỮ MATLAB LẬP TRÌNH GUI VÀO HỌC MÔN TOÁN – VẬT LÝ THPT
Lĩnh vức áp dụng: Phương pháp dạy học môn Toán -Vật Lý
3
Trang 4chung Nếu câu hỏi đặt ra chỉ đòi hỏi nhớ lại tri thức một cách máy móc thì sẽ làm ảnhhưởng đến sự phát triển tư duy lôgic, tư duy
b.Giải pháp mới
Môn Toán – Lý là hai môn cơ bản của khoa học tự nhiên, học sinh thường thấy khôkhan, khi làm bài tập thường làm trên giấy để giải ra đáp số… để so sánh đáp án các emcần thêm một máy tính cầm tay, để phục vụ cho việc học không chỉ hai môn Toán – Lý.Phần mềm MATLAB không chỉ làm cho các em ra kết quả chính xác để so sánh với kếtquả làm trên giấy, mà con tạo hứng thú cho mọi người đặc biệt các bạn học sinh làm quenvới tin học, đặc biệt trong thời kỳ cách mạng công nghiệp 4.0 Phần mềm giúp các em họctốt các môn, Đại số, Hình học, Vật lý… trong chương trình THPT, đặc biệt trong thi tốtnghiệp THPT
Cung cấp một cách thú vị để xem và trải nghiệm các môn toán cũng như khoa học
Thích ứng tốt với bất kỳ chương trình học hoặc dự án nào
Được sử dụng bởi hàng triệu người trên khắp thế giới
4
Trang 5 Sử dụng công cụ có sẵn trong GUI Matlab để lập trình Ưu điểm của cách này là dễthực hiện và các hàm FUNCTION được GUI tự tạo sẵn Cách này được lập trình
từ siêu tệp Mfile bằng các hàm FUNCTION do người lập trình tự viết, nó có ưuđiểm là tùy biến cao
Ở đây với những bài tập đơn giản về giao diện, ta thực hiện cách thứ nhất để lập
trình giao diện với nhưng công cụ được hỗ trợ sẵn trong Matlab
Khi thao tác trên giao diện chúng ta không thể thay đổi các hàm trong nó
Cung cấp một cách thú vị để xem và trải nghiệm các môn toán cũng như khoa học
Thích ứng tốt với bất kỳ chương trình học hoặc dự án nào
Được sử dụng bởi hàng triệu người trên khắp thế giới
3 Cấu tạo, quy trình vận hành mô hình/sản phẩm ( Cách sử dụng ở phần phụ lục )
HƯỚNG DẪN CÀI ĐẶT MATLAB R2019a
Bước 1: Vào đường link sau tải phần mềm: http://phanmemnet.com/download - matlab r2019a - full - crack - 1 - link - google - drive - duy - nhat - huong - dan - chi - tiet/
Bước 2: Chạy file setup.exe và chọn Use a File Installation Key như hình dưới.
Sau đó chọn Next…
5
Trang 6Bước 3: Chọn Yes, chọn Next như hình dưới…
Bước 4: Chọn I have the File… Nhập key
09806-07443-53955-64350-2175141297 Sau đó chọn Next như hình dưới
6
Trang 7Bước 5: Chọn Next (để tránh bị lỗi nên để mặc định!)
Bước 6: Tại đây bạn có thể chọn những chương trình bạn muốn cài đặt Nếu
không rõ cứ để mặc định nhé Sau đó chọn Next
7
Trang 8Bước 7: Tích vào Desktop vào chọn Next
Bước 8: Chọn Install như hình dưới
8
Trang 9Chọn Finish để kết thúc cài đặt
4 Tính mới, tính sáng tạo của mô hình/sản phẩm
9
Trang 10Môn Toán – Lý là hai môn cơ bản của khoa học tự nhiên, học sinh thường thấy khôkhan, khi làm bài tập thường làm trên giấy để giải ra đáp số… để so sánh đáp án các emcần thêm một máy tính cầm tay, để phục vụ cho việc học không chỉ hai môn
Toán – Lý Phần mềm NGÔN NGỮ MATLAB LẬP TRÌNH GUI không chỉ làm cho
các em ra kết quả chính xác để so sánh với kết quả làm trên giấy, mà con tạo hứng thú chomọi người đặc biệt các bạn học sinh làm quen với tin học, đặc biệt trong thời kỳ cáchmạng công nghiệp 4.0 Phần mềm giúp các em học tốt các môn, Đại số, Hình học,
Vật lý… trong chương trình THPT, đặc biệt trong thi tốt nghiệp THPT
5 Khả năng áp dụng của mô hình/sản phẩm
Phần mềm dễ sử dụng, có cả phần tiếng Việt lẫn tiếng Anh, phù hợp các đối tượng
từ tiểu học lên đến THPT Từ học sinh đến Giáo viên, cách sử dụng cũng đơn giản vànhiều ứng dụng trong các môn học đặc biệt trong môn Toán, vốn là môn khó hình dung vàkhô khan
6 Hiệu quả của mô hình/sản phẩm
6.1 Hiệu quả Kinh tế
Giúp các bạn có thể tự học ở nhà, tăng khả năng tự học đặc biệt trong các dịp nghỉnhư :Dịch, nghỉ hè, tết……., tiết kiệm chi phí mua các sách tham khảo
6.2 Hiệu quả kỹ thuật
Phần mềm đơn giản dễ sử dụng, chỉ cần hướng dẫn ban đầu, và chỉ ra lợi ích quantrong của phần mềm thì các bạn học sinh có thể tự học được
6.3 Hiệu quả xã hội
Giúp cho các bạn học sinh, tất cả đối tượng cấp học tiếp cận dần với tin học, từ đó tạo đàcho việc chọn ngành nghề sau khi hoàn thành chương trình THPT
10
Trang 11PHỤ LỤC 1 GIỚI THIỆU CƠ BẢN VỀ MATLAB VÀ GUI I) Cơ bản về Matlab:
1) Giới thiệu chung về Matlab: Matlab là một công cụ tính toán trong kỹ thuật,
đặc biệt là các bài toán về ma trận Matlab còn cung cấp các toolboxes chuyên dụng để giải quyết những vấn đề cụ thể như xử lý ảnh, xử lý số tín hiệu, neuron,
mô phỏng…
Matlab cung cấp Image Processing toobox, chuyên về xử lý ảnh Có thể nóiMatlab là một công cụ lợi hại giúp cho việc thực hiện các giải thuật xử lý ảnh nhanh chóng và dễ hiểu
Trang 12- Trong nhiều trường hợp ta không muốn thể hiện kết quả thì sau khi
gõ lệnh phải thêm dấu “;”
-Nếu không biết chính xác tên lệnh là gì, ta có thể dùng lệnh lookfor
-Ví dụ: lookfor convert sẽ cho ta danh sách các lệnh có từ convert trong phần trợ giúp
Trang 13-Trong Matlab, không cần khai báo biến Matlab phân biệt biến chữ
hoa và thường Ví dụ: A và a là hai biến khác nhau -Các phép toán
Làm việc với vector và ma trận:
-Trong Matlab, tất cả các đối tượng đều xem là ma trận Một chữ số là một
Trang 14-Chỉ số : Phần tử ở hàng i cột j của ma trận có kí hiệu là A(i,j) Tuy nhiên ta
cũng có thể tham chiếu tới phần tử của mảng nhờ một chỉ số A(k) Ví dụ: A(6) là tham chiếu của A(3,2)
-Toán tử “:” là một toán tử quan trọng, xuất hiện ở nhiều dạng
Trang 164.1) Biểu thức điều kiện: Gần giống trong C
-If, else , elseif
-switch( chỉ thực thi duy nhất một nhóm lệnh)
4.2) Vòng lập:
-for, while
5)Hàm m-file:
Hàm m-file là một chương trình con do chúng ta yêu cầu các
đối số ngõ vào và có thể trả về đối số ngõ ra Cú pháp:
16
Trang 17function[outputArgs]=function_name(inputArgs)
Chú thích(đặt sau dấu %, chú thích sẽ hiện ra khi dùng lệnh help)
-Các lệnh
-return;
Phải lưu lại với tên giống tên hàm
Ví dụ:Vẽ hàm sau trong khoảng [-10,10]
Giải: function f = function1(x) y =
semilogx, semilogy: vẽ đồ thị với 1 trục là logarit
-Sử dụng hàm figure để tạo nhiều cửa sổ hình
vẽ Sử dụng lệnh subplot để vẽ nhiều hình trên
một cửa sổ -Hàm chú thích hình vẽ:
title: Nhãn hình vẽ
17
Trang 18Gui-là giao diện bằng hình ảnh của chương trình
Gui-bao gồm các nút nhấn, hộp liệt kê, thanh trượt, menu…
chúng cung cấp cho người dùng sử dụng một môi trường làm việc
thân thiện để họ tập trung vào các ứng dụng của chương trình hơn
là đi tìm hiểu cách thức làm việc của chương trình đó
18
Trang 19 Để mở công cụ tạo Gui : File New GUI
Khi lưu giao diện vừa tạo, Matlab sẽ tạo ra hai file có cùng tên
nhưng khác phần mở rộng:
-File có phần mở rộng fig chứa nội dung của giao diện
-File có phần mở rộng m chứa những đoạn mã liên quan đến giao
diện
19
Trang 20 Khi thiết kế bất cứ thành phần nào của Gui ta cần thiết lập thuộc
tính cho thành phần đó
Để thiết lập các thuộc tính ta có thể chọn mục “ Property
Inspector” trên thanh công cụ hoặc right-click vào đối tượng và
Trang 21-String property : dòng ký tự xuất hiện trên đối tượng
-Tag property : tên của đối tượng
Khi click chuột vào 1 đối tượng, Matlab sẽ gọi hàm tương ứng với
đối tượng đó Tên của hàm chính là tên của đối tượng cộng với
“_Callback”
2) Các hàm thường được sử dụng trong Gui:
Set : Thay đổi giá trị của các thuộc tính của một đối tượng giao diện
I THIẾT KẾ GIAO DIỆN
- Nhấn tổ hợp phím Ctrl + S để thực hiện lưu file, sau khi chọn đường dẫn đểlưu file (Chú ý không lưu file với các biến đặc biệt hoặc bằng các con số khởi đầu), nhấn save Matlab sẽ tự động tạo ra 2 file gồm một file m và một
21
Trang 22file fig, trong đó file m là Mfile chứa các hàm Matlab đã tạo sẵn hỗ trợ
giao diện
- Lần lượt kéo thả các nút như hình sau:
- Mỗi hộp thoại có Inspector , bằng cách nhâp đúp chuột vào hoặc chuột phảichọn Property Inspector
- Sau đây là hình ảnh được đánh số để đánh dấu từng thay đổi một:
22
Trang 242 String sin cos
tan cotg arcsinarccos arctan arccotg sinh cosh tanh cotgh
Giá trị trong mọi ô String đều được hiển thị lên giao diện, nó thường được dùng
để làm nhãn chỉ dẫn
Nó hiển thị khi được gọi bởi hàm, hoặcđược thiết lập trước từ người lập trình Hình ảnh chi tiết minh họa bên dưới (1)
Tag ham Tag là giá trị của thuộc tính Thuộc tính
Tag cực kì quan trọng, nó là nhãn của một đối tượng, được sử dụng để gọi thuộc tính của đối tượng thông qua các hàm để thay đổi giá trị của thuộc tính… giá trị của Tag có phân biệt chữ in hoa, chữ thường, không được đặt tên Tag trùng với tên file đã lưu hay trùng với bất cứ các kí tự đặc biệt nào Mỗi hộp thoại chỉ có một Tag duy nhất và độc quyền
24
Trang 2613 String Enter the range
Enable off thuộc tính Enable là thuộc tính cho
phép hay không cho phép đối tượng hoạt động, tương ứng với 2 trạng thái on và off
Trang 27Visible off thuộc tính Visible Là thuộc tính cho
phép chọn hiện (on) hay ẩn (off) cửa sổ giao diện của nó
Trang 28- Sauk hi chỉnh sửa các thông số ta dùng chuột để di chuyển các hộp thoại, bốtrí hộp thoại theo mong muốn, ta được giao diện như sau:
III MỘT VÀI CHỨC NĂNG MỞ RỘNG
Chú ý, để tạo sự thẳng hàng, cột của các hộp thoại cho đẹp mắt ta làm như sau: Nhấn giữ phím Ctrl và nhập vào các hộp thoại muốn chỉnh sửa, Trên Menu chọn
Align
28
Trang 29+ Nhấp đúp chuột vào bất cứ vị trí nào trên nền giao diện để vào hộp thoại
Inspector (hoặc trên menu chọn View -> Property Inspector), hộp thoại Inspector hiện ra như sau: + Thiết lập Tag là “exit”
- Tiếp tục tùy chọn nâng cao , vào Menu Tools -> GUI Options
29
Trang 30
Hộp thoại hiện ra như sau :
30
Trang 31-
Trên hộp thoại Resize behavior chọn dòng số 2 (Proportional), dòng này cho phép người dùng thay đổi khích thước của giao diện và các đối tượng cũng tự động thay đổi kích thước phù hợp với nền giao diện, nhấn OK để lưu thay đổi
IV.THỰC THI HÀM TRONG GUIDE
GIAO DIỆN TRONG MFILE
- Khi đã cân chỉnh xong toàn bộ giao diện trong GUI, nhấn F5 (hoặc nhân tổ hợp phím
Ctrl + T hoặc nhấp vào biểu tượng trên thanh Menu)
- Khi Run, Matlab sẽ tự chạy file m và hiển thị doa diện đồ họa lên màn hình ở đây
ta bắt đầu thao tác với file m
31
Trang 32-
Khi ta chưa thao tác trong Trong file m xuất hiện như trên hình, trong đó, tất cảcác hàm function đều được Matlab hỗ trợ tạo sẵn các hàm chức năng có liên quan,
ta chỉ việc thao tác trên đó
- Mỗi sau một hàm bất kì đều có các chú thích bên dưới (sau dấu %), ta có thể xóa
toàn bộ chúng đi đễ dễ nhìn cũng không ảnh hưởng đến các hàm
- Trong Mfile có sẵn các hàm callback, ta có thể tìm trong Mfile các hàm liên quan
để viết câu lệnh, tuy nhiên, để nhanh hơn chúng ta có thể làm như sau: + Quay lại
màn hình giao diện GUI vừa thiết kế, nhấp vào hộp thoại muốn thực thi hàm
callback, nhấp chuột phải chọn View Callbacks -> Callback, Như hình sau:
Trang 33-
V MỘT SỐ HÀM TRONG GUI
- Hàm callback được lập trình cho các nút button, checkbox, edit text… nhưng
static text và axes… thì không có hàm callback
Mỗi một callback được viết với cấu trúc như sau: function
Tag_Callback(hObject, eventdata, handles)
- Với Tag chính là giá trị của Tag mà ta đã đặt khi tạo giao diện Các hàm chứa bên trong callback bao gồm hObject, evendata,handles
+ hObject là hàm truy cập nội bộ của mỗi function riêng lẽ
+ Evendata là hàm xác đinh thuộc tính của function
+ Handles là hàm truy cập liên kết giữa các function, nó bao gồm tất cả các cấu trúccủa người dùng, được sử dụng để truy xuất qua các điều khiển khác
- Hàm Get cho phép ta gọi thuộc tính của đối tượng
- Hàm Set cho phép ta đặt giá trị cho thuộc tính của đối tượng
33
Trang 34-
34
Trang 35-
PHỤ LỤC 3 CÁCH SỬ DỤNG GIAO DIỆN
Để bắt đầu với giao diện, chúng ta làm theo một trong những cách sau:
+ Trong màn hình thiết kế giao diện, nhấn phím F5 trên bàn phím + Nhấn vào biểu tượng nút Play trong màn hình thiết kế giaodiện + Trong màn hình thao tác trên Mfile, nhấn phím F5 để chạy chương trình - Trước khi muốn sử dụng ta có thể sắp xếp các menu
Trang 36Bước 2: Nhập vào khoảng giá trị của x
Chú ý: x phải được nhập đúng dạng đã được đề cập trong phần
thiết kế giao diện
Bước 3: Nhấn nút Plot để vẽ hàm
33
Trang 38-
PHỤ LỤC 4
MỘT VÀI VÍ DỤ ĐIỂN HÌNH LẬP TRÌNH GUI CHO
TOÁN – VẬT LÝ THPT VÍ DỤ 1:
LẬP GIAO DIỆN GIẢI PHƯƠNG TRÌNH BẬC 2
A.GIAO DIỆN
B.CODE CHƯƠNG TRÌNH CHẠY – GIẢI PHƯƠNG TRÌNH BẬC 2
function varargout = phuongtrinhbac2(varargin)
% PHUONGTRINHBAC2 MATLAB code for phuongtrinhbac2.fig
% PHUONGTRINHBAC2, by itself, creates a new PHUONGTRINHBAC2 or raises the existing
Trang 39% existing singleton* Starting from the left, property value pairs are
% applied to the GUI before phuongtrinhbac2_OpeningFcn gets called An
% unrecognized property name or invalid value makes property
application % stop All inputs are passed to
phuongtrinhbac2_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu Choose "GUI allows
only one % instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help phuongtrinhbac2
% Last Modified by GUIDE v2.5 21-Apr-2021 16:12:33
% Begin initialization code - DO NOT EDIT
str2func(varargin{1}); end if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State,
varargin{:}); end
% End initialization code - DO NOT EDIT
% - Executes just before phuongtrinhbac2 is made visible.
function phuongtrinhbac2_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to phuongtrinhbac2 (see
Trang 40-
% - Outputs from this function are returned to the command line.
function varargout = phuongtrinhbac2_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
function edtA_Callback(hObject, eventdata, handles)
% hObject handle to edtA (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edtA as text
% str2double(get(hObject,'String')) returns contents of edtA as a double
% - Executes during object creation, after setting all properties.
function edtA_CreateFcn(hObject, eventdata, handles)
% hObject handle to edtA (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER if ispc &&
isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' ))
set(hObject, 'BackgroundColor' , 'white' ); end
function edtC_Callback(hObject, eventdata, handles)
% hObject handle to edtC (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see
GUIDATA)
% Hints: get(hObject,'String') returns contents of edtC as text
% str2double(get(hObject,'String')) returns contents of edtC as a double
% - Executes during object creation, after setting all properties.
function edtC_CreateFcn(hObject, eventdata, handles)
% hObject handle to edtC (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc &&
isequal(get(hObject, 'BackgroundColor' ),
get(0, 'defaultUicontrolBackgroundColor' ))
set(hObject, 'BackgroundColor' , 'white' ); end
function edtB_Callback(hObject, eventdata, handles)
33