Chương 3
Lập trình trên Matlab
220/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản
Nhập/xuất
 Nhập
>> input(prompt)
Hoặc >> input(prompt, ‘s’)
Ví dụ:
>> x = input(‘Nhap vao gia tri cua x: ’)
>> str = input(‘Nhap vao chuoi str: ’, ‘s’)
320/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Nhập/xuất (tt.)
 Xuất
>> disp(X)
Hoặc >> fprintf(formatSpec,A1,…,An)
Ví dụ:
>> x = input(‘Nhap vao gia tri cua x: ’)
>> disp(x)
>> str = input(‘Nhap vao chuoi str: ’, ‘s’)
>> fprintf(‘Chuoi str: %sn’, str)
420/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Nhập/xuất (tt.)
 Xuất (tt.)
Một số định dạng của fprintf:
Kiểu Định dạng
Integer, signed %d hoặc %i
Floating-point number %f
Single Character %c
String if characters %s
520/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Nhập/xuất (tt.)
 Xuất (tt.)
Một số định dạng của fprintf (tt.):
Ý nghĩa Định dạng
Xuống hàng n
Tab t
Ký tự “” 
Ký tự “%” %%
620/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Lệnh điều kiện if
 Cú pháp:
if <conditional expression>
<statement sequences>
elseif <conditional expression>
<statement sequences>
else
<statement sequences>
end
720/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Lệnh điều kiện if (tt.)
 Ví dụ 1:
if delta<0
disp(‘Phuong trinh vo nghiem’)
elseif delta == 0
disp(‘Phuong trinh co nghiem kep’)
-b/2/a
else
disp(‘Phuong trinh co 2 nghiem phan biet’)
(-b-sqrt(delta))/2/a
(-b+sqrt(delta))/2/a
end
820/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Lệnh điều kiện if (tt.)
 Ví dụ 2:
a = input(‘Nhap a =’)
if a > 0
disp(‘so duong’)
if mod(a,2) ~= 0
disp(‘so le’)
else
disp(‘so chan’)
end
else
disp(‘khong duong’)
end
920/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Lệnh điều kiện switch
 Cú pháp:
switch <switch expression>
case <case expression>
<statement sequences>
case <case expression>
<statement sequences>
…
otherwise
<statement sequences>
end
1020/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Lệnh điều kiện switch (tt.)
 Ví dụ:
switch thang
case {1,3,5,7,8,10,12}, ngay=31
case {4,6,9,11}, ngay=30
case 2
if nhuan(nam)
ngay=29
else
ngay=28
end
otherwise
disp(‘thang khong hop le’)
end
1120/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Vòng lặp while
 Cú pháp:
while <conditional expression>
<statement sequences>
end
 Ví dụ: Tìm USCLN của 2 số nguyên theo thuật toán
Euclide
1220/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Vòng lặp while (tt.)
 Ví dụ (tt.):
x=30;
y=12;
m=x;
n=y;
while y~=0
r=mod(x,y);
x=y;
y=r;
end;
fprintf(‘Uoc chung lon nhat cua %d va %d la: %dn’,m,n,x)
Nhập x,y
Y<>0
r := x mod y
x:=y
y:=r
In ra x
1320/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Vòng lặp for
 Cú pháp:
for index=value
<program statements>
end
 Ví dụ 1:
for s = [1,5,8,17]
disp(s)
end
1420/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Vòng lặp for (tt.)
 Ví dụ 2:
for i = 1:3
for j = 1:3
H(i,j) = 1/(i+j);
end
end
H =
0.5000 0.3333 0.2500
0.3333 0.2500 0.2000
0.2500 0.2000 0.1667
1520/05/2013 Lập trình tính toán
3.1 Các lệnh lập trình cơ bản (tt.)
Break
 break dùng để thoát ngang vòng lặp hiện tại
 Ví dụ: Nhập n, kiểm tra n có phải là số nguyên tố hay
không
n = input (‘Nhap n: ’)
for i = 2:n-1
if mod(n,i)==0
disp(‘n khong la so nguyen to’)
break
end
end
1620/05/2013 Lập trình tính toán
3.2 Cách tạo lập hàm
Script
 Là các dòng lệnh Matlab được chứa trong một file có
phần mở rộng .m
 File script có thể được soạn thảo bằng Matlab Editor hoặc
các chương trình soạn thảo khác
 Để thực thi script chỉ cần gọi tên file trong cửa sổ dòng
lệnh của Matlab.
1720/05/2013 Lập trình tính toán
3.2 Cách tạo lập hàm (tt.)
Hàm
 Cũng là một file.m có thể nhận tham số và trả về các giá
trị.
 Tên hàm phải trùng với tên file.m. Gọi lệnh bằng cách gõ
tên hàm (tên file.m)
 Cú pháp:
function tri_tra_ve = ten_ham (tham_so)
 Sau dòng này, các dòng chú thích bắt đầu bằng dấu “%”
sẽ xuất hiện khi gọi lệnh help tên_hàm.
1820/05/2013 Lập trình tính toán
3.2 Cách tạo lập hàm (tt.)
Hàm (tt.)
 Ví dụ: File tbc.m có nội dung như sau:
function s = tbc(x)
s = sum(x(:))/length(x(:));
Gọi lệnh:
>>t = tbc([2 3 4 5 6])
t =
4
1920/05/2013 Lập trình tính toán
3.2 Cách tạo lập hàm (tt.)
Hàm (tt.)
 Hàm phụ:
• Khác tên hàm chính, chỉ nhằm hỗ trợ tính toán cho tên
hàm chính trong script hàm
• Hàm phụ nằm sau hàm chính
• Ví dụ: File chinh.m
function c = chinh(A)
c = phu(A) – 1
function d = phu(B)
d = min(B(:))
Gọi hàm:
>> chinh([23 2 34])
ans = 1

Lttt matlab chuong 3

  • 1.
  • 2.
    220/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản Nhập/xuất  Nhập >> input(prompt) Hoặc >> input(prompt, ‘s’) Ví dụ: >> x = input(‘Nhap vao gia tri cua x: ’) >> str = input(‘Nhap vao chuoi str: ’, ‘s’)
  • 3.
    320/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Nhập/xuất (tt.)  Xuất >> disp(X) Hoặc >> fprintf(formatSpec,A1,…,An) Ví dụ: >> x = input(‘Nhap vao gia tri cua x: ’) >> disp(x) >> str = input(‘Nhap vao chuoi str: ’, ‘s’) >> fprintf(‘Chuoi str: %sn’, str)
  • 4.
    420/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Nhập/xuất (tt.)  Xuất (tt.) Một số định dạng của fprintf: Kiểu Định dạng Integer, signed %d hoặc %i Floating-point number %f Single Character %c String if characters %s
  • 5.
    520/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Nhập/xuất (tt.)  Xuất (tt.) Một số định dạng của fprintf (tt.): Ý nghĩa Định dạng Xuống hàng n Tab t Ký tự “” Ký tự “%” %%
  • 6.
    620/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Lệnh điều kiện if  Cú pháp: if <conditional expression> <statement sequences> elseif <conditional expression> <statement sequences> else <statement sequences> end
  • 7.
    720/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Lệnh điều kiện if (tt.)  Ví dụ 1: if delta<0 disp(‘Phuong trinh vo nghiem’) elseif delta == 0 disp(‘Phuong trinh co nghiem kep’) -b/2/a else disp(‘Phuong trinh co 2 nghiem phan biet’) (-b-sqrt(delta))/2/a (-b+sqrt(delta))/2/a end
  • 8.
    820/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Lệnh điều kiện if (tt.)  Ví dụ 2: a = input(‘Nhap a =’) if a > 0 disp(‘so duong’) if mod(a,2) ~= 0 disp(‘so le’) else disp(‘so chan’) end else disp(‘khong duong’) end
  • 9.
    920/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Lệnh điều kiện switch  Cú pháp: switch <switch expression> case <case expression> <statement sequences> case <case expression> <statement sequences> … otherwise <statement sequences> end
  • 10.
    1020/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Lệnh điều kiện switch (tt.)  Ví dụ: switch thang case {1,3,5,7,8,10,12}, ngay=31 case {4,6,9,11}, ngay=30 case 2 if nhuan(nam) ngay=29 else ngay=28 end otherwise disp(‘thang khong hop le’) end
  • 11.
    1120/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Vòng lặp while  Cú pháp: while <conditional expression> <statement sequences> end  Ví dụ: Tìm USCLN của 2 số nguyên theo thuật toán Euclide
  • 12.
    1220/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Vòng lặp while (tt.)  Ví dụ (tt.): x=30; y=12; m=x; n=y; while y~=0 r=mod(x,y); x=y; y=r; end; fprintf(‘Uoc chung lon nhat cua %d va %d la: %dn’,m,n,x) Nhập x,y Y<>0 r := x mod y x:=y y:=r In ra x
  • 13.
    1320/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Vòng lặp for  Cú pháp: for index=value <program statements> end  Ví dụ 1: for s = [1,5,8,17] disp(s) end
  • 14.
    1420/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Vòng lặp for (tt.)  Ví dụ 2: for i = 1:3 for j = 1:3 H(i,j) = 1/(i+j); end end H = 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000 0.2500 0.2000 0.1667
  • 15.
    1520/05/2013 Lập trìnhtính toán 3.1 Các lệnh lập trình cơ bản (tt.) Break  break dùng để thoát ngang vòng lặp hiện tại  Ví dụ: Nhập n, kiểm tra n có phải là số nguyên tố hay không n = input (‘Nhap n: ’) for i = 2:n-1 if mod(n,i)==0 disp(‘n khong la so nguyen to’) break end end
  • 16.
    1620/05/2013 Lập trìnhtính toán 3.2 Cách tạo lập hàm Script  Là các dòng lệnh Matlab được chứa trong một file có phần mở rộng .m  File script có thể được soạn thảo bằng Matlab Editor hoặc các chương trình soạn thảo khác  Để thực thi script chỉ cần gọi tên file trong cửa sổ dòng lệnh của Matlab.
  • 17.
    1720/05/2013 Lập trìnhtính toán 3.2 Cách tạo lập hàm (tt.) Hàm  Cũng là một file.m có thể nhận tham số và trả về các giá trị.  Tên hàm phải trùng với tên file.m. Gọi lệnh bằng cách gõ tên hàm (tên file.m)  Cú pháp: function tri_tra_ve = ten_ham (tham_so)  Sau dòng này, các dòng chú thích bắt đầu bằng dấu “%” sẽ xuất hiện khi gọi lệnh help tên_hàm.
  • 18.
    1820/05/2013 Lập trìnhtính toán 3.2 Cách tạo lập hàm (tt.) Hàm (tt.)  Ví dụ: File tbc.m có nội dung như sau: function s = tbc(x) s = sum(x(:))/length(x(:)); Gọi lệnh: >>t = tbc([2 3 4 5 6]) t = 4
  • 19.
    1920/05/2013 Lập trìnhtính toán 3.2 Cách tạo lập hàm (tt.) Hàm (tt.)  Hàm phụ: • Khác tên hàm chính, chỉ nhằm hỗ trợ tính toán cho tên hàm chính trong script hàm • Hàm phụ nằm sau hàm chính • Ví dụ: File chinh.m function c = chinh(A) c = phu(A) – 1 function d = phu(B) d = min(B(:)) Gọi hàm: >> chinh([23 2 34]) ans = 1