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