You are on page 1of 33

TRƯỜNG ĐẠI HỌC

KINH TẾ KỸ THUẬT CÔNG NGHIỆP


KHOA ĐIỆN

MÔN HỌC

KỸ THUẬT LẬP TRÌNH


VÀ GIAO TIẾP
GV: Đinh Thị Hằng – Khoa Điện
Email: dthang@uneti.edu.vn
DĐ: 0983190683

Hà Nội 2020
1. Tên Bài học:
Chương 1. Cơ sở Matlab
“Bài giảng đang trong quá trình hoàn thiện, phát triển”

Tuần 4 (2 tiết):
1.9. Lưu và lấy dữ liệu
1.10. Các toán tử logic và các lệnh điều kiện
1.11. Vòng lặp

2
2. Mục tiêu bài học

- Hướng dẫn cho SV cách lưu và lấy dữ liệu trong phần


mềm Matlab
- Sử dụng các toán tử logic và các lệnh điều kiện
- Sử dụng vòng lặp khi viết chương trình
- Vận dụng biến toàn cục vào các bài toán

3
3. Hướng dẫn học tập

Để hiểu rõ bài học, SV cần thực hiện công việc sau:


- Đọc trước chương 1:Tài liệu học tập Kỹ thuật lập trình và giao
tiếp
- Đọc trước tài liệu: Chương 1 cơ sở matlab trong sách “Matlab và
simulink dành cho kỹ sư điều khiển tự động” Nguyễn Phùng
Quang, NXBKHKT 2004.
- Trả lời các câu hỏi cuối buổi học

- Trao đổi, thảo luận với giảng viên

4
CHƯƠNG 1: CƠ SỞ MATLAB

1.9. Lưu và lấy dữ liệu


