Bai7_Buoi8

Màu nền
Font chữ
Font size
Chiều cao dòng

BÀI 7. NHẬP, XUẤT SỐ LIỆU VÀ GIAO DIỆN (tiếp)

7.6. Tạo giao diện người dùng - uicontrol

Cú pháp: t = uicontrol(f,'tc1', 'gt1', 'tc2', 'gt2',...)

Ý nghĩa: Tạo một đối tượng điều khiển giao diện tên là t, nằm trong cửa sổ đồ hoạ f với 'tc1', 'tc2',..và 'gt1', 'gt2',...tương ứnh là các tính chất của đối tượng và giá trị của các tính chất đó.

7.7 Lấy các thuộc tính của đối tượng

* Cú pháp: get(t, 'tci')

* Ý nghĩa: lấy giá trị của thuộc tính (tính chất) tci của đối tượng t

7.8. Ví dụ về giao diện người dùng

Từ các mục trên, ta nhận ra là có thể xuất và nhập kết quả là bằng giao diện đồ họa. Việc xuất kết quả bằng giao diện đồ họa trước hết đòi hỏi chúng ta phải xây dựng giao diện. Sau khi viết giao diện, ta cần viết lệnh để thực hiện các tính toán mong muốn.

Để nắm vững các lệnh đã học, ta nghiên cứu ví dụ sau:

Cho số lượng quả táo và giá cả của mỗi quả. Hãy tính số tiền cần có để mua số táo đó.

Chương trình được viết như sau:

* Phần giao diện

t = figure;

set(t,'DefaultUicontrolunit','Normalized','MenuBar','none','Numbertitle','off','Color',[.8 .8 .8],'Name','Tinh tien');

frame1 = uicontrol(t,'Style','Frame','Position',[.1 .1 .8 .2],'BackgroundColor',[.1 .5 .9]);

frame2 = uicontrol(t,'Style','Frame','Position',[.1 .4 .8 .2],'BackgroundColor',[.9 .5 .1]);

frame2 = uicontrol(t,'Style','Frame','Position',[.1 .7 .8 .2],'BackgroundColor',[.1 .9 .5]);

text_tien = uicontrol(t,'Style','Text','string','Tong so tien','Position',[.2 .2 .3 .05]);

edit_tien = uicontrol(t,'Style','Edit','string','20000','Position',[.6 .2 .2 .1]);

text_giaca = uicontrol(t,'Style','Text','string','Gia moi qua','Position',[.2 .5 .3 .05]);

edit_giaca = uicontrol(t,'Style','Edit','string','2000','Position',[.6 .5 .2 .05],'Callback','Tinh2');

text_soluong = uicontrol(t,'Style','Text','string','So luong tao','Position',[.2 .8 .3 .05]);

edit_soluong = uicontrol(t,'Style','Edit','string','10','Position',[.6 .8 .2 .05],'Callback','Tinh1');

Kết quả ta được giao diện như hình vẽ dưới đây

* Phần tính toán và hiển thị

+ Lấy số liệu nhập từ giao diện (file Tinh1)

soluong = get(edit_soluong,'string');

soluong = str2num(soluong);

tien = soluong*giaca;

set(edit_tien,'string',tien)

+ Lấy số liệu, tính toán và hiển thị (file Tinh2)

giaca = get(edit_giaca,'string');

giaca = str2num(giaca);

tien = soluong*giaca;

set(edit_tien,'string',tien)

• Một số thuộc tính và giá trị của chúng

Thuộc tính Giá trị

Style pushbutton, togglebutton, radiobutton, checkbox, edit, text, slider, frame, listbox, popupmenu.

String Chuỗi ký tự bất kỳ nằm giữa 2 dấu ''

Position [x y dài cao ]

Callback Tên của file cần gọi

FontUnits inches, centimeter, normalized, points, pixels

ForegroundColor [red green blue]

BackgroundColor [red green blue]

HorizontalAlignment left, center, right

Fontsize 1, 2, 3, ...

7.9. Xuất kết quả ra file

Việc xuất kết quả ra các file thường là file có đuôi .txt hoặc .doc. Có rất nhiều lệnh để xuất kết quả như vậy. Sau đây chỉ giới thiệu ba trong số các lệnh đó:

a. Lệnh fprintf

Lệnh fprintf dùng để xuất dữ liệu vào một file có đuôi là .doc hoặc .txt,...hoặc dùng để xuất kết quả ra màn hình theo cách mà ta mong muốn. Trong trường hợp xuất dữ liệu vào một file thì nó đòi hỏi phải mở một file trước, sau đó mới ghi dữ liệu cần thiết vào file này, cuối cùng ta đóng file đó lại

