function bai1
a=input('Hay nhap so xap xi a= ');
dentaa1=input('Hay nhap sai so tuyet doi gioi han : ');
('Sai so tuong doi gioi han la:'),dentaa1/a
Bµi 2
function bai2
a=input('Hay nhap so xap xi:');
dentaa1=input('Hay nhap sai so tuyet doi gioi han:');
b=num2str(a,10);
n=size(b);
k=n(2)+1;
i=1;
%Xac dinh trong chu so a co phai la chu so thap phan khong while (i<n(2)) & (b(i)~='.')
i=i+1;
end
if b(i)=='.'
k=i;
end
i=1;
%Xac dinh cac chu so co nghia
while b(i)==0
i=i+1;
end
disp(('Cac chu so co nghia la:'))
while (i<=n(2))
if b(i)~='.'
disp(b(i))
end
i=i+1;
end
% xac dinh cac chu so dang tin
i=1;
if dentaa1<1/2*10^(k-i-1)
disp(('Cac chu so dang tin la:'))
while (i<n(2)) & (dentaa1<=1/2*10^(k-i-1))
if dentaa1 <= 1/2* 10^(k-i-1)
if b(i)~='.'
disp(b(i))
end
end
i=i+1;
end
else
disp('Khong co chu so nao la chu so dang tin ca')
end
%Xac dinh cac chu so nghi ngo
if dentaa1 > 1/2*10^(k-i-1)
disp(('Cac chu so nghi ngo la:'))
Trang 2for j=(i):n(2)
if b(j)~='.'
disp(b(j))
end
end
else
disp('Khong co chu so nao la chu so nghi ngo ca')
end
Bµi 3
unction bai3
a=input('Nhap so xap xi a:');
b=num2str(a,10);
n=size(b);
i=n(2);
% Thu tuc xac dinh cac chu so co nghia
while (i>0) & (b(i)~='0')
i=i-1;
end
k=i;
t=true;
% Thu tuc nhap vij tri so can lam tron
while t==true
d=input('Nhap thu tu chu so co nghia ma ta muon lam tron:');
if (d >= k) & (d <=n(2))
t=false;
end
end
i=1;
h=n(2)+1;
s=n(2);
% Thu tuc xac dinh xem a co phai la so thap phan khong
while (i<n(2)) & (b(i)~='.')
i=i+1;
end
if b(i)=='.'
h=i;
s=n(2)-1;
end
disp('So can lam tron la:');
% Thu tuc xac dinh vi chinh xac cua so dung sau so can lam tron
if (d==s)
m=0;
else
if d+1==h
m=str2num(b(d+2));
else
m=str2num(b(d+1));
end
end
Trang 3% Xet truong hop viec lam tron duoc thuc hien truoc dau phay
if d < h
for i=d+1:(h-1)
b(i)='0';
end
if m >= 5
disp(num2str(str2num(b(1:(h-1)))+1*10^(h-d-1)));
else
disp(b(1:(h-1)));
end
end
% Xet truong hop lam tron duoc thuc hien sau dau phay
if d >= h
if m>=5
disp(num2str(str2num(b(1:(d+1)))+1*10^(h-d-1)));
else
disp(b(1:(d+1)));
end
end
Bµi 4
function bai4;
d=input('Nhap so xap xi d cua duong kinh hinh tron:');
dentad1=-1;
while dentad1 < 0
dentad1=input('Nhap sai so tuyet doi gioi han cua d:');
end
disp('Sai so tuyet doi gioi han cua the tich hinh cau la:');
dentav1 = (d^3)*0.0016/6 + (3.14*(d^2)*dentad1)/2;
disp(dentav1);
disp('Sai so tuong doi gioi han cua the tich hinh cau la:');
xicmav=dentav1/(1/6*3.14*d^3);
disp(xicmav);
Bµi 5
unction bai5
n=input('Nhap so cac so xap xi:');
t=true;
while t==true
k=0;
for i=1:n
x(i)=input(['Nhap so xap xi x',num2str(i),': ']);
k=k+x(i);
end
if k~=0
t=false;
else
disp('Ban nen nhap lai cac so xap xi:');
end
end
z=x;
% Thu tuc nay xac dinh so mu cua so chu so cuoi cung trong so xap xi
Trang 4for i=1:n
b=num2str(z(i));
c=size(b);
h=c(2);
j=1;
% Thu tuc nay xac dinh dau , cua chu so xap xi o vij tri nao
while (j<c(2)) & (b(j)~='.')
j=j+1;
end
if b(j)=='.'
h=j;
end
m(i)=h-c(2);
end
dentaf=0;
for i=1:n
dentaf=dentaf+(1/2)*10^m(i);
end
disp(['Sai so tuyet doi gioi han cua tong dai so la:',num2str(dentaf)]);
disp(['Sai so tuong doi gioi han cua tong dai so la:',num2str(dentaf/abs(k))]);
Bµi 6
function bai6
n=input('Nhap so cac so xap xi:');
k=0;
for i=1:n
x(i)=input(['Nhap so xap xi x',num2str(i),': ']);
k=k+x(i);
end
z=x;
% Thu tuc nay xac dinh so mu cua so chu so cuoi cung trong so xap xi for i=1:n
b=num2str(z(i));
c=size(b);
h=c(2);
j=1;
% Thu tuc nay xac dinh dau , cua chu so xap xi o vi tri nao
while (j<c(2)) & (b(j)~='.')
j=j+1;
end
if b(j)=='.'
h=j;
end
m(i)=h-c(2);
%m(i) la bien xac dinh so mu cua chu so cuoi cung trong so xap xi
end
xicmau=0;
for i=1:n
xicmau=xicmau+ 10^m(i)/(2* x(i));
end
disp(['Sai so tuong doi gioi han cua tich la:',num2str(xicmau)]);
Trang 5disp(['Sai so tuyet doi gioi han cua ich la:',num2str(xicmau*abs(k))]);
Bµi 7
function bai7
k=0;
t=true;
while t==true
for i=1:2
x(i)=input(['Nhap so xap xi x',num2str(i),': ']);
k=k+x(i);
end
if x(2)~=0
t=false;
end
end
z=x;
for i=1:2
b=num2str(z(i));
c=size(b);
h=c(2);
j=1;
% Thu tuc nay xac dinh dau , cua chu so xap xi o vi tri nao
while (j<c(2)) & (b(j)~='.')
j=j+1;
end
if b(j)=='.'
h=j;
end
m(i)=h-c(2);
%m(i) la bien xac dinh so mu cua chu so cuoi cung trong so xap xi end
xicmau=0;
for i=1:2
xicmau=xicmau+ 10^m(i)/(2* x(i));
end
disp(['Sai so tuong doi gioi han cua tich la:',num2str(xicmau)]);
disp(['Sai so tuyet doi gioi han cua ich la:',num2str(xicmau*abs(k))]);
Bµi 8
function bai8
x=input('Nhap day so X = ');
n=size(x);
y=input('Nhap so y = ');
i=1;
while (y~=x(i)) & (i < n(2))% chu y neu chi so cua X vuot qua chi so lon nhat cua no thi Mat lab se bao loi
i=i+1;
end
if (y <= n(2)) & (y ==x(i))
('y bang voi phan tu thu'),disp(i)
else
('Khong co phan tu nao trong day X bang y')
Trang 6Bµi 9
function bai9
t=false;
while t==false % Chi thoat khoi vong lap khi t=true tuc la khong co phan tu nao trong day X bang nhau
x=input('Nhap day so X = ');
n=size(x);
i=1;
t=true; % Se bi thay doi khi co 2 phan tu cua X bang nhau
while (i<=n(2)-1) & (t==true)
j=i+1;
while (j<=n(2)) & (t==true)
if x(i)==x(j)
t=false; % khi t nhan gia tri false se thoat khoi vong lap
end
j=j+1;
end
i=i+1;
end
end
y=input('Nhap so y = ');
i=1;
% Xac dinh co pha tu nao trong day x bang y khong
while (y~=x(i)) & (i < n(2))% chu y neu chi so cua X vuot qua chi so lon nhat cua nos duoc khi bao thi Mat lab se bao loi
i=i+1;
end
if (y <= n(2)) & (y ==x(i))
disp(['y bang voi phan tu thu:',num2str(i)])
else
disp('Khong co phan tu nao trong day X bang y')
end
Bµi 10
function bai10
n=input('Nhap so phan tu cua day X:');
for i=1:n
t=true;
while t==true
x(i)=input(['Nhap x',num2str(i),':']);
j=1;
t=false;
while (t==false)&(j<i) % kiem tra xem co phan tu nao trong day x duoc nhap truoc bang voi xi khong
if x(j)==x(i) % Neu co gia tri bang thi gan cho t gia tri true de vong lap duoc tiep tuc
t=true;
end
j=j+1;
end
Trang 7end
end
y=input('Nhap so y = ');
i=1;
% Xac dinh co pha tu nao trong day x bang y khong
while (y~=x(i)) & (i < n)% chu y neu chi so cua X vuot qua chi so lon nhat cua nos duoc khi bao thi Mat lab se bao loi
i=i+1;
end
if (y <= n) & (y ==x(i))
disp(['y bang voi phan tu thu:',num2str(i)])
else
disp('Khong co phan tu nao trong day X bang y')
end
Bµi 11
function bai11
x=input('Nhap day so X:');
y=input('Nhap so y:');
i=1;
n=size(x);
j=n(2);
while i<j
m=round((i+j)/2);
if y > x(m-1)
i=m;
else
j=m-1;
end
end
if x(i)==y
disp(['y bang voi phan tu thu ', num2str(i),' cua day so X'])
else
disp('Khong co phan tu nao trong day so X bang y')
end
Bµi 12
function bai12
n=input('Nhap so phan tu cua day so X:');
i=1;
while (i<=n)
s=true;
while s==true
x(i)=input(['Nhap x(',num2str(i),')=']);
if i > 1
if x(i)>= x(i-1)
s=false;
end
else
s=false;
end
end
Trang 8i=i+1;
end
y=input('Nhap so y:');
i=1;
j=n;
while i<j
m=round((i+j)/2);
if y > x(m-1)
i=m;
else
j=m-1;
end
end
if x(i)==y
disp(['y bang voi phan tu thu ', num2str(i),' cua day so X']) else
disp('Khong co phan tu nao trong day so X bang y')
end
Bµi 13
function bai13
n=input('Nhap so phan tu day so X:');
for i=1:n
x(i)=input('Nhap phan tu cua X:');
end
y=input('Nhap so y:');
for i=1:(n-1)
for j=1:n-i
if x(j) > x(j+1)
m=x(j+1);
x(j+1)=x(j);
x(j)=m;
end
end
end
disp(' Day so X sau khi sap xep')
disp(x)
i=1;
j=n;
while i<j
m=round((i+j)/2);
if y > x(m-1)
i=m;
else
j=m-1;
end
end
if x(i)==y
disp(['y bang voi phan tu thu ', num2str(i),' cua day so X']) else
disp('Khong co phan tu nao trong day so X bang y')
Trang 9end
Bai 14
function bai14
% tao mang x la mang chua trong so cac canh
x(6,6)=0;
x(1,2)=input('Nhap trong so cach [a,b]:');
x(2,1)=x(1,2);
x(1,3)=input('Nhap trong so canh [a,c]:');
x(3,1)=x(1,3);
x(1,5)=input('Nhap trong so canh [a,e]:');
x(5,1)=x(1,5);
x(2,3)=input('Nhap trong so canh [b,c]:');
x(3,2)=x(2,3);
x(2,5)=input('Nhap trong so canh [b,e]:');
x(5,2)=x(2,5);
x(2,6)=input('Nhap trong so canh [b,z]:');
x(6,2)=x(2,6);
x(3,4)=input('Nhap trong so canh [c,d]:');
x(4,3)=x(3,4);
x(4,5)=input('Nhap trong so canh [d,e]:');
x(5,4)=x(4,5);
x(5,6)=input('Nhap trong so canh [e,z]:');
x(6,5)=x(5,6);
for i=1:5
for j=(i+1):6
if x(i,j)==0
x(i,j)=inf;
x(j,i)=inf;
end
end
end
% Tim kiem duong di ngan nhat
% s la tap dac biet, u la tap chua cac dinh khong thuoc tap s
% l la nhan cua mot dinh
s=[1];
u=[2,3,4,5,6];
t=false;
l(1)=0;
for i=2:6
l(i)=inf;
end
while t==false
n=size(s);
m=size(u);
min=1;
for i=1:m(2)
% doi nhan cho mot dinh
if l(u(i)) > (l(s(n(2)))+ x(s(n(2)),u(i)))
l(u(i))=(l(s(n(2)))+ x(s(n(2)),u(i)));
% day la bien ghi nho dinh noi voi dinh duoc doi nhan
Trang 10k(u(i))=s(n(2));
end
% tim kiem dinh co nhan nho nhat
if l(u(min)) > l(u(i))
min=i;
end
end
% kiem tra xem dinh z thuoc tap s chua
if u(min)==6
t=true;
end
% cho dinh z vao tap s va loai ra khoi tap u s=[s,u(min)];
u(:,min)=[];
end
m=size(k);
n=m(2);
t=false;
C='abcde';
q='z';
% thu tuc xuat trinh ket qua
while t==false
n=k(n);
q=[q,',',C(n)];
if n==1
t=true;
end
end
disp(['Duong di ngan nhat la: ',q])
Bµi 15
function bai15
C='abcdez';
a=input('Nhap ten dinh khoi dau duong di:'); z=input('Nhap ten dinh ket thuc duong di:'); for i=1:6
if C(i)==a
a1=i;
end
end
for i=1:6
if C(i)==z
z1=i;
end
end
% tao mang x la mang chua trong so cac canh x(6,6)=0;
x(1,2)=input('Nhap trong so cach [a,b]:'); x(2,1)=x(1,2);
x(1,3)=input('Nhap trong so canh [a,c]:'); x(3,1)=x(1,3);
Trang 11x(1,5)=input('Nhap trong so canh [a,e]:');
x(5,1)=x(1,5);
x(2,3)=input('Nhap trong so canh [b,c]:');
x(3,2)=x(2,3);
x(2,5)=input('Nhap trong so canh [b,e]:');
x(5,2)=x(2,5);
x(2,6)=input('Nhap trong so canh [b,z]:');
x(6,2)=x(2,6);
x(3,4)=input('Nhap trong so canh [c,d]:');
x(4,3)=x(3,4);
x(4,5)=input('Nhap trong so canh [d,e]:');
x(5,4)=x(4,5);
x(5,6)=input('Nhap trong so canh [e,z]:');
x(6,5)=x(5,6);
for i=1:5
for j=(i+1):6
if x(i,j)==0
x(i,j)=inf;
x(j,i)=inf;
end
end
end
% Tim kiem duong di ngan nhat
% s la tap dac biet, u la tap chua cac dinh khong thuoc tap s
% l la nhan cua mot dinh
s=[a1];
t=false;
l(a1)=0;
u=[];
for i=1:6
if i~=a1
l(i)=inf;
u=[u,i];
end
end
while t==false
n=size(s);
m=size(u);
min=1;
for i=1:m(2)
% doi nhan cho mot dinh
if l(u(i)) > (l(s(n(2)))+ x(s(n(2)),u(i)))
l(u(i))=(l(s(n(2)))+ x(s(n(2)),u(i)));
% day la bien ghi nho dinh noi voi dinh duoc doi nhan k(u(i))=s(n(2));
end
% tim kiem dinh co nhan nho nhat
if l(u(min)) > l(u(i))
min=i;
end
Trang 12end
% kiem tra xem dinh z thuoc tap s chua
if u(min)==z1
t=true;
end
% cho dinh z vao tap s va loai ra khoi tap u
s=[s,u(min)];
u(:,min)=[];
end
m=size(k);
n=m(2);
t=false;
C='abcdez';
q=[z];
% thu tuc xuat trinh ket qua
while t==false
n=k(n);
q=[q,',',C(n)];
if n==a1
t=true;
end
end
disp(['Duong di ngan nhat la: ',q])
Bµi 16
function bai16
n=input('Nhap so phan tu day so X:');
x(1,n)=0;
for i=1:n
x(i)=input(['Nhap phan tu thu ', num2str(i),' cua X:']); end
for i=1:(n-1)
for j=(i+1):n
if x(i)> x(j)
y=x(i);
x(i)=x(j);
x(j)=y;
end
end
end
disp('Day la day so X sau khi sap xep:')
disp(x)
Bµi 17
function bai17
n1=input(' Nhap so phan tu day so X1:');
x1(n1)=0;
for i=1:n1
x1(i)=input(['Nhap phan tu thu ', num2str(i),' cua X1:']); end
n2=input(' Nhap so phan tu day so X2:');
x2(n2)=0;
Trang 13for i=1:n2
x2(i)=input(['Nhap phan tu thu ', num2str(i),' cua X2:']); end
b=true;
X=[];
while b==true
if x1(1) <= x2(1)
X=[X,x1(1)];
x1(1)=[];
else
X=[X,x2(1)];
x2(1)=[];
end
n1=size(x1);
n2=size(x2);
if n1(2)==0
X=[X,x2];
x2=[];
b=false;
end
if n2(2)==0
X=[X,x1];
x1=[];
b=false;
end
end
disp('Hai danh sach X1 va X2 hoa nhap duoc danh sach sau:') disp(X)
Bµi 18
function bai18
x(8,8)=0;
x(1,3)=1; x(3,1)=1;
x(2,3)=1; x(3,2)=1;
x(3,5)=1; x(5,3)=1;
x(4,5)=1; x(5,4)=1;
x(4,6)=1; x(6,4)=1;
x(5,6)=1; x(6,5)=1;
x(6,7)=1; x(7,6)=1;
x(6,8)=1; x(8,6)=1;
%bat dau tim kim cay khung
u=[1,2,3,4,6,7,8];
T=[5];
b=true;
m=5;
disp('Cay khung can phai tim la:')
while b==true
n2=size(u);
j=1;
while (x(m,u(j))==0) & (j<n2(2))
j=j+1;
Trang 14end
if (j==n2(2)) & (x(m,u(j))==0)
m=k(m);
else
disp(['[',num2str(m),',',num2str(u(j)),']'])
k(u(j))=m;
m=u(j);
T=[T,u(j)];
u(:,j)=[];
end
n1=size(T);
if n1(2)==8
b=false;
end
end
Bµi 19
function bai19
x(8,8)=0;
x(1,3)=1; x(3,1)=1;
x(2,3)=1; x(3,2)=1;
x(3,5)=1; x(5,3)=1;
x(4,5)=1; x(5,4)=1;
x(4,6)=1; x(6,4)=1;
x(5,6)=1; x(6,5)=1;
x(6,7)=1; x(7,6)=1;
x(6,8)=1; x(8,6)=1;
u=[1,2,3,4,6,7,8];
S(8,8)=0;
S(1,1)=[5];
T=[5];
b=true;
i=1;
disp('Cay khung can tim la:')
while b==true
j=1;
p=0;
while (S(i,j)~=0)
n2=size(u);
q=1;
% duyet tap u
while (q<=n2(2))
if u(q)~=0
% Thu tuc xac dinh mot canh duoc nhap vao cay khung
if (x(S(i,j),u(q))~=0)
disp(['[',num2str(u(q)),',',num2str(S(i,j)),']'])
T=[T,u(q)];
p=p+1;
S(i+1,p)=u(q);
k(u(q))=S(i,j);
Trang 15u(q)=0;
end
end
q=q+1;
end
j=j+1;
end
i=i+1;
n=size(T);
if n(2)==8
b=false;
end
end
Bµi 20
Bµi 21
function bai20
x(8,8)=0;
x(1,3)=input('Nhap trong so cach [a,c]:'); x(3,1)=x(1,3);
x(2,3)=input('Nhap trong so cach [b,c]:'); x(3,2)=x(2,3);
x(3,5)=input('Nhap trong so cach [c,e]:'); x(5,3)=x(3,5);
x(4,5)=input('Nhap trong so cach [d,e]:'); x(5,4)=x(4,5);
x(4,6)=input('Nhap trong so cach [d,f]:'); x(6,4)=x(4,6);
x(5,6)=input('Nhap trong so cach [e,f]:'); x(6,5)=x(5,6);
x(6,7)=input('Nhap trong so cach [f,g]:'); x(7,6)=x(6,7);
x(6,8)=input('Nhap trong so cach [f,h]:'); x(8,6)=x(6,8);
for i=1:7
for j=i+1:8
if x(i,j)==0
x(i,j)=inf;
x(j,i)=inf;
end
end
end
min1=1;
min2=2;
for i=1:7
for j=i+1:8
if x(i,j)< x(min1,min2)
min1=i;
min2=j;
end