Tải bản đầy đủ (.doc) (18 trang)

Đề cương môn matlab và đáp án

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (63.95 KB, 18 trang )

========================================
Bài tập 1: Nhập vào 3 số? Kiểm tra xem có tạo thành tam giác hay không. Nếu có tính
chu vi và diện tích tam giác đó
clear all
a=input ('nhap vao do dai canh a : ');
b=input ('nhap vao do dai canh b : ');
c=input ('nhap vao do dai canh c : ');
if (a>0)&(b>0)&(c>0)&(a+b>c)&(c+b>c)&(a+c>b)
cv=a+b+c;
disp ('chu vi tam giac la : ');
cv
p=cv/2;
disp ('dien tich tam giac la : ');
dt=sqrt(p*(p-a)*(p-b)*(p-c))
else
disp ('3 so khong tao thanh tam giac ');
end;
========================================
Bài tập 2 : dùng hàm m-file để tính tổng bình phương của 2 số (x^2+^2)
clear all
function z=tbp(x,y)
z=x*x+y*y;
t1=input ('nhap vao gia tri t1 : ');
t2=input ('nhap vao gia tri t2 : ');
kq= tbp(t1,t2);
disp ('tong binh phuong cua 2 so la ');
kq
========================================
Bài tập 3 :viết bằng hàm m-file :tính tổng , hiệu và tích của 2 số nhập vào từ bàn phím
clear all
function f=tong(x,y);


f=x+y;
a= input ('nhap vao so a : ');
b= input ('nhap vao so b : ');
disp ('tong cua 2 so la ');
kq= tong(a,b)
tính hiệu và tích tương tự.
========================================
Bài tập 4: Viết chương trình nhập vào 2 số a, b tìm giá trị lớn nhất
clear all
a=input ('nhap vao gia tri a : ');
b=input ('nhap vao gia tri b : ');
max=a;
if max

max=b;
end;
disp ('gia tri lon nhat la : ');
max
========================================
Bài tập 5: Giải phương trình bậc 2 bằng script file
clear all
a=input ('nhap vao gia tri a: ');
b=input ('nhap vao gia tri b: ');
c=input ('nhap vao gia tri c: ');
delta=b*b-(4*a*c);
if delta<0
disp ('phuong trinh vo nghiem ');
elseif delta= =0
disp ('phuong trinh co nghiem kep');

x=-b/(2*a)
else
disp ('phuong trinh co 2 nghiem phan biet ');
x1=(-b+sqrt(delta))/(2*a)
x2=(-b-sqrt(delta))/(2*a)
end;
========================================
Bài tập 7: Nhập vào 2 số tìm UCLN,BCNN
clear all
a=input ('nhap vao so a : ');
b=input ('nhap vao so b : ');
m=a*b;
while a~=b
if a>b
a=a-b;
else
b=b-a;
end;
end;
disp ('uoc chung lon nhat la : ');
a
disp ('boi chung nho nhat la: ');
bcnn=m/a
========================================
Bài tập 8: Nhập vào giá trị n, kiểm tra xem có phải số nguyên tố hay không
clear all
n=input('nhap vao gia tri n : ');
dem=0;
for i=1:n



if rem (n,i)==0
dem=dem+1;
end;
end;
if dem==2
disp ('so vua nhap la so nguyen to')
else
disp ('so vua nhap khong phai so nguyen to')
end;
========================================
Bài tập 9 : Nhập vào 1 giá trị n, kiểm tra xem giá trị đó phải số hoàn hảo hay không
clear all
n=input ('nhap vao gia tri n ');
tonguoc=0;
for i=1:n-1
if rem(n,i)==0
tonguoc=tonguoc+i;
end;
end;
if tonguoc==n
disp ('so vua nhap la so hoan hao');
else
disp ('so vua nhap khong phai so hoan hao')
end;
========================================
Bài tập 10: Tính tổng s=1+(1/2) + 1/3 +...+1/n
clear all
n=input ('nhap vao gia tri n ');
s=0; i=1;

while i<=n
s=s+(1/i);
i=i+1;
end;
disp ('tong cua day la ');
s
========================================
%Tính tổng s=1-(1/2) + 1/3 -...+(-1)n-1-1/n
clear all
n=input ('nhap vao gia tri n ');
s=0; i=1;
while i<=n
if rem(i, 2) = = 0
s1=s1+(1/i);
else