* Cú pháp: fprintf(bienghi,format,A)

* Ý nghĩa: Sắp xếp các phần tử trong ma trận A theo kiểu format và ghi chúng vào file nhờ biến bienghi.

* Ví dụ:

a=[1 2 3 4 5 6 7 8 9] ; b = [10 20 30 40 50 60 70 80 90];

bienghi = fopen('a3.txt','w');

fprintf(bienghi,'| %4.1f | %4.2f |

',[a;b]);

fclose(bienghi);

Sẽ ghi kết quả vào file có tên a3.txt trong thư mục hiện hành

| 1.0 | 10.00 |

| 2.0 | 20.00 |

| 3.0 | 30.00 |

| 4.0 | 40.00 |

| 5.0 | 50.00 |

| 6.0 | 60.00 |

| 7.0 | 70.00 |

| 8.0 | 80.00 |

| 9.0 | 90.00 |

* Chú ý:

- Nếu trong lệnh này, không có thành phần bienghi thì kết quả sẽ được xuất trực tiếp ra màn hình command window . Khi có thành phần bienghi thì kết quả sẽ được ghi vào file nhờ biến có tên là bienghi. Trong trường hợp này, chúng ta phải dùng lệnh open để mở (hoặc tạo) file cần ghi, sau khi thực hiện lệnh fprintf xong lại phải dùng lệnh close để đóng file đó lại. Do đó cú pháp đầy đủ sẽ phải có thêm 2 lệnh open và close, chữ 'w' trong lệnh open có nghĩa là mở file để ghi (xem thêm lệnh open)

- format là một chuỗi ký tự được quy ước theo một cách thức nhất định và khá phức tạp. Có rất nhiều các quy ước khác nhau. Ở đây chỉ trình bày một số quy ước cần thiết, trong đó có thành phần cần thiết và thành phần không cần thiết:

+ Chuỗi ký tự bắt buộc phải nằm giữa 2 dấu ''.

+ Các ký tự nằm trong chuỗi ký tự đều được ghi ra trong filename, trừ một số ký tự đặc biệt dùng để định nghĩa cách sắp xếp các phần tử của ma trận.

+ Các ký tự đặc biệt được chú thích dưới đây:

%4.2f

% - là dấu bắt buộc khi bắt đầu ghi một phần tử 4 - Cho biết số ô được dùng để lưu phần tử

.2 - Số chữ số được lấy sau dấu phẩy

f - Kết thúc ghi một phần tử

- xuống dòng, bắt đầu một dòng mới

+ Các phần tử được xếp thứ tự như sau: Từ phần tử thứ nhất đến phần tử cuối cùng của cột thứ nhất, sau đó lại bắt đầu như thế đối với cột thứ hai,... cho đến cột cuối cùng.

b. Lệnh dlmwrite

* Cú pháp: dlmwrite('filename',M,'delimiter').

* Ý nghĩa: Ghi ma trận M vào file dữ liệu có tên là filename, các phần tử của các cột được phân cách (ranh giới) bởi delimiter, chúng ta có thể chọn delimiter tuỳ ý

* Chú ý:

- filename chứa cả phần đuôi: .txt, .doc,...

- Kiểu phân cách chỉ thực hiện đối với các cột (chứ không phải các hàng)

* Ví dụ: Cho M = [21 22 23 24; 15 16 17 18; 11 12 13 14];

dlmwrite('vidu1.doc',M, ' | ')

Sẽ ghi kết quả sau vào file vidu1.doc trong thư mục hiện hành

21 | 22 | 23 | 24

15 | 16 | 17 | 18

11 | 12 | 13 | 14

c. Lệnh csvwrite

* Cú pháp: csvwrite('filename',M).

* Ý nghĩa: Ghi ma trận M vào file dữ liệu có tên là filename, các phần tử của các cột được phân cách (ranh giới) bởi dấu phẩy ','.

* Chú ý:

- filename chứa cả phần đuôi: .txt, .doc,...

- Ranh giới chỉ thực hiện đối với các cột (chứ không phải các hàng)

* Ví dụ: Cho M = [21 22 23 24; 15 16 17 18; 11 12 13 14];

dlmwrite('vidu2.txt',M)

Sẽ ghi kết quả như sau vào file vidu2.txt trong thư mục hiện hành

21,22,23,24

15,16,17,18

11,12,13,14

Bạn đang đọc truyện trên: Truyen2U.Pro

#matlab