You are on page 1of 5

The_Gunners

Giả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;

Có thể in sao dưới mọi hình thức.^^


Khi in sao thì nhớ ghi rõ nguồn nhá
The_Gunners

Câu 3.
a) Tạo hàm tính giai thừa của một số n
function f=giaithua(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=giaithua(n)/(giaithua(k)*giaithua(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
a(i,j)=input(['Nhap a(' num2str(i) ',' num2str(j) ')= ']);
end;
end;
disp(a);
% Gan cho vector x là dong cuoi cung cua A.
x=a(end,:);
disp('Dua ra dong cuoi cung cua a: ');
disp(x);
% Gan cho ma tran y la hai cot dau tien cua A.
y=a(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)+a(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)+a(i,j);

Có thể in sao dưới mọi hình thức.^^


Khi in sao thì nhớ ghi rõ nguồn nhá
The_Gunners
end;
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
3

Có thể in sao dưới mọi hình thức.^^


Khi in sao thì nhớ ghi rõ nguồn nhá
The_Gunners
s=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

Có thể in sao dưới mọi hình thức.^^


Khi in sao thì nhớ ghi rõ nguồn nhá
The_Gunners
disp('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

Có thể in sao dưới mọi hình thức.^^


Khi in sao thì nhớ ghi rõ nguồn nhá

You might also like