sử dụng guide-matlap lập trình calculator
Trang 3Từ cửa sổ lệnh ta gõ lệnh guide , 1 cửa sổ hiện ra chọn Blank , Giao diện GUIDE sẽ hiện ra:
Giới thiệu sơ lược các công cụ trên giao diện guide mà
chương trình cần.
Edit_text : Nhập dữ liệu cho chương trình.
Static_text: Chú thích cho giao diện nhâp.
Pushbuton : Chạy chương trình.
Panel : Khung chương trình
Radio Button: Tùy Chọn.
Axes : Hiển thị hình ảnh, vẽ đồ thị…
Button Group : Chứa Radio Button.
Trang 4Chức năng của máy tính:
-Cơ bản : cộng trừ nhân chia, sin, cos, tan, log, căn bậc hai, định thức…
-Nâng cao :
+ đạo hàm;
+ nguyên hàm;
+ giai thừa;
+ giải phương trình bậc n;
+ giải phương trình bậc n chứa tham số a, b, c, n….; + giải hệ n phương trình;
+ giải hệ n phương trình chứa tham số a, b, c, n…… + tích hợp bộ chuyển đổi độ dài, trọng lượng, nhiệt độ, diện tích, thể tích, tiền tệ…
Trang 5Để cho nhanh và cân đối ta kéo thả khoảng 5 cái
pushbutton sau đó copy và
dùng công cụ Align để chỉnh sửa.
Sau đó kích chuột phải vào mỗi pushbutton chọn
property
Tìm đến thuộc tính Tag để đặt địa chỉ và thuộc tính String để hiển thị lên giao diện.
Trang 6Ngoài ra, giao diện còn
có 2 axes dùng để hiển thị ảnh, một edit text
dùng để hiển thị lời chào,
2 radion button và 1
button group để thay đổi ngôn ngữ Anh-Việt, 1 pushbutton để giới thiệu nhóm tác giả, 1
puchbutton để thoát
khỏi chương trình.
Trang 7Nhấn chuột phải chọn ViewCallBacks > CallBack.
Mỗi phím nhập tương đương với mỗi hàm trong m-file.
Do đó ta chia các hai nhóm :
-Nhóm các hàm chứa những toán tử được matlab hỗ trợ sẵn.
-Nhóm các phím đặc biệt như ans, c, n!, del, space .
Do mỗi hàm độc lập với nhau, nên ta dùng màn hình hiển thị để liên kết trung gian.
Trang 8Các toán tử được hỗ trợ: 0 đến 9, +, -, *, /, sqrt, sin, cos, tan, log, exp, i,
pi….
Cấu trúc lệnh như sau:
B1: Lấy chuỗi trên edit_text màn hình gán cho v1.
B2: Tạo ma trận v2 chứa 2 phần tử: v1 và toán tử cần hiển thị lên B3: Hiển thị ma trận lên lại màn hình.
Gọi là toán tử hỗ trợ vì ta muốn tính ra kết quả, ta đổi chuỗi thành
số, khi đó matlab sẽ tính ra kết quả và ta chỉ việc xuất kết quả này ra màn hình.
Ví dụ: hàm nhập số 0:function a0_Callback(hObject, eventdata, handles)
v1=get(handles.lcdtinh,'string');
v2=[v1,'0'];
set(handles.lcdtinh,'string',v2);
Trang 9function bang_Callback(hObject, eventdata, handles)
v2=str2num(get(handles.lcdtinh,'string'));
set(handles.lcdketqua,'string',num2str(v2));
Hàm xuất kết quả: bằng
Tính giai thừa: n!
function giaithua_Callback(hObject, eventdata,
handles)
v1=str2num(get(handles.lcdtinh,'string'));
v3=prod(1:v1)
set(handles.lcdketqua,'string',num2str(v2));
Xóa dữ liệu: C
function Clear_Callback(hObject, eventdata, handles) set(handles.lcdtinh,'string','');
Trang 10Tính đạo hàm: f’(x)
function daoham_Callback(hObject, eventdata, handles) f1=get(handles.lcdtinh,'string')
a=length(f1)
if a==0
open=canhbao;
else
open=canhbao;
df1=diff(f1)
f1=simplify(df1)
set(handles.lcdketqua,'string',char(f1))
f2=get(handles.lcdketqua,'string')
if f2~=0
close;
end
end
Trang 11Tính nguyên hàm: int(f(x))
function nguyenham_Callback(hObject, eventdata, handles)
f1=get(handles.lcdtinh,'string')
a=length(f1)
if a==0
open=canhbao;
else
open=canhbao;
df1=int(f1)
f1=simplify(df1)
set(handles.lcdketqua,'string',char(f1))
f2=get(handles.lcdketqua,'string')
if f2~=0
close;
end
end
Trang 12Giải phương trình:
function giaipt_Callback(hObject, eventdata, handles) c=get(handles.lcdtinh,'string')
e=length(c)
if e==0
warndlg('You enter wrong or do not enter Please
else
d=c(1)
if d=='['
warndlg('You enter wrong or do not enter
a=get(handles.lcdketqua,'string')
b=get(handles.lcdtinh,'string')
a1=sym(a)
b1=sym(b)
x=a1\b1
set(handles.lcdketqua,'string',char(x))
v=[a,'=',b]
set(handles.lcdtinh,'string',v)
a=get(handles.lcdketqua,'string')
Trang 13
Giải phương trình:
b=length(a)
b=a(9:b-2)
set(handles.lcdketqua,'string',b)
c=str2num(b)
set(handles.lcdketqua,'string',num2str(c))
c=get(handles.lcdketqua,'string')
c=length(c)
if c==0
set(handles.lcdketqua,'string',b)
end
e=length(get(handles.lcdketqua,'string'))
if e~=0
close;
end
else
a=get(handles.lcdtinh,'string')
b=num2str(str2num(a))
b=length(b)
if b==0
warndlg('You enter wrong or do not enter
Trang 14Giải phương trình:
end
if b~=0
warndlg('You enter wrong or do not enter
end
a=solve(a)
set(handles.lcdketqua,'string',char(a))
c=get(handles.lcdketqua,'string')
d=c(1)
if d=='m'
a=get(handles.lcdketqua,'string')
b=length(a)
b=a(9:b-2)
c=str2num(b)
set(handles.lcdketqua,'string',num2str(c)) c=get(handles.lcdketqua,'string')
c=length(c)
if c==0
set(handles.lcdketqua,'string',b)
end
Trang 15
Giải phương trình:
end
c=get(handles.lcdketqua,'string')
d=length(c)
if d~=0
close;
end
if c=='array([])'
warndlg('You enter wrong or do not enter Please check then enter again!')
set(handles.lcdketqua,'string','')
end
end
end
end
c=get(handles.lcdketqua,'string')
d=length(c)
if d~=0
close;
end
if c=='array([])'
warndlg('You enter wrong or do not enter
set(handles.lcdketqua,'string','')
end
end
end
Trang 16Báo lỗi khi nhập sai kết quả: errordlg hoặc warndlg
function bang_Callback(hObject, eventdata, handles)
v2=str2num(get(handles.lcdtinh,'string'));
set(handles.lcdketqua,'string',num2str(v2));
a = get(handles.lcdketqua,'String');
if(a==0)
errordlg(‘Enter wrong Please enter again!')
end
Lựa chọn ngôn ngữ:
function radiobutton2_Callback(hObject, eventdata, handles) Close; % đóng cửa sổ giao diện tiếng anh
Open= calculater2; % mở cửa sổ giao diện tiếng Việt
Trang 17Cửa sổ giới thiệu chương trình:
Hiển thị ảnh, logo:
Dùng Axes để hiển thị ảnh, logo trên đó, cho các ảnh cần hiểu thị vào thư mục chứa các file figure và m-file, dùng lệnh imshow để gọi hình ảnh
function axes2_CreateFcn(hObject, eventdata, handles)
Thoát chương trình:
function Close_Callback(hObject, eventdata, handles)
close;
Giới thiêu:
function about_Callback(hObject, eventdata, handles) Open= gioithieu;
Trang 18Chạy Thử Kiểm Tra Chương Trình