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 ; 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) if (s==n) f=1; else f=0; end; 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=input('Nhap n= '); ' ); for i=1:n-1 if sohoanhao(i)==1 disp(i); end; end ; end; end ;
1 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 C nk = 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);
2 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)) 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)
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
4 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
5 Có thể in sao dưới mọi hình thức.^^ Khi in sao thì nhớ ghi rõ nguồn nhá