MATLAB LECTURE - Trang 24

9/16/2015

5

Các vòng lặp và rẽ nhánh

17

1

1

1

1

1

1

...

27

2

3

n

i

S

n

i

   

Sử dụng lệng

while

giải bài toán. Ví dụ tìm số n lớn nhất sao cho tổng

sau nhỏ hơn 27

function n = timn(S)
% tim so n lon nhat thoa man
% tongS(n) = 1+1/2+1/3+...+1/n
< S
% gia tri S > 1 vao tu ban phim
T=1;
while T
disp('Vao so duong S')
S = input('S = ')
if (S>1 & S<10) T = 0; end
end
format long

format long
tong=0; i=0;
while(tong<S)
i = i+1;
tong = tong+1/i;
end
n=i-1;
tong=tong-1/i;
disp('So n tim duoc la: ')
disp(n)
disp('Gia tri cua tong S(n) la: ')
disp(tong)

Các vòng lặp và rẽ nhánh

18

Lệnh if, cấu trúc if - else - end
Lệnh điều kiện nếu - thì. Cú pháp
IF expression
statements 1
ELSEIF expression
statements 2
ELSE
statements 3
END

Các vòng lặp và rẽ nhánh

19

k=5;
for i=1:k
for j=1:k
if i==j
A(i,j)=4;
elseif(abs(j-i)==2)
A(i,j)=1;
else
A(i,j)=0;
end
end
end

% ket qua chuong trinh
>> A
A =
4 0 1 0 0
0 4 0 1 0
1 0 4 0 1
0 1 0 4 0
0 0 1 0 4

Các vòng lặp và rẽ nhánh

20

SWITCH switch_expr

CASE case_expr,
statement, ..., statement
CASE {case_expr1, case_expr2, case_expr3,...}
statement, ..., statement
...
OTHERWISE,
statement, ..., statement
END

Cấu trúc switch-case
Lệnh chuyển trong nhiều trường hợp dựa trên biểu thức và có dạng tổng quát
như sau