bài tập matlab rất hay và bổ ích đã giải sẵn bài tập matlab rất hay và bổ ích đã giải sẵn bài tập matlab rất hay và bổ ích đã giải sẵn bài tập matlab rất hay và bổ ích đã giải sẵn bài tập matlab rất hay và bổ ích đã giải sẵn bài tập matlab rất hay và bổ ích đã giải sẵn bài tập matlab rất hay và bổ ích đã giải sẵn bài tập matlab rất hay và bổ ích đã giải sẵn
Trang 1Giải bài tập matlab
Có mấy bài ko có input, output thì tự viết, tốn giấy vãi
Câu 1.
a) Tạo hàm để xác định một số n có phải là số nguyên tố hay không
function f=songto(x)
%input x
%output f=1 thi x la so nguyen to, f=0 thi x khong phai so nguyen to
s=0;
for i=1:x/2
if mod(x,i)==0;
s=s+1;
end
end
if s==1
f=1;
else f=0;
b) Tạo hàm script m-file in ra màn hình 50 số nguyên tố đầu tiên (có sử dụng hàm đã tạo)
s=0;
i=0;
while s<10
i=i+1;
if songto(i)==1;
s=s+1;
disp(i);
end;
end;
Câu 2.
a) Tạo hàm để xác định một số n có phải là số hoàn hảo hay không (tự làm)
function f=sohoanhao(n)
%input n
%output f=1 thi x la so hoan hao, f=0 thi x khong phai so hoan hao
s=0;
for i=1:n/2
if (mod(n,i)==0)
s=s+i;
end
end
if(s==n)
f=1;
else
f=0;
end;
b) Tạo script m-file in ra màn hình những số hoàn hảo nhỏ hơn n (có sử dụng hàm đã tạo), với n được nhập từ bàn phím
n=input('Nhap n= ');
for i=1:n-1
if sohoanhao(i)==1
disp(i);
end;
end;
Trang 2Câu 3.
a) Tạo hàm tính giai thừa của một số n
function f=giaithuăn)
% ham tinh giai thua cua 1 so
f=prod(1:n);
b) Tạo script m-file tính Cnk = n!/(k!*(n-k)!) với n, k được nhập từ bàn phím, k<=n
%input n,k (n>=k)
%output to hop chap k cua n
n=input('Nhap n= ');
k=input('Nhap k= ');
c=giaithuăn)/(giaithuăk)*giaithuăn-k));
disp(['To hop chap ' num2str(k) 'cua ' num2str(n) ' bang: ']);
disp(c);
Câu 4 Viết 1 script để thể hiện
%Nhap ma tran
m=input('Nhap so hang cua ma tran: ');
n=input('Nhap so cot cua ma tran: ');
for i=1:m
for j=1:n
ăi,j)=input(['Nhap ắ num2str(i) ',' num2str(j) ')= ']);
end;
end;
disp(a);
% Gan cho vector x là dong cuoi cung cua Ạ
x=ăend,:);
disp('Dua ra dong cuoi cung cua a: ');
disp(x);
% Gan cho ma tran y la hai cot dau tien cua Ạ
y=ă1:m,1:2);
disp('Dua ra 2 cot dau tien cua a: ');
disp(y);
% Tinh tong theo dong ma tran A, tinh tong theo cot ma tran A
for i=1:m
s(i)=0;
end;
for j=1:n
c(j)=0;
end;
for i=1:m
for j=1:n
s(i)=s(i)+ăi,j);
end;
end;
for i=1:m
disp(['Tong cac phan tu cua hang ' num2str(i) ' = ' num2str(s(i))]);
end;
for j=1:n
for i=1:m
c(j)=c(j)+ăi,j);
2
Trang 3end;
end;
for j=1:n
disp(['Tong cac phan tu cua cot ' num2str(j) '= ' num2str(c(j))]);
end;
% Tim gia tri lon nhat và nho nhat cua ma tran
min=a(1,1);
max=a(1,1);
for i=1:m
for j=1:n
if(max<a(i,j)) max=a(i,j);
elseif(min>a(i,j)) min= a(i,j);
end;
end;
end;
disp(['Max= ' num2str(max)]);
disp(['Min= ' num2str(min)]);
% Tinh tong trung binh cac phan tu cua A
tb=0;
for i=1:m
for j=1:n
tb=tb+a(i,j);
end;
end;
tb=tb/(m*n);
disp(['Tong trung binh cua MT la: ' num2str(tb)]);
Câu 5.
- Tạo hàm để xác định một số Fibonaxi của số n (F(1)=F(2)=1; F(n)=F(n-2)+F(n-1))
function f=fibo(x)
if x<=2
f=1;
else
f=fibo(x-1)+fibo(x-2);
end;
- Tạo script m-file in ra màn hình những số Fibonaxi nhỏ hơn n (có sử dụng hàm đã tạo), với n được nhập từ bàn phím
n=input('Nhap n= ');
for i=1:n
if fibo(i)<n
disp(fibo(i));
end;
end;
Câu 6
- Tạo script, sử dụng vòng lặp for, tính tổng
s = 2002 + 2 + 4 + 6 + … + 2*n, với n nguyên dương nhập vào từ bàn phím
n=input('Nhap n= ');
s=2002;
for i=1:n
Trang 4s=s+2*i;
end;
disp(['Tong s= ' num2str(s)]);
- Viết script giải và biện luận phương trình dạng ax + b = 0;
a=input('Nhap a= ');
b=input('Nhap b= ');
if a==0
if b==0
disp(['Phuong trinh co vo so nghiem']);
else disp(['Phuong trinh vo nghiem']);
end;
else disp(['Phuong trinh co nghiem x= ' num2str(-b/a)]);
end;
Câu 7
- Viết hàm tính UCLN của hai số nguyên dương a, b
function f=UCLN(a,b)
a=abs(a);
b=abs(b);
while a~=b
if a>b
a=a-b;
else b=b-a;
end;
f=a;
end;
- Áp dụng tính bội chung nhỏ nhất của hai số nguyên dương được nhập từ bàn phím.
function f=BCNN(a,b)
a=abs(a);
b=abs(b);
f=(a*b)/UCLN(a,b);
Câu 8.
- Viết script giải và biện luận phương trình dạng ax2 + bx + c = 0;
%input a b c
%output nghiem cua Phuong trinh a*x^2 + bx + c = 0;
a=input('Nhap a= ');
b=input('Nhap b= ');
c=input('Nhap c= ');
if a==0
if b==0
if c==0
disp('Phuong trinh vo so nghiem');
else disp('Phuong trinh vo nghiem');
end;
else disp(['Phuong trinh co nghiem kep x1=x2= ' num2str(-c/b)]);
end;
else
delta=b*b-4*a*c;
if delta<0
4
Trang 5disp('Phuong trinh vo nghiem voi x la so thuc');
end;
if delta==0
disp(['Phuong trinh co nghiem kep x1=x2= ' num2str(-b/2/a)]);
else
x1=(-b+sqrt(delta))/2/a;
x2=(-b-sqrt(delta))/2/a;
disp(['Phuong trinh co 2 nghiem: x1= ' num2str(x1) ' x2= ' num2str(x2)]); end;
end;
Câu 9
- Viết hàm kiểm tra một xâu nhập vào có đối xứng hay không
%input xau ky tu
%output xau ky tu co doi xung hay khong
str=input('Nhap xau ky tu bat ky: ','s');
dao=str(end:-1:1);
if str==dao
disp('Xau tren la xau doi xung');
else disp('Xau ko phai xau doi xung');
end;
Câu 10 Các bài tập cộng, trừ, nhân, chia đa thức.
The End