Vòng lặp điều khiển - Pdf 62

Updatesofts.com Ebook Team
74
chơng 11
VòNG LặP ĐIềU KHIểN

Các ngôn ngữ lập trình và máy tính có khả năng lập trình đều đề cập đến một đặc điểm
là cho phép bạn điều khiển vòng lặp của các câu lệnh dựa trên những cấu trúc của nó. Nếu
bạn đã từng sử dụng những đặc điểm này thì phần này sẽ rất đơn giản đối với bạn. Mặt
khác nếu vòng lặp điều khiển là mới đối với bạn thì nó sẽ rất rắc rối, nếu nh vậy, thì bạn hãy
nghiên cứu nó từ từ.
Vòng lặp điều khiển rất hữu ích và có ứng dụng rất rộng rãi, nó làm cho các phép toán đ-
ợc thực hiện một cách thuận tiện hơn và nhanh hơn. MATLAB đa ra các dạng vòng lặp có
điều khiển là: vòng lặp
for
forfor
for
, vòng lặp
while
whilewhile
while
, cấu trúc
if
ifif
if-
--
-else
elseelse
else-
--
-end
endend

for x = array
commands % Khối các lệnh
end

Các câu lệnh giữa hai trạng thái
for
forfor
for

end
endend
end
đợc thực hiện một lần cho tất cả các cột
của mảng (array). Tại mỗi lần lặp lại, x đợc gán cho phần tử cột tiếp theo nh trong suốt n
lần của vòng lặp, x = array(:, n).
Ví dụ:

>> for n = 1:10
x(n) = sin(n*pi/10);
end
>> x
x =
Columns 1 through 7

0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090

Columns 8 through 10

0.5878 0.3090 0.0000


Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000

Trạng thái 1:10 là một trạng thái tạo lên mảng MATLAB tiêu chuẩn. Bất cứ kiểu mảng nào
của MATLAB đều đợc chấp nhận trong vòng lặp
f
ff
for
oror
or
:

>> data = [3 9 45 6; 7 16 -1 5]
data =
3 9 45 6
7 16 -1 5
>> for n = data
x = n(1)-n(2)
end
x =
-4
x =
-7
x =
46
x =
1
Bình thờng vòng lặp

trong ví dụ trớc ta cũng có thể dùng mảng để tính toán:

>> n = 1: 10;
>> x = sin(n*pi/10)
x =
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000

Trong hai trờng hợp nh trên, trờng hợp thứ hai ta dùng mảng để tính toán cũng đợc
kết quả nh vậy, nhng nó nhanh hơn và các tháo tác cũng ít hơn.
Để tăng tốc độ tính toán, mảng cần phải đợc khởi tạo trớc khi thực hiện vòng lặp
for
forfor
for

(hoặc vòng lặp
while
whilewhile
while
). Trong ví dụ trớc cứ mỗi lần lệnh trong vòng lặp
for
forfor
for
đợc tính, kích cỡ
của biến x lại tăng lên 1. Điều này làm cho MATLAB mất thời gian để cập nhật thêm bộ nhớ
cho x trong mỗi vòng. Để rút ngắn bớc này, ví dụ về vòng lặp
for
forfor

khối các lệnh..
end
endend
end khối các lệnh.. giữa hai trạng thái
while
whilewhile
while

end
endend
end
đợc thực hiện lặp đi lặp lại khi tất cả các
biểu thức điều kiện là đúng. Thông thờng giá trị của điều kiện đa ra kết quả là một số,
nhng nếu các kết quả đa ra là một mảng thì vẫn hợp lệ. Trong trờng hợp mảng, tất cả các
phần tử trong mảng kết quả đa ra phải là True (đúng). Có thể tham khảo ví dụ dới đây:

>> num = 0; ESP = 1;
>> while (1+ESP) > 1
ESP = ESP/ 2;
num = num + 1;
end
>> num
num=
53
>> ESP = 2*ESP
ESP=
2.2204e-16

ngôn ngữ lập trình, logic này đợc cung cấp bởi cấu trúc
if
ifif
if-
--
-else
elseelse
else-
--
-end
endend
end
. Cú pháp của cấu trúc
này nh sau:

if
if if
if biểu thức điều kiện
khối các lệnh...
end
endend
end
Khối các lệnh giữa hai trạng thái
if
ifif
if


là:

if
if if
if biểu thức điều kiện
khối các lệnh đợc thực hiện nếu điều kiện là đúng
else
elseelse
else khối các lệnh đợc thực hiện nếu điều kiện là sai
end
endend
end
Khi có ba hoặc nhiều điều kiện thay đổi, cấu trúc của nó sẽ là:

if
if if
if biểu thức điều kiện 1
khối các lệnh đợc thực hiện nếu điều kiện 1 là đúng
elseif
elseif elseif
elseif biểu thức điều kiện 2
khối các lệnh đợc thực hiện nếu điều kiện 2 là đúng
elseif
elseif elseif

else-
--
-end
endend
end
còn lại đợc bỏ qua. Hơn nữa câu lệnh
else
elseelse
else

cuối có thể không cần cho vào.
Đối với cấu trúc
if
ifif
if-
--
-else
elseelse
else-
--
-end
endend
end
, chúng ta cũng có thể lồng vào các vòng lặp
for
forfor
for

while
whilewhile

hoặc
while
whilewhile
while
trong các vòng lặp nồng nhau thì nó chỉ nhảy ra khỏi một vòng lặp chứa
nó chứ nó không nhảy ra khỏi tất cả các vòng lặp.

11.4 Cấu trúc switch
11.4 Cấu trúc switch11.4 Cấu trúc switch
11.4 Cấu trúc switch-
--
-case
casecase
case
Khi một chuỗi các lệnh đánh giá dựa trên một biểu thức thử hoặc biểu thức điều kiện với
nhiều giá trị thử khác nhau, ngời ta thờng dùng cấu trúc
switch
switchswitch
switch-
--
-case
casecase
case
. Cấu trúc
switch
switchswitch
switch-

case
sẽ thử xem giá trị của biểu thức đó có bằng giá trị thử
i
i i
i
hay không.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status