Các câu lệnh điều kiện, rẽ nhánh

Một phần của tài liệu Ứng dụng MATLAB trong tính toán ngẫu nhiên (Trang 31 - 38)

1.10.1. Câu lệnh điều kiện if.

Cấu trúc

%Đây là cấu trúc đơn giản nhất.

if expression Statements;

end;

% Cấu trúc sử dụng lệnh elseif, else và if được viết liền kề if expression1

Statements;

elseif expression2 Statement;

else

Statements;

end

Biểu thức expression bao gồm các toán tử quan hệ ví dụ như (count<limit) hoặc (height-offset) > 0. Ngoài ra nó còn kết hợp với các toán tử logic để liên kết các biểu thức quan hệ.

Ví dụ 1: if (count<limit) và (height-offset)>0)

Ví dụ 2: Cho khoảng [a,b], viết chương trình chia khoảng này thành n khoảng bằng nhau với n cho trước.

function v= lnearspace(a,b,n) if n<2

error(‘Ban nhap sai, it nhat n phai lon hon 1’);

end;

h=(b-a)/(n-1);

v=a:h:b;

--- Thực thi chương trình trên trong Commandwindow như sau:

>> v=Soan1(5,1,5) v =

5 4 3 2 1

Ví dụ 3: Chương trình xác định dấu của số nhập vào:

function s= sign(x) if x>0

s=1; % so duong elseif x<0

s=-1; % so am else

s=0; % so =0 end;

Nguyên tắc làm việc của lệnh if như sau: Khi biểu thức expression đúng thì câu lệnh ngay sau lệnh if được thực hiện nếu sai thì câu lệnh đó sẽ được bỏ qua đến lệnh eleif.

Một biểu thức so sánh là đúng nếu tất cả các phần tử so sanh của hai mảng (hai ma trận) trả về giá trị 1

Ví dụ:

A=[ 1 0; 2 3]; B=[1 1; 3 4];Thì:

+ A<B là sai vì A(1,1) không nhỏ hơn B(1,1);

+A<(B+1) là đúng vì không phần tử nào trong A lớn hơn phần tử trong B tương ứng

%Cấu trúc khi sử dụng lệnh else if

if expression1 statements1;

else

if expression2 statements2;

end end

Ta thấy trong cấu trúc trên thì có hai lệnh if riêng biệt cho nên phải có hai từ kết thúc làend. Bài tập ví dụ: Nhập vào bàn phím điểm của một học sinh rồi in ra đánh giá

Diem= input(‘nhap diem vao=’);

if ( Diem< 5)

fprintf(‘Hoc luc yeu’);

elseif( Diem>=5)&(Diem<7)

fprintf(‘Hoc luc trungbinh’);

1.10.2. Vòng lặp for

Cấu trúc:

f ori=imin :∆i:imax

statements;

end

∆i: Là bước nhảy của vòng lặp for , giá trị mặc định = 1;

Ví dụ: Tính tổngs=1+2p+3p+...np; (p là số mũ)

$ function s= Sump(n , p) s=0;

for i=1:n ; s=s+i^p ;end; $ Hai chương trình sau đây là giống nhau:

1.10.3. Vòng lặp while

Cấu trúc:

while( bieu_thuc_logic) statements;

end;

Trước hết vòng lặp kiểm tra xem nếu biểu thức logic đúng thì thực hiện các câu lệnhstatements.

Ví dụ:

n=input(‘Nhap n=’);

s=0; i=0;

while( i<n) s=s+i;

end;

1.10.4. Lệnh ngắt break, error, return

• Lệnh break: Tác dụng điều khiển chương trình nhảy ra khỏi vòng lặp for hay while gần nó nhất.

Ví dụ: Nhập một số dương nếu âm thì nhập lại while 1

n= input(‘nhap n=’);

while(n<0) %Vong lap while2

break; %Thoat khoi vong lap while2 end

if n>0

break; %Thoat khoi vongwhile chinh end

end

1.10.5. Lệnh error và lệnh return

• Lệnh error: Dùng để thông báo lỗi, hiển thị cho người lập trình biết đó là lỗi gì?

Ví dụ: error (’error message’); hiển thị thông điệp lỗi khi thực hiện câu lệnh này.

a=input(‘Nhap a=’);

b=input(‘Nhap b=’);

% Thuc hien a: b if b==0

error(‘divide by zeros’);

end;

Khi thực thi chương trình trên (nhập b=0) thì xuất hiện dòng chữ đỏ Như sau:

??? Error using ==> soan1 divide by zeros

Chú ý rằng soan1 là trrn file lưu chương trình trên.

• Lệnh return: Thường được sử dụng trong các hàm của MATLAB.

Lệnh return sẽ cho phép quay trở về thực thi những lệnh nằm trong

tác dụng của lệnh return.

1.10.6. Biến toàn cục

Biến toàn cụ được dùng trong phạm vi toàn bộ các chương trình, nếu các chương trình đó khai báo biến toàn cục đó. Cấu trúc: global x y z % khai báo ba biến toàn cục x y z

Ví dụ đơn giản sau:

function[ u,v]=Main(x,y) global a b;

Tinhham(x,y,z);

u=a;v=b;

% Chương trình con tính hàm function Tinhham(x,y,z) global a b;

a=x^2 +y^2+ z^2;

b=x^3 +y^3+

z^3;

Thực thi chương trình:

>> x=2,y=3,z=4;

>> [u,v]=Main(x,y,z);

1.10.7. Định dạng dữ liệu ra

Các phép tính trong MATLAB được thực hiện với độ chính xác cao, ta có thể định dạng cho các số xuất ra màn hình tùy từng yêu cầu cụ thể:

Ví dụ số a=4/3 với

• format short (đây là chế độ mặc định gồm 4 số sau dấu phẩy) a=1.3333

• format short e a= 1.3333e+00

• format long

a=1.3333333333333

• format lang e

a=1.3333333333333e+000

Ngoài cách này ra ta định dạng dữ liệu bằng thanh tool công cụ trên màn hình. Ví dụ: Gõ lệnh sau trong cứa sổ Commandwindow

>>format long

>>a=4/3 a=

1.3333333333333

1.10.8. Một số hàm toán học thông thường hay sử dụng

Tên hàm Ý nghĩa Sin Hàm sin

Cos Hàm cos

Tan Hàm tan

Asin Hàm acsin Acos Hàm accos

Atan Hàm Hàm tính arctg Angle Lấy góc pha

Fix Làm tròn hướng 0 Floor Làm tròn hướng -∞

Exp Hàm e mũ

Ceil Làm tròn hướng -∞

Log Logarit cơ số e log10 Logarit cơ số 10 sqrt(x) Căn bậc 2

Một phần của tài liệu Ứng dụng MATLAB trong tính toán ngẫu nhiên (Trang 31 - 38)

Tải bản đầy đủ (PDF)

(62 trang)