s2=s2+(1/i);
end;
i = i + 1;
end;
disp ('tong cua day la ');
s = s2 - s1
========================================
Bài tập 11: Tính tổng các số chẵn và chia hết cho 5 từ 1 đến n
clear all
n=input ('nhap vao gia tri n: ');
s=0;
for i=1:n
if rem (i,10)= =0

s=s+i;
end;
end;
disp (' tong cac so chan va chia het cho 5 la :')
s
========================================
Bài tập 12: Tính tổng của 2 phân số a/b+c/d
clear all
a=input ('nhap vao so a : ');
b=input ('nhap vao so b : ');
c=input ('nhap vao so c : ');
d=input ('nhap vao so d : ');
disp ('tong cua 2 phan so a/b+c/d la : ');
tong=(a*d+b*c)/(b*d)
========================================
Bài tập 13: Nhập vào 1 số n với điều kiện n < 50
clear all
n=input('nhap vao so n : ');
while (n<0)|(n>50)
disp ('n phai >0 va n<50 hay nhap lai gia tri n ');
n=input('');
end;
========================================
% Nhập vào tháng năm bất kỳ, in ra số ngày trong tháng đó
clear all
thang = input(‘Nhap thang’);
nam = input(‘Nhap nam’);
switch thang
case {1, 3, 5, 7, 8, 10, 12}
ngay = 31;

case {4, 6, 9, 11}


ngay = 30;
case 2
if rem(nam, 4) = = 0
ngay = 29;
else
ngay = 28;
end;
end;
disp(‘so ngay trong thang la’);
ngay
========================================
% Nhập vào 2 số thực và các phép toán (+, -, *, /) sau đó cho biết kết quả phép toán
lên 2 số đó
clear all
a = input(‘Nhap a =’);
b = input(‘Nhap b =’);
pheptoan = input(‘Nhap phep toan’);
switch pheptoan
case cong
kq = a + b;
case tru
kq = a - b;
case nhan
kq = a * b;
case chia
if b = = 0
disp(‘Khong chia duoc’);

eslse
kq = a / b;
end;
end;
disp(‘Ket qua la’);
kq
========================================
HÀM
%Xây dựng hàm kiểm tra chẵn lẻ của n:
function y = chan_le(n)
if rem(n, 2) = = 0
y = 1;
else
y = 0;
%script.file
clear all
n = input(‘Nhap n’);


if chan_le(n) = = 1
disp(‘La so chan’);
else
disp(‘La so le’);
end;
========================================
%Xây dựng hàm tìm UCLN, BCNN của 2 số a, b:
function y = UCLN(a, b)
while a ~= b
if a > b
a = a - b;

else
b = b - a;
y = a;
end;
end;
function x = BCNN(a, b)
x = (a * b) / UCLN(a, b);
%Script.file
clear all
a = input(‘Nhap a’);
b = input(‘Nhap b’);
kq = UCLN(a, b);
disp(‘UCLN la’);
kq
kq1 = BCNN(a, b);
disp(‘BCNN’);
kq1
========================================
%Xây dựng hàm kiểm tra 1 số có phải số nguyên tố, hoàn hảo chính phương hay
không
function x = snt(n)
d = 0;
for i = 1 : n
if rem(n, i) = =0
d = d + 1;
end;
end;
if d = 2;
x = 1;
else

x = 0;
end;
%script.file


clear all
n = input(‘Nhap n’);
if snt(n) = = 1;
disp(‘La so nguyen to’);
else
disp(‘Khong la so nguyen to’);
end;
function y = hoanhao(n)
tong = 0;
for i = 1 : n
if rem(n, j) = = 0
tong = tong + i;
end;
end;
if tong = = n
y = 1;
else
y = 0;
end;
%script.file
clear all
n = input(‘Nhap n’);
if hoanhao(n) = = 1
disp(‘La so hoan hao’);
else

