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

ĐÁP án đề THI TIN học CHUYÊN NGÀNH máy tàu BIỂN 2

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 (41.78 KB, 17 trang )

Bai1
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 (ii=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 (iif 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:'))
for 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

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
% 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
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 vij tri nao
while (jj=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 (jj=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)]);
disp(['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 (jj=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')
end
Bµ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)&(jnhap 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
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)% 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 im=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
i=i+1;
end
y=input('Nhap so y:');
i=1;
j=n;
while im=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 im=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
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
k(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);
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=[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
end
% 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;
for 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) & (jj=j+1;
end
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);
u(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
end
end
T=[min1,min2];
U=[1,2,3,4,5,6,7,8];
U(:,min1)=[];
U(:,min2)=[];
S='abcdefgh';
b=true;
disp('Cay khung nho nhat la:')
while b==true
n1=size(T)
i=1;
min1=1;
while i<=n1(2)
j=1
n2=size(U)
min2=1
while j<=n2(2)
if (x(T(i),U(j))~=0)& (x(T(i),U(j))min1=i
min2=j
end
j=j+1
end
i=i+1
end

disp(['[',S((T(min1))),',',S((U(min2))),']'])
T=[T,U(min2)]
U(:,min2)=[]


n=size(T)
if n(2)==8
b=false;
end
end
Bµi 22
Bµi 23
function bai23
disp('Nhap cac he so cua phuong trinh bac 1')
a1=input('Nhap he so a:');
b1=input('Nhap he so b:');
x=linspace(-6,6,200);
y=a1*x+b1;
plot(x,y);
figure;
disp('Nhap cac he so cua phuong trinh bac 2')
a2=input('Nhap he so a:');
b2=input('Nhap he so b:');
c2=input('Nhap he so c:');
x=linspace(-6,6,200);
y=a2*x.^2+b2*x+c2;
plot(x,y);
figure;
disp('Nhap cac he so cua phuong trinh bac 3')
a3=input('Nhap he so a:');

b3=input('Nhap he so b:');
c3=input('Nhap he so c:');
d3=input('Nhap he so d:');
x=linspace(-6,6,200);
y=a3*x.^3+b3*x.^2+c3*x+d3;
plot(x,y);
Bµi 24
function bai24
hold on;
xmin=input('Nhap gia tri nho nhat cua truc x:');
xmax=input('Nhap gia tri lon nhat cua truc x:');
ymin=input('Nhap gia tri nho nhat cua truc y:');
ymax=input('Nhap gia tri lon nhat cua truc y:');
axis([xmin,xmax,ymin,ymax]);


disp('Nhap cac he so cua phuong trinh bac 1')
a1=input('Nhap he so a:');
b1=input('Nhap he so b:');
x=linspace(-6,6,200);
y=a1*x+b1;
plot(x,y);
disp('Nhap cac he so cua phuong trinh bac 2')
a2=input('Nhap he so a:');
b2=input('Nhap he so b:');
c2=input('Nhap he so c:');
x=linspace(-6,6,200);
y=a2*x.^2+b2*x+c2;
plot(x,y);




×