Bµi tËp thùc hµnh M«n Kü thuËt lËp tr×nh
Một số Bài tập
thực hành
mụn kỹ thuật
lập trình
Biªn so¹n: NguyÔn M¹nh Cêng Trang: 1
Bµi tËp thùc hµnh M«n Kü thuËt lËp tr×nh
Chương I: Biến – biểu thức – cỏc lệnh nhập xuất
1. Nhập hai số nguyờn, tớnh tổng, hiệu, tớch, thương, đồng dư.
2. Nhập một số nguyờn, in ra màn hỡnh cỏch đọc số nguyờn đú (VD: số 1252 đọc
là: một ngàn hai trăm năm chục hai đơn vị).
3. Viết chương trỡnh tớnh giỏ trị biểu thức:
F(x) = (x
2
+e
x
+sin
2
(x))/sqrt(x
2
+1)
Chương II: cỏc cấu trỳc điều khiển
1. Viết chương trỡnh nhập vào một số nguyờn n. Kiểm tra xem n chẵn hay lẻ.
2. Viết chương trỡnh giải và biện luận phương trỡnh bậc nhất theo hai hệ số a, b
nhập từ bàn phớm.
3. Viết chương trỡnh giải và biện luận phương trỡnh bậc hai với cỏc hệ số a, b, c
nhập từ bàn phớm.
4. Viết chương trỡnh nhập vào số tiền phải trả của khỏch hàng. In ra số tiền khuyến
mói với quy định: nếu số tiền phải trả thuộc [200.000, 300.000) thỡ khuyến mói
20%. Nếu số tiền phải trả từ 300.000 trở lờn thỡ khuyến mói 30%. Cũn lại thỡ
+
+++++
lÎ n nÕu
ch½n n nÕu
1
2
1
2
1
2
1
2
1
1
2
32
n
n
11.Viết chương trỡnh nhập vào một số thực x và số nguyờn n, sau đú tớnh giỏ trị
biểu thức:
S =
ch½n n nÕu
lÎ n nÕu
ngược dóy số trờn.
18. Viết chương trỡnh tỡm số nguyờn dương n nhỏ nhất thoả món: 1 + 2 + 3 + … +
n > 1000.
19. Để tớnh căn bậc hai của một số dương a, ta sử dụng cụng thức lặp sau:
x(0) = a;
x(n+1) = (x(n) * x(n) + a)/ (2* x(n)) với n >=0.
Biªn so¹n: NguyÔn M¹nh Cêng Trang: 3
Bµi tËp thùc hµnh M«n Kü thuËt lËp tr×nh
Quỏ trỡnh lặp kết thỳc khi abs((a(n+1) – x(n))/x(n)) < ε.
và khi đú x(n+1) được xem là giỏ trị gần đỳng của sqrt(a).
Viết chương trỡnh tớnh căn bậc hai của a với độ chớnh xỏc ε = 0.00001.
20. Lập trỡnh để tớnh sin(x) với độ chớnh xỏc ε = 0.00001 theo cụng thức :
sin(x) = x – x
3
/3! + x
5
/ 5! + …+ (-1)
n
x
(2n+1)
/ (2n+1)!.
21. Lập trỡnh để tớnh tổ hợp chập m của n theo cụng thức:
C(m, n) = (n(n-1)…(n-m+1))/ m!.
Chương III: kỹ thuật lập trỡnh đơn thể
1. Viết hàm kiểm tra xem một số nguyờn n cú phải là số nguyờn tố khụng. Sau đú,
trong chương trỡnh chớnh, nhập vào một số nguyờn n, kiểm tra tớnh nguyờn tố
của số n và thụng bỏo ra màn hỡnh.
2. Viết hàm tớnh n! sau đú, trong chương trỡnh chớnh, nhập vào một số nguyờn n
và tớnh, in ra kết quả của biểu thức:
S =
Biªn so¹n: NguyÔn M¹nh Cêng Trang: 4
Bµi tËp thùc hµnh M«n Kü thuËt lËp tr×nh
7. USCLN của hai số a, b được định nghĩa như sau:
USCLN(a, b) = a nếu a = b
= USCLN(a-b, b) nếu a > b
= USCLN(a, b-a) nếu a < b
Viết hàm đệ quy tỡm USCLN của hai số nguyờn a, b. Trong chương trỡnh
chớnh, nhập vào hai số nguyờn a, b. Tỡm và in USCLN của hai số đú lờn màn
hỡnh.
8. Viết hàm tỡm kiếm đệ quy trờn một dóy số nguyờn đó được sắp.
9. Cỏc số Fibonacci F[i] được định nghĩa đệ quy như sau:
F[0] =1; F[1] =1;
F[i] = F[i-1] + F[i-2] (với i > 1);
(VD: 1, 1, 2, 3, 5, 8, 13…)
Viết hàm đệ quy tỡm số Fibonacci thứ n trong dóy.
10.Viết hàm đệ quy tớnh n!. (n ∈ Z
+
)
11.Viết hàm đệ quy tớnh f(x, n) = x
n
. (x∈R, n ∈ Z). Viết chương trỡnh chớnh sử
dụng hàm trờn để nhập vào số nguyờn n, số thực x từ bàn phớm. Tớnh và in ra
màn hỡnh giỏ trị của f(x, n).
12. Viết hàm đệ quy tớnh f(x, n) = n!x
n
. (x∈R, n ∈ Z). Viết chương trỡnh chớnh sử
dụng hàm trờn để nhập vào số nguyờn n, số thực x từ bàn phớm. Tớnh và in ra
màn hỡnh giỏ trị của f(x, n).
13.Viết hàm đệ quy để đếm số chữ số cú trong một số nguyờn bất bỳ (Vớ dụ số
1263 cú 4 chữ số…). Viết chương trỡnh chớnh sử dụng hàm trờn để cho phộp
) và y(y
1
, y
2
…y
n).
Viết chương trỡnh in ra Tớch vụ
hướng của hai vector trờn.
2. Cho hai mảng a và b cú cỏc phần tử đều đó được sắp tăng. Lập chương trỡnh
trộn hai mảng trờn để thu được một mảng thứ 3 cũng sắp theo thứ tự tăng bằng
hai phương phỏp.
3. Viết chương trỡnh nhập vào một mảng n số nguyờn, sắp xếp mảng theo chiều
tăng dần và in kết quả lờn màn hỡnh bằng cỏc phương phỏp:
- Sắp xếp nổi bọt.
- Sắp xếp chọn.
- Sắp xếp chốn.
4. Viết chương trỡnh nhập vào một mảng n số nguyờn, tớnh tổng cỏc phần tử chẵn,
cỏc phần tử lẻ, cỏc phần tử chia hết cho 3 và in kết quả ra màn hỡnh.
5. Viết chương trỡnh nhập vào một dóy số thực, tỡm phần tử lớn nhất (tương tự,
tỡm phần tử nhỏ nhất) của dóy và in kết quả ra màn hỡnh.
6. Viết chương trỡnh nhập vào một dóy số nguyờn. Tớnh tổng của cỏc số nguyờn
tố trong dóy và in kết quả ra màn hỡnh.
7. Viết chương trỡnh nhập vào một dóy số nguyờn và một số nguyờn c. Đếm số lần
xuất hiện và vị trớ xuất hiện của c trong dóy. In cỏc kết quả ra màn hỡnh.
8. Viết chương trỡnh nhập vào một dóy n số nguyờn. Tớnh trung bỡnh cộng của
dóy và in kết quả tớnh được ra màn hỡnh.
9. Một dóy số a gọi là được sắp tăng nếu a[i] <= a[i+1] với mọi i;
Dóy gọi là được sắp giảm nếu a[i] >= a[i+1] với mọi i;
Dóy gọi là được sắp tăng ngặt nếu a[i] < a[i+1] với mọi i;
Dóy gọi là được sắp giảm ngặt nếu a[i] > a[i+1] với mọi i;
mảng theo chiều giảm dần (lưu ý sử dụng tờn mảng như con trỏ và sử dụng
con trỏ).
2. Hóy dựng một vũng for để nhập vào một ma trận vuụng cấp n với cỏc phần
tử thực và tỡm phần tử Max của ma trận này.
3. Viết hàm hoỏn vị hai biến thực a, b bằng cỏch sử dụng con trỏ (đối vào là hai
con trỏ). Viết chương trỡnh chớnh nhập hai số thực a, b. Sử dụng hàm trờn để
đổi chỗ a và b.
4. Viết hàm giải hệ phương trỡnh bậc nhất với sỏu đối vào là a, b, c, d, e, f và 2
đối ra là x và y.
5. Viết hàm tớnh giỏ trị đa thức:
Biªn so¹n: NguyÔn M¹nh Cêng Trang: 7
Bµi tËp thùc hµnh M«n Kü thuËt lËp tr×nh
f(x) = a
0
x
n
+ … + a
n-1
x + a
n
. với đối vào là biến nguyờn n và mảng thực a.
6. Viết hàm cộng hai ma trận vuụng a và b cấp n (sử dụng con trỏ).
7. Viết chương trỡnh tớnh tớch phõn của f(x) trờn đoạn [a, b] bằng cụng thức
hỡnh thang. Theo đú, tớch phõn của f(x) trờn [a, b] bằng: h * s. Trong đú:
h là độ dài khoảng phõn hoạch đoạn [a, b] thành n khoảng.
s là tổng tất cả cỏc f(a+i*h) với i từ 1 tới n.
Sử dụng hàm trờn để tớnh tớch phõn trong đoạn [-1, 4] của:
f(x) = (e
x
-2sin(x
return USCLN(b, a%b);
}
//Hàm main=========================================
void main()
{ int n;
cout<<"nhap n ";
cin>> n;
long S = gt(n);
cout<<"n gt "<<S;
getch();
//=====================================
long T = Fibo(n);
cout<<"\n so fibonaci thu "<<n<<" la "<<T;
getch();
//=====================================
int a, b;
cout<<"nhap a ";
cin>> a;
Biªn so¹n: NguyÔn M¹nh Cêng Trang: 8
Bµi tËp thùc hµnh M«n Kü thuËt lËp tr×nh
cout<<" nhap b ";
cin>>b;
cout<<"\n USCLN cua "<<a<<" va "<<b<<" la "<<USCLN(a,b);
getch();
}
Biªn so¹n: NguyÔn M¹nh Cêng Trang: 9