disp(‘Khong la so hoan hao’);
end;
function z = cp(a)
if sqrt(a) * sqrt(a) = a
z = 1;
else
z = 0;
end;
%script.file
clear all
n = input(‘Nhap n’);
if cp(n) = = 1
disp(‘La so chinh phuong’);
else
disp(‘Khong la so chinh phuong’);
end;
========================================
%Xây dựng hàm tính UCLN và BCNN của 2 số a, b sau đó nhập vào 1 matrận cỡ n x
m. In ra màn hình UCLN, BCNN của ma trận đó


function y = UCLN(a, b)
while a ~= b
if a > b
a = a - b;
else
b = b - a;
y = a;
end;
end;

function x = BCNN(a, b)
x = (a * b) / UCLN(a, b);
%Script.file
clear all
n=input('nhap vao so dong cho ma tran : ');
m=input('nhap vao so cot cho ma tran : ');
for i=1:n
for j=1:m
a(i,j)=input ('a(i, j) = ');
end;
end;
UCLN1 = UCLN(a(1, 1), a(1, 2));
BCNN1 = BCNN(a(1, 1), a(1, 2));
for i = 1 : n
for j = 1 : m
UCLN1 = UCLN(UCLN1, a(i, j));
BCNN1 = BCNN(BCNN1, a(i, j));
end;
end;
disp(‘UCLN cua ma tran la’);
UCLN1
disp(‘BCNN cua ma tran la’);
BCNN1
=====================================
MẢNG 1 CHIỀU:
%Nhập vào dãy gồm n phần tử
clear all
n=input('nhap vao so phan tu cua day : ');
for i=1:n
a(i)=input ('a(i) =');

end;
disp ('day vua nhap la : ');
a
% In ra màn hình giá trị lớn nhất của dãy số
max=a(1);


for i=1:n
if maxmax=a(i);
end;
end;
disp ('gia tri lon nhat cua day la')
max
% In ra màn hình giá trị lớn thứ 2 của dãy số
for i=1:n-1
for j=i+1:n
if a(i)>a(j)
tg=a(i);
a(i)=a(j);
a(j)=tg;
end;
end;
end;
i=1;
while a(i)==a(i+1)
i=i+1;
end;
disp(‘Gia tri lon thu 2 trong day la’)
a(i+1)

% In ra màn hình giá trị nhỏ nhất của dãy số
min=a(1);
for i=1:n
if min>a(i)
min=a(i);
end;
end;
disp ('gia tri nho nhat cua day la')
min
%Tính trung bình cộng các số dương trong dãy
s=0;dem=0;
for i=1:n
if a(i)>0
s=s+a(i);
dem=dem+1;
end;
end;
disp ('trung binh cong so duong trong day la : ')
tbc=s/dem
%Nhập vào 1 số x bất kỳ, kiểm tra xem x có xuất hiện trong dãy hay không


clear all
x=input ('nhap vao so x: ');
d=0;
for i=1:n
if x==a(i)
d=d+1;
end;
end;

if d==0
disp ('so vua nhap khong xuat hien trong day');
else
disp ('so vua nhap co trong day');
end;
%In ra màn hình tất cả các số nguyên tố trong dãy
disp ('so nguyen to trong day: ')
d1=0;
for i=1:n
d=0;
for j=1:a(i)
if rem(a(i),j)==0
d=d+1;
end;
end;
if d==2
d1=d1+1;
a(i)
end;
end;
if d1==0
disp ('trong day khong co so nguyen to')
end;
%In ra màn hình tất cả các số hoàn hảo trong dãy
disp ('so hoan hao trong day : ')
d1=0;
for i=1:n
d=0;
for j=1:a(i)
if rem(a(i),j)==0

d=d+j;
end;
end;
if a(i)==d
d1=d1+1;
a(i)


end;
end;
end;
if d1==0
disp ('trong day khong co so hoan hao')
end;
%Sắp xếp dãy theo chiều tăng dần
for i=1:n-1
for j=i+1:n
if a(i)>a(j)
tg=a(i);
a(i)=a(j);
a(j)=tg;
end;
end;
end;
disp ('day sau sap xep tang la : ' )
a
========================================
MẢNG 2 CHIỀU
%Nhập vào 1 ma trận cỡ n x m
clear all