• Lưu tất cả các biến cần thiết cho chương trình của bạn vào file riêng,
và khi cần chúng ta gọi chúng ra bằng một lệnh.
• 1.9.1. Lưu và lấy dữ liệu dưới file nhị phân(binary)
- Lưu dữ liệu:
>>save('C:\matlabR12\work\ten_file’) %lưu toàn bộ biến trong
Workspace
>>save('C:\matlabR12\work\ten_file', 'x','y’) % chỉ lưu biến x và y
- Khôi phục lại dữ liệu :
>> load ('C:\matlabR12\work\ten_file') % lấy dữ liệu

5
CHƯƠNG 1: CƠ SỞ MATLAB
1.9. Lưu và lấy dữ liệu
1.9.2 Lưu và lấy dữ liệu dưới file ASCII
>>save('C:\matlabR12\work\ten_file','-ASCII’).
Lưu toàn bộ biến trong workspace vào file
>>save('C:\matlabR12\work\ten_file','x','y','-ASCII').
Lưu hai biến x và y vào file
>>load ('C:\matlabR12\work\ten_file', '-ASCII ').
VD: >>a=3;
>>b=4;
>>save('C:\matlabR12\work\save','a','b','-ASCII')
>>load('C:\matlabR12\work\save','-ASCII') %khôi phục dữ liệu
Trong workspace sẽ có biến save như sau:
Kích đúp vào save sẽ xuất hiện dữ liệu của hai biến a và b
CHƯƠNG 1: CƠ SỞ MATLAB

1.10. Các toán tử Logic và các lệnh điều kiện


1.10.1. Các toán tử Logic
Cấu trúc:

Toán tử Tương Ý nghĩa Ví dụ


logic đương

& and Và A&B


| or Hoặc A|B
~ not Đảo ~A
7
CHƯƠNG 1: CƠ SỞ MATLAB

1.10. Các toán tử Logic và các lệnh điều kiện


1.10.1. Các toán tử Logic
Bảng chân lý:

8
CHƯƠNG 1: CƠ SỞ MATLAB

Lưu ý:
Các toán tử logic thường được sử dụng để liên kết các
biểu thức quan hệ. Chúng thực hiện trên từng phần tử của các
mảng so sánh, kết quả trả về là một ma trận có cùng kích
thước với các ma trận so sánh trên.
Mức ưu tiên cao nhất đối với toán tử logic Đảo (not),
hai toán tử AND ,OR có cùng mức ưu tiên
Trong cùng biểu thức toán học thì chúng được thực hiện
từ trái sang phải.

9
CHƯƠNG 1: CƠ SỞ MATLAB

a.Phép và( and): Ký hiệu là &

Phép & 2 ma trận cùng cỡ A, B là một ma trận có các


phần tử bằng 1 nếu các phần tử tương ứng của cả 2 ma trận
đầu đều khác 0 và bằng 0 nếu 1 trong 2 phần tử tương ứng
của 2 ma trận bằng 0.

Ví dụ:
A=[1 2 7; 0 4 9;1 3 5];
B=[0 2 4; 2 4 6; 3 0 7];
C=A&B

10
CHƯƠNG 1: CƠ SỞ MATLAB

b. Phép hoặc (or) : Ký hiệu là |


Phép or 2 ma trận cùng cỡ A,B là một ma trận có các
phần tử bằng 0 nếu các phần tử tương ứng của cả 2 ma trận
đầu đều bằng 0 và bằng 1 nếu 1 trong 2 phần tử tương ứng
của 2 ma trận khác 0.

Ví dụ:
A=[1 2 7; 0 4 9;1 3 5];
B=[0 2 4; 2 4 6; 3 0 7];
C=A | B

11
CHƯƠNG 1: CƠ SỞ MATLAB

c.Phép đảo( not): Ký hiệu là ~

Phép đảo của một ma trận là một ma trận có cùng cỡ


với các phần tử có giá trị bằng 1 nếu các phần tử của ma trận
đầu có giá trị bằng 0 và bằng 0 nếu các phần tử của ma trận
đầu có giá trị khác 0.

Ví dụ:
A=[1 2 7; 0 4 9;1 3 5];
C=~A

12
CHƯƠNG 1: CƠ SỞ MATLAB

1.10.2. Các cấu trúc câu lệnh điều kiện


a.Lệnh if đơn:
Cú pháp: if <biểu thức logic>
Nhóm lệnh;
end
Nếu biểu thức logic đúng nhóm lệnh sẽ được thực hiện. Nếu
biểu thức logic sai thì chương trình chuyển đến lệnh sau end.

13
CHƯƠNG 1: CƠ SỞ MATLAB

1.10.2. Các cấu trúc câu lệnh điều kiện


a.Lệnh if đơn:
Cú pháp: if <biểu thức logic>
Nhóm lệnh;
end
Ví dụ function y=ht(a,b,c)
if a>b
disp(' hinh thang nguoc')
end
y=(a+b)*c/2;
Sau đó ghi (save) vào file có tên là ht.m
Quay lại cửa sổ MatLab command Window, gõ vào dòng lệnh sau:
>> ht(2,4,2)
hinh thang nguoc
y= 14
6
CHƯƠNG 1: CƠ SỞ MATLAB

1.10.2. Các cấu trúc câu lệnh điều kiện


b. Cấu trúc lệnh if lồng nhau:
Cú pháp:
Nếu biểu thức logic 1 đúng thì
if <biểu thức logic1>
Thực hiện nhóm lệnh 1.
Nhóm lệnh 1;
Kiểm tra biểu thức logic 2.
if <biểu thức logic 2>
Nếu đúng thực hiện nhóm lệnh 2
Nhóm lệnh 2;
Nếu sai bỏ qua nhóm lệnh 2
end
Thực hiện nhóm lệnh 3.
Nhóm lệnh 3;
Nếu biểu thức logic 1 sai thì
end
Thực hiện nhóm lệnh 4.
Nhóm lệnh 4;
CHƯƠNG 1: CƠ SỞ MATLAB

1.10.2. Các cấu trúc câu lệnh điều kiện


c. Lệnh else:
Cú pháp: if <biểu thức logic>
Nhóm lệnh A;
else
Nhóm lệnh B;
end
Nhóm lệnh A sẽ được thực hiện nếu biểu thức logic đúng.
Nếu không nhóm lệnh B sẽ được thực hiện.

16
CHƯƠNG 1: CƠ SỞ MATLAB

1.10.2. Các cấu trúc câu lệnh điều kiện

d. Lệnh elseif
Cú pháp: if <biểu thức logic1 >
Nhóm lệnh A;
elseif < BT logic 2>
Nhóm lệnh B;
elseif < BT logic 3>
Nhóm lệnh C;
......
end

17
CHƯƠNG 1: CƠ SỞ MATLAB

1.10.2. Các cấu trúc câu lệnh điều kiện


e. Kết hợp cấu trúc elseif và else
Cú pháp: if <biểu thức logic1>
Nhóm lệnh A;
elseif < BT logic 2>
Nhóm lệnh B;
elseif < BT logic 3>
Nhóm lệnh C;
......
else < BT logic n>
Nhóm lệnh n;
18
end
CHƯƠNG 1: CƠ SỞ MATLAB

1.10.2. Các cấu trúc câu lệnh điều kiện

f.Câu điều kiện và lệnh Break


Cú pháp: if< biểu thức logic> break
end
thoát khỏi vòng lặp nếu điều kiện logic đúng. Ngược lại sẽ
thực hiện lệnh tiếp theo trong vòng lặp

19
CHƯƠNG 1: CƠ SỞ MATLAB

1.10.2. Các cấu trúc câu lệnh điều kiện

f.Câu điều kiện và lệnh Break


Cú pháp: if< biểu thức logic> break
end
thoát khỏi vòng lặp nếu điều kiện logic đúng. Ngược lại sẽ
thực hiện lệnh tiếp theo trong vòng lặp

20
CHƯƠNG 1: CƠ SỞ MATLAB

1.10.2. Các cấu trúc câu lệnh điều kiện


Ví dụ: Kết hợp cấu trúc elseif và else viết chương trình giải phương
trình bậc hai: ax2 + bx +c = 0 khi có nghiệm kép, vô nghiệm, hai
nghiệm phân biệt.
Hướng dẫn:
Tạo M-file viết chương trình:
a=input(' vao a=') x12=-b/(2*a)
b=input(' vao b=') else
c=input(' vao c=') disp (' pt co 2 nghiem phan
d=b^2-4*a*c biet')
if d < 0 x1=(-b+sqrt(d))/(2*a)
disp(' pt vô nghiệm’) x2=(-b-sqrt(d))/(2*a)
elseif d==0 end
disp (' pt co nghiem kep')
CHƯƠNG 1: CƠ SỞ MATLAB

1.11. Vòng lặp

1.11.1.Vòng lặp for

Cú pháp: for chỉ số = biểu thức


nhóm lệnh ;
end

22
CHƯƠNG 1: CƠ SỞ MATLAB

1.11. Vòng lặp

1.11.1.Vòng lặp for

Ví dụ 1: Tính tổng của n số tự nhiên liên tiếp, n vào từ bàn phím (viết
trong Script file):
n=input('vao so tu nhien n=');
s=0;
for i=1:n;
s=s+i;
end
disp(s)

23
CHƯƠNG 1: CƠ SỞ MATLAB

1.11. Vòng lặp

1.11.2.Vòng lặp for lồng nhau


cú pháp: for chỉ số 1 = biểu thức 1
for chỉ số 2 = biểu thức 2
nhóm lệnh 2
end
nhóm lệnh 1;
end

24
CHƯƠNG 1: CƠ SỞ MATLAB

1.11. Vòng lặp

1.11.2.Vòng lặp for lồng nhau


Ví dụ: n=4
a = zeros(n,n) % Tạo ma trận không
for i = 1:n
for j = 1:n
a(i,j) = 1/(i+j –1);
end
end
disp(‘Ket qua =’)
disp(a)
25
CHƯƠNG 1: CƠ SỞ MATLAB

1.11. Vòng lặp

1.11.3.Vòng lặp While


Cú pháp: while < biểu thức>
Nhóm lệnh A;
end
Nếu biểu thức đúng thì thực hiện nhóm lệnh A. Khi thực hiện
xong thì kiểm tra laị điều kiện. Nếu điều kiện vẫn đúng lại
thực hiện nhóm lệnh A. Nếu sai vòng lặp kết thúc.

26
CHƯƠNG 1: CƠ SỞ MATLAB

1.11. Vòng lặp

1.11.4 Các lệnh break, return, error:

Lệnh break: kết thúc sự thực thi vòng lặp for hoặc while
Lệnh return: thường được sử dụng trong các hàm của Matlab.
Lệnh return sẽ cho phép quay trở về thực thi những lệnh nằm
trong tác dụng của lệnh return.
Lệnh error (‘dòng nhắn’): kết thúc thực thi lệnh và hiển thị
dòng nhắn trên màn hình.

27
CHƯƠNG 1: CƠ SỞ MATLAB

1.11.4 Các lệnh break, return, error:


Ví dụ: Chọn một số dương bất kỳ. Nếu số đó là số chẵn thì
chia hết cho hai. Nếu số đó là số lẻ thì nhân với 3 rồi cộng 1.
Lặp lại quá trình đó cho đến khi kết quả là 1.
Hướng dẫn:
- Tạo M-file, viết chương trình
n=input ('Nhap vao mot so : ');
if n<=0
break
end
while n>1
if rem(n,2)== 0% phan du cua n chia cho 2
n=n/2 28
CHƯƠNG 1: CƠ SỞ MATLAB

1.11.4 Các lệnh break, return, error:


Ví dụ: Chọn một số dương bất kỳ. Nếu số đó là số chẵn thì
chia hết cho hai. Nếu số đó là số lẻ thì nhân với 3 rồi cộng 1.
Lặp lại quá trình đó cho đến khi kết quả là 1.
Hướng dẫn:
- Tạo M-file, viết chương trình
else
n= 3*n+1
end
end
Khi chạy chương trình ta sẽ thấy tác dụng của lệnh break
(dừng chương trình khi nhập số âm hoặc số 0)
29
TỔNG KẾT BÀI

- Hướng dẫn cho SV cách lưu và lấy dữ liệu trong phần


mềm Matlab
- Sử dụng các toán tử logic và các lệnh điều kiện
- Sử dụng vòng lặp khi viết chương trình

30
GIAO NHIỆM VỤ CHUẨN BỊ CHO BUỔI HỌC SAU

1.Bài tập
1. Lập chương trình kiểm tra điểm số của một học sinh xếp loại
xuất sắc hay giỏi, khá, trung bình….

2. Sử dụng vòng lặp giải bài toán dân gian: Vừa gà vừa chó, bó
lại cho tròn 36 con, 100 chân chẵn, hỏi có bao nhiêu chó bao nhiêu
gà.?

31
GIAO NHIỆM VỤ CHUẨN BỊ CHO BUỔI HỌC SAU

3. SV hoàn thiện câu hỏi trắc nghiệm trong File Câu hỏi ôn tập_Tuần 3
4. Sinh viên đọc trước:
• 1.12. Biến toàn cục
• 1.13. Một số hàm toán học
• 1.14. Định dạng số
• (Tài liệu học tập chương 1 và 2 trang 28 – Bài giảng Kỹ thuật lập
trình và giao tiếp)
• Tài liệu [1]; Matlab & Simulink dành cho kỹ sư điều khiển tự
động, của Nguyễn Phùng Quang, NXB KHKT 2004.

32
GIAO NHIỆM VỤ CHUẨN BỊ CHO BUỔI HỌC SAU

3. SV hoàn thiện câu hỏi trắc nghiệm trong File Câu hỏi ôn tập_Tuần 4
4. Sinh viên đọc trước:
- Sinh viên có thể tham khảo ở một số tài liệu tham khảo từ tài liệu [1],
[2], [3], thực hiện trên máy tính có cài matlab và mạng Internet.

CHÚC CÁC EM HỌC TỐT!

Nếu có thắc mắc liên hệ qua email: dthang@uneti.edu.vn


33

You might also like