========================================
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 max
max=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 max
max=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);