n=input('nhap vao so dong cho ma tran : ');
m=input('nhap vao so cot cho ma tran : ');
for i=1:n
for j=1:m
a(i,j)=input (‘a(i, j) = ');
end;
end;
disp ('ma tran vua nhap la : ');
a
%In ra màn hình giá trị lớn nhất trong ma trận
max=a(1,1);
for i=1:n
for j=1:m
if maxmax=a(i,j);
end;
end;
end;
disp ('gia tri lon nhat trong ma tran la : ');
max
%In ra màn hình các phần tử lớn nhất trên mỗi cột
disp (phan tu lon nhat tren moi cot trong ma tran la : ');


for j = 1 : m
max = a(1, j);
for i = 2 : n
if max < a(i, j)
max = a(i, j);
end;

disp(max);
end;
%In ra màn hình các phần tử lớn thứ 2 trên mỗi hàng
disp (phan tu lon thứ 2 trên moi cot trong ma tran la : ');
for i = 1 : n
max = a(i, 1);
for j = 2 : m
if max < a(i, j)
max = a(i, j);
end;
end;
disp(max);
for j = 1 : m
if (max > m(i, j)
max2 = m(i, j);
end;
end;
for j = 1 : m
if (max2 < m(i, j) & m(i, j) < max)
max2 = m(i, j);
end;
end;
disp(max);
end;
%Tính trung bình cộng các số chẵn và chia hết cho 3
s=0;d=0;
for i=1:n
for j=1:m
if rem(a(i,j),6)==0;
s=s+a(i,j);

d=d+1;
end;
end;
end;
if d==0
disp ('trong ma tran khong co so chan va chia het cho 3 ');
else
disp ('trung binh cong cac so chan va chia het cho 3 la : ');


tbc=s/d
end;
%In ra màn hình tất cả các số nguyên tố trong ma trận
disp ('so nguyen to trong ma tran: ')
d1=0;
for i=1:n
for j=1:m
d=0;
for k=1:a(i,j)
if rem (a(i,j),k)==0
d=d+1;
end;
end;
if d==2
d1=d1+1;
a(i,j)
end;
end;
end;
if d1==0

disp ('trong ma tran khong co so nguyen to')
end;
%Tính tổng các số nguyên tố trong ma trận
s=0;
for i=1:n
for j=1:m
d=0;
for k=1:a(i,j)
if rem (a(i,j),k)==0
d=d+1;
end;
end;
if d==2
s=s+a(i,j);
end;
end;
end;
disp ('tong cac so nguyen to trong ma tran la: ');
s
%In ra màn hình các số hoàn hảo trong ma trận
disp ('so hoan hao trong ma tran : ')
d1=0;
for i=1:n
for j=1:m


s=0;
for k=1:a(i,j)-1
if rem(a(i,j),k)==0
s=s+k;

end;
end;
if a(i,j)==s
d1=d1+1;
a(i,j)
end;
end;
end;
if d1==0
disp ('trong ma tran khong co so hoan hao')
end;
%Tính tổng các số hoàn hảo trong ma trận
d=0;
for i=1:n
for j=1:m
s=0;
for k=1:a(i,j)-1
if rem(a(i,j),k)==0;
s=s+k;
end;
end;
if s==a(i,j)
d=d+a(i,j);
end;
end;
end;
disp ('tong ca so hoan hao trong ma tran la : ')
d
%Tính tổng các số chính phương trong ma trận
s = 0;

for i = 1 : n
for j = 1 : m
for i = 1 : a(i, j)
if i * i = = a(i, j)
s = s + a(i, j);
end;
end;
end;
disp(‘Tong cac so chinh phuong la’);
s


%Sắp xếp ma trận theo chiều tăng dần của mỗi hàng
for i = 1 : n
for j = 1 : m - 1
for k = j + 1 : m
if a(i, j) > a(i, k)
tg = a(i, j);
a(i, j) = a(i, k);
a(i, k) = tg;
end;
end;
end;
disp(‘Ma tran tang theo hang la’);
a
%Sắp xếp ma trận theo chiều tăng dần của mỗi cột
for j = 1 : m
for i = 1 : n - 1
for k = i + 1 : n
if a(i, j) > a(k, j)

tg = a(i, j);
a(i, j) = a(k, j);
a(k, j) = tg;
end;
end;
end;
disp(‘Ma tran tang theo cot la’);
a
=====================================
ĐẠI SỐ VÀ GIẢI TÍCH
%Nhập vào 1 vector biểu diễn hệ số của 1 hàm số bất kỳ, in ra màn hình đạo hàm của
hàm số đó
n = input(‘Nhap do dai vector’);
for i = 1 : n
a(i) = input(‘Nhap a(i) =’);
end;
for i = 1 : n - 1
b(i) = a(i) * (n - 1);
end;
disp(‘Dao ham cua ham so la’);
b
=====================================
%Nhập vào 1 vector biểu diễn hệ số của 2 đa thức bất kỳ, in ra màn hình tổng 2 đa
thức
n = input(‘Nhap vector 1:’);
for i = 1: n


a(i) = input(‘a(i)=’);
end;

m = input(‘Nhap vector 2:’);
for i = 1 : m
b(i) = input(‘b(i)=’);
end;
if n > m
for i = 1 : n - m
c(i) = a(i);
end;
for i = n - m + 1 : n
c(i) = a(i) + b(i);
end;
else if m > n
for i = 1 : m - n
c(i) = b(i);
end;
for i = m - n + 1 : m
c(i) = a(i) + b(i);
end;
else
for i = 1 : n
c(i) = a(i) + b(i);
end;
end;
disp(‘Tong 2 da thuc la’);
c
=====================================
%Hàm tính tổng 2 đa thức bất kỳ
function y = polyadd(a, b)
n = length(a);
m = length(b);

if n = = m
c = a + b;
else if n > m
for i = 1 : n - m
c(i) = a(i);
end;
for i = n - m + 1 : n
c(i) = a(i) + b(i);
end;
else
for i = 1 : m - n
c(i) = b(i);


end;
for i = m - n + 1 : m
c(i) = a(i) + b(i);
end;
end;
y = c;
%script.file
a = input(‘Nhap vector a’);
b = input(‘Nhap vector b’);
kq = polyadd(a, b);
disp(‘Tong 2 vector la’);
kq
=====================================
%Nhập vào vector hệ số của đa thức và 1 giá trị x bất kỳ, tính giá trị của đa thức đó
tại x
clear all

n=input('nhap vao so gia tri cua vec to: ');
for i=1:n
a(i)=input ('nhap vao phan tu vec to: ');
end;
disp ('vec to vua nhap la: ')
a
x=input('nhap vao gia tri x bat ky : ');
disp ('gia tri cua da thuc tai x la : ');
polyval (a,x)
=====================================
%Xây dựng hàm giải phương trình: ax2 + bx + c = 0 (a ≠ 0)
function [x1, x2] = ptb2(a, b, c)
delta = (a * a) - (4 * a * c);
if delta < 0
x1 = x 2 = realmin;
else if delta = = 0
x1 = x 2 = - b / (2 * a);
else
x1 = (- b + sqrt(delta)) / (2 * a);
x2 = (- b - sqrt(delta)) / (2 * a);
end;
%script.file
a = input(‘Nhap a’);
b = input(‘ Nhap b’);
c = input(‘Nhap c’);
kq = ptb2(a, b, c);
if x1 = x2 = realmin
disp (‘Phuong trinh vo nghiem’);



else
disp(‘Nghiem la’);
kq
end;
=====================================
%Tính tích phân: I = int(f, a, b); f = 2 * x2 * cos(x)
function I = C5(a, b, n)
h = (b - a) / n;
I = 0;
for i = 0 : n
x = a + h * i;
c = 2;
if ((i = = 0) | (i = = 1))
c = 1;
end;
I = I * c *(2 * x^2 * cos(x));
end;
I = I * h / 2;
=====================================

function s = simpson(f, a, b, n)
if mod (n, 2) ~= 0
n = n + 1;
end;
h = (b - a) / (2 * n);
s1 = 0;
s2 = 0;
for k = 1 : n
x = a + h *(2* k - 1);
s1 = s1 + f(x);

end;
for k = 1 : (n - 1)
x = a + h * 2 * k;
s2 = s2 + f(x);
end;
s = h * (f(a) + f(b) + 4 * s1 + 2* s2) / 3;
clc
clear all, clc
f = inline(‘exp(x) * sin(x)’, ‘x’);
a = 0;
b = 1;
n = 6; s = simpson(f, a, b, n);



×