Lttt matlab chuong 3

19
Chương 3 Lập trình trên Matlab

Transcript of Lttt matlab chuong 3

Page 1: Lttt matlab chuong 3

Chương 3

Lập trình trên Matlab

Page 2: Lttt matlab chuong 3

2 20/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’)

Page 3: Lttt matlab chuong 3

3 20/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: %s\n’, str)

Page 4: Lttt matlab chuong 3

4 20/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

Page 5: Lttt matlab chuong 3

5 20/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ự “%” %%

Page 6: Lttt matlab chuong 3

6 20/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

Page 7: Lttt matlab chuong 3

7 20/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

Page 8: Lttt matlab chuong 3

8 20/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

Page 9: Lttt matlab chuong 3

9 20/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

Page 10: Lttt matlab chuong 3

10 20/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

Page 11: Lttt matlab chuong 3

11 20/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

Page 12: Lttt matlab chuong 3

12 20/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: %d\n’,m,n,x)

Nhập x,y

Y<>0

r := x mod y

x:=y

y:=r

In ra x

Page 13: Lttt matlab chuong 3

13 20/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

Page 14: Lttt matlab chuong 3

14 20/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

Page 15: Lttt matlab chuong 3

15 20/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

Page 16: Lttt matlab chuong 3

16 20/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.

Page 17: Lttt matlab chuong 3

17 20/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.

Page 18: Lttt matlab chuong 3

18 20/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

Page 19: Lttt matlab chuong 3

19 20/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