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

BÀI TẬP MÔN HỌC LẬP TRÌNH JAVA

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 (126.19 KB, 9 trang )

BÀI TẬP
MÔN HỌC LẬP TRÌNH JAVA
BÀI TẬP CHƯƠNG 2
1. Viết chương trình tính diện tích và chu vi hình tròn có bán kính r.
2. Viết chương trình đổi một ký tự chữ hoa thành ký tự chữ thường.
3. Viết chương trình đọc vào một số nguyên trong khoảng [0, 1000], tính tổng các chữ
số của số đó. Ví dụ: nhập vào số 467, kết quả sẽ là 17 (= 4 + 6 + 7).
BÀI TẬP CHƯƠNG 3
4. Giải phương trình bậc 2: ax2 + bx + c = 0 (a ≠ 0).
5. Viết chương trình nhập vào độ dài 3 cạnh của một tam giác. Nếu hợp lệ thì cho biết
tính chất của tam giác (tam giác thường, cân, vuông, vuông cân, đều).
6. Viết chương trình nhập vào 3 số, sắp xếp 3 số này theo chiều tăng dần.
7. Viết chương trình nhập vào tháng và năm dương lịch. Cho biết tháng trong năm đó có
bao nhiêu ngày.
8. Viết chương trình tính gần đúng số π theo công thức:

π
1 1 1
1
= 1 − + − +  + ( −1) n
4
3 5 7
2n + 1
9. Viết chương trình tính gần đúng số e theo công thức dưới đây với độ chính xác ε nhập
vào từ bàn phím.
1 1 1
1
e = 1 + + + + ... + + ...
1! 2! 3!
n!
10. Viết chương trình tìm ước số chung lớn nhất của hai số nguyên dương a, b.


11. Viết chương trình tìm số nguyên lớn nhất n sao cho n3 < 12000.
12. Viết chương trình tạo ngẫu nhiên 10 số nằm trong khoảng [0,1000) rồi tính trung
bình (tb) và độ lệch chuẩn (dlc) theo công thức:
n

tb =

∑x
i =1

n

i

 n 
 ∑ xi 
n
2
xi −  i =1 

n
dlc = i =1
n −1

2

BÀI TẬP CHƯƠNG 4
13. Viết chương trình nhập vào một chữ in thường, đưa ra màn hình chữ in hoa tương
ứng. Trong chương trình có khai báo và sử dụng phương thức đổi một ký tự chữ in
hoa thành ký tự chữ in thường.

14. Viết chương trình nhập vào một số nguyên dương, đưa ra màn hình tổng các chữ số
của số nguyên đó. Trong chương trình có khai báo và sử dụng phương thức tính tổng
của các chữ số trong một số nguyên. Ví dụ: sumDigits(234) trả về 9.
Page 1 of 9


15. Viết chương trình nhập vào hai số số nguyên dương, đưa ra màn hình ước số chung
lớn nhất của hai số nguyên đó. Trong chương trình có khai báo và sử dụng phương
thức tìm ước số chung lớn nhất của 2 số nguyên dương. Ví dụ: USCLN(24,16) trả về
8.
16. Viết chương trình thực hiện các yêu cầu sau:
- Định nghĩa phương thức đổi từ độ C sang độ F và phương thức đổi từ độ F sang
độ C có dòng tiêu đề như sau:
//Đổi từ độ C sang độ F
static double C2F(double celcius)

//Đổi từ độ F sang độ C

public static double F2C(double fahrenheit)

- Công thức đổi: F = (9.0/5) * C + 32. Viết chương trình gọi các phương thức trên
để hiển thị bảng như sau:
Celcius
40.0
39.0

32.0
31.0

Fahrenheit

104.0
|
102.2
|

89.6
|
87.8
|

|
Fahrenheit
Celcius
120.0
48.89
110.0
43.33


40.0
4.44
30.0
-1.11

17. Viết chương trình thực hiện các yêu cầu sau:
- Định nghĩa một phương thức xác định xem một số nguyên có phải là số nguyên tố
hay không có dòng tiêu đề như sau:
public static boolean isPrime(int num)

- Sử dụng phương thức trên để đưa ra các số nguyên tố nhỏ hơn một số nguyên n

nhập vào từ bàn phím.
18. Viết chương trình thực hiện các yêu cầu sau:
- Định nghĩa phương thức đệ quy tính tổng:
m (i ) =

1 2
i
+ + ... +
2 3
i +1

- Đưa ra màn hình bảng sau:
i
1
2

19
20

m(i)
0.5
1.1667

15.4523
16.4023

19. Viết chương trình thực hiện các yêu cầu sau:
- Định nghĩa phương thức đệ quy USCLN(m, n) tìm ước số chung lớn nhất của hai
số nguyên dương m, n theo công thức sau:
Nếu m % n = 0 thì USCLN(m, n) = n

Trái lại, USCLN(m, n) = USCLN(n, m % n)
Page 2 of 9


- Sử dụng phương thức trên để tìm ước số chung lớn nhất của hai số nguyên dương
a, b nhập vào từ bàn phím.
20. Viết chương trình thực hiện các yêu cầu sau:
- Tạo lớp tên là Toan, chứa các phương thức sau:
1. Phương thức tính gần đúng ex với độ chính xác eps theo công thức:

x 2 x3
xn
e = 1+ x + + ++ +
2! 3!
n!
x

Phương thức này có dòng tiêu đề như sau:

public static float exp(float x,float esp)

2. Phương thức tính gần đúng số e với độ chính xác eps theo công thức:
1 1 1
1
e = 1 + + + + ... + + ...
1! 2! 3!
n!
Phương thức này có dòng tiêu đề như sau:
public static float tinhE(float esp)


3. Phương thức tính gần đúng số π với n số hạng đầu tiên theo công thức:

π
1 1 1
1
= 1 − + − +  + (−1) n
4
3 5 7
2n + 1
Phương thức này có dòng tiêu đề như sau:

public static float tinhPI(int n)

- Để lớp Toan trong một tệp và đóng gói lớp này với tên là:
TênSV.fita
trong đó TênSV lấy chữ cái đầu tiên của họ và đệm ghép với tên, ví dụ Nguyễn
Thanh Bình thì TênSV là ntbinh.
- Viết chương trình có sử dụng thử các phương thức trong lớp Toan.
BÀI TẬP CHƯƠNG 5
21. Viết chương trình nhập vào một dãy có n số. Tính trung bình của dãy số, đưa trung
bình và các số lớn hơn trung bình ra màn hình.
22. Viết chương trình tạo ra 100 số nguyên ngẫu nhiên nằm giữa 0 và 9. Đếm số lần
xuất hiện của từng số.
23. Viết chương trình nhập vào một dãy gồm n số nguyên, lưu dãy số này trong một
mảng, truyền mảng cho một phương thức, phương thức trả về một mảng chứa các số
theo thứ tự ngược với dãy số ban đầu. Đưa dãy số nhập vào ban đầu và dãy số trả về
từ phương thức ra màn hình.
24. Viết chương trình thực hiện các yêu cầu sau:
- Định nghĩa phương thức cộng hai ma trận có cùng kích thước có đối số là 2 ma
trận cần tính tổng và trả về ma trận tổng.

- Định nghĩa phương thức in một ma trận ra màn hình theo hàng và cột. Ma trận
cần in được truyền cho phương thức qua đối số.
Page 3 of 9


- Từ chương trình chính nhập vào hai ma trận có kích thước m×n. Gọi phương thức
để tính tổng hai ma trận. Gọi phương thức để đưa hai ma trận đã nhập và ma trận
tổng ra màn hình.
25. Viết chương trình thực hiện các yêu cầu sau:
- Định nghĩa phương thức nhân hai ma trận A m×n và Bn×p có đối số là 2 ma trận cần
tính tích và trả về ma trận tích. Trong phương thức nhân hai ma trận có kiểm tra sự
hợp lệ về kích thước của hai ma trận cần tính tích.
- Định nghĩa phương thức in một ma trận ra màn hình theo hàng và cột. Ma trận
cần in được truyền cho phương thức qua đối số.
- Từ chương trình chính nhập vào ma trận Am×n và Bn×p. Tính Cm×p = Am×n × Bn×p. Đưa
các ma trận ra màn hình.
26. Viết chương trình thực hiện các yêu cầu sau:
- Định nghĩa hai phương thức chồng để tính trung bình cộng các phần tử của một
mảng int và một mảng double. Hai phương thức này có dòng tiêu đề như sau:
public static float average(int[] array);
public static double average(double[] array);

- Từ chương trình chính nhập vào một dãy n số nguyên và một dãy m số thực. Gọi
hai phương thức trên để đưa ra trung bình cộng các số của hai dãy đã nhập.
BÀI TẬP CHƯƠNG 6
27. Viết chương trình thực hiện các yêu cầu sau:
- Tạo lớp đối tượng hình chữ nhật có tên là Rectangle theo lược đồ UML dưới đây:
Rectange
- width: double
- height: double

- color: String
+ Rectange()
+ Rectange(width: double,
height: double, color: String)
+ getWidth() :double
+ setWidth(width:double): void
+ getHeight(): double
+ setHeight(height:double): void
+ getColor(): String
+ setColor(color): void
+ findArea(): double
+ findPerimeter(): double

Chiều rộng hình chữ nhật
Chiều dài hình chữ nhật
Màu hình chữ nhật
Tạo HCN có c.dài = 1, c.rộng = 1
Tạo HCN có c.dài, c.rộng xác định qua
tham số
Trả về chiều rộng
Thiết lập chiều rộng mới
Trả về chiều dài
Thiết lập chiều dài mới
Trả về màu của HCN
Thiết lập màu mới cho HCN
Tính và trả về diện tích HCN
Tính và trả về chu vi HCN

- Từ chương trình chính, tạo một đối tượng hình chữ nhật với kích thước và màu
sắc nhập vào từ bàn phím. Đưa ra màn hình các thuộc tính, diện tích và chu vi của

đối tượng hình chữ nhật đã tạo.
Page 4 of 9


28. Viết chương trình thực hiện các yêu cầu sau:
- Tạo lớp đối tượng ngăn xếp chứa các số nguyên có tên là StackOfIntergers theo
lược đồ UML dưới đây:
StackOfIntegers
- elements: int[]
- size: int
+ StackOfIntegers()
+ StackOfIntegers (capacity: int)
+ isEmpty(): boolean
+ isFull(): boolean
+ peak(): int
+ push(value:int): void
+ pop(): int
+ getSize(): int

Mảng chứa các số nguyên trong stack
Số lượng số nguyên đang chứa trong stack
Tạo một stack rỗng có dung lượng = 16
Tạo một stack rỗng có dung lượng xác định trong tham số
Trả về true nếu stack rỗng
Trả về true nếu stack đầy
Trả về số nguyên ở đỉnh stack
Đẩy một số nguyên vào đỉnh stack
Lấy ra và trả về số nguyên tại đỉnh stack
Trả về số lượng số nguyên đang chứa trong stack


- Viết chương trình sử dụng lớp StackOfIntergers để đưa ra màn hình tất cả các số
nguyên tố nhỏ hơn một số nguyên dương n (nhập vào từ bàn phím) theo thứ tự
giảm dần.
29. Tạo lớp StackOfIntergers như bài 28. Viết chương trình nhập vào một số nguyên
dương rồi hiển thị các thừa số nguyên tố nhỏ nhất của nó theo thứ tự ngược. Ví dụ,
nếu số nguyên là 120, các thừa số nguyên tố nhỏ nhất được hiển thị là 5, 3, 2, 2, 2.
Sử dụng lớp StackOfIntergers để chứa các thừa số rồi lấy và hiển thị chúng theo thứ
tự ngược.
30. Viết chương trình thực hiện các yêu cầu sau:
- Tạo lớp đối tượng ngăn xếp chứa các ký tự có tên là StackOfChars theo lược đồ
UML dưới đây:
StackOfChars
- elements: char[]
- size: int
+ StackOfChars()
+ StackOfChars (capacity: int)
+ isEmpty(): boolean
+ isFull(): boolean
+ peak(): char
+ push(ch:char): void
+ pop(): char
+ getSize(): int

Mảng chứa các ký tự trong stack
Số lượng ký tự đang chứa trong stack
Tạo một stack rỗng có dung lượng = 16
Tạo một stack rỗng có dung lượng xác định trong tham số
Trả về true nếu stack rỗng
Trả về true nếu stack đầy
Trả về ký tự ở đỉnh stack

Đẩy một ký tự vào đỉnh stack
Lấy ra và trả về ký tự tại đỉnh stack
Trả về số lượng ký tự đang chứa trong stack

- Viết chương trình sử dụng lớp StackOfChars để tính giá trị của biểu thức số học
dạng trung tố có dấu ngoặc đầy đủ. Giả sử trong biểu thức số học chỉ chứa các phép
toán cộng, trừ, nhân, chia và các số hạng là các số chỉ có một chữ số.
Ví dụ: Nhập vào biểu thức số học ((3+7)×(9-(6-2))), đưa ra kết quả là 50.
31. Tạo lớp StackOfChars như bài 30. Viết chương trình sử dụng lớp StackOfChars để
chuyển một biểu thức dạng trung tố về dạng hậu tố.
Page 5 of 9


32. Viết chương trình thực hiện các yêu cầu sau:
- Tạo lớp đối tượng điểm trong mặt phẳng tọa độ OXY có tên là MyPoint theo lược
đồ UML dưới đây:
MyPoint
- x: double
- y: double
+ MyPoint()
+ MyPoint(x: double, y: double)
+ MyPoint(p: MyPoint)
+ getX(): double
+ getY(): double
+ distance(secondPoint: MyPoint): double
+ distance(p1: MyPoint, p2: MyPoint): double

Tọa độ x
Tọa độ y
Tạo đối tượng mặc định

Tạo đối tượng có tọa độ xđ trong tham số
Tạo đối tượng là bản sao của đối tượng trong t.số
Trả về tọa độ X
Trả về tọa độ Y
Trả về khoảng cách từ điểm này tới điểm thứ hai
Trả về khoảng cách giữa hai điểm

- Viết chương trình tạo n đối tượng điểm MyPoint có tọa độ nhập vào từ bàn phím.
Tìm hai điểm có khoảng cách lớn nhất. Đưa ra màn hình tọa độ của hai điểm tìm
được và giá trị khoảng cách giữa chúng.
33. Viết chương trình thực hiện các yêu cầu sau:
- Tạo lớp đối tượng ma trận có tên là Matrix theo lược đồ UML dưới đây:
Matrix
- a: float[][]

Mảng chứa các phần tử của ma trận

+ Matrix()

Tạo ma trận có số hàng và số cột bằng 3

+ Matrix(rows: int, cols : int)

Tạo ma trận có số hàng và số cột xđ trong tham số

+ add(m: Matrix): Matrix

Tính tổng ma trận này với ma trận trong tham số,
trả về ma trận tổng. Trong phương thức có kiểm tra
sự hợp lệ về số hàng, số cột của hai ma trận.


+ sub(m: Matrix): Matrix

Tính hiệu ma trận này với ma trận trong tham số,
trả về ma trận hiệu. Trong phương thức có kiểm tra
sự hợp lệ về số hàng, số cột của hai ma trận.

+ neg(): Matrix

Đổi dấu các phần tử của ma trận, trả về ma trận đã
đổi dấu các phần tử

+ transpose(): Matrix

Trả về ma trận chuyển vị

+ mul(m: Matrix): Matrix

Tính tích ma trận này với ma trận trong tham số, trả
về ma trận tích. Trong phương thức có kiểm tra sự
hợp lệ về số hàng, số cột của hai ma trận.

+ print(): void

Đưa ma trận ra màn hình

+ input(): void

Nhập vào các phần tử của ma trận


- Viết chương trình sử dụng lớp Maxtrix để thực hiện một số phép toán về ma trận.
Chương trình có các mục menu: 1. Tính tổng và hiệu hai ma trận; 2. Tính tích hai
Page 6 of 9


ma trận; 3. Tìm chuyển vị của một ma trận; 4. Kết thúc chương trình. Khi người sử
dụng chọn các mục từ 1 đến 3 thì cho nhập vào ma trận, thực hiện tính toán và đưa
ra kết quả; khi người sử dụng chọn 4 thì kết thúc chương trình.
34. Viết chương trình thực hiện các yêu cầu sau:
- Tạo lớp đối tượng phân số có tên là PhanSo theo lược đồ UML dưới đây:
PhanSo
- ts: int
- ms: int
+ PhanSo()
+ PhanSo(ts: int, ms: int)
+ cong(sp2: PhanSo): PhanSo
+ tru(sp2: PhanSo): PhanSo
+ nhan(sp2: PhanSo): PhanSo
+ chia(sp2: PhanSo): PhanSo
+ nghichDao(): PhanSo
+ doiDau(): PhanSo
+ toiGian(): PhanSo
+ bangNhau(ps2: PhanSo): boolean
+ lonHon(ps2: PhanSo): boolean
+ nhoHon(ps2: PhanSo): boolean
+ hien(): void
+ nhap(): void

Tử số
Mẫu số

Tạo phân số có tử số bằng 0, mẫu số bằng 1
Tạo phân số có tử số và mẫu số xđ trong tham số
Cộng hai phân số
Trừ hai phân số
Nhân hai phân số
Chia hai phân số
Nghịch đảo phân số và trả về phân số nghịch đảo
Đổi dấu phân số và trả về phân số đã đổi dấu
Tối giản phân số và trả về phân số đã tối giản
So sánh bằng
So sánh lớn hơn
So sánh nhỏ hơn
Đưa phân số ra màn hình ở dạng ts/ms
Nhập vào phân số dạng ts/ms

- Viết chương trình sử dụng lớp PhanSo. Nhập vào hai phân số; tính tổng, hiệu, tích,
thương hai phân số; tối giản và so sánh hai phân số.
35. Viết chương trình thực hiện các yêu cầu sau:
- Tạo lớp đối tượng số phức có tên là SoPhuc theo lược đồ UML dưới đây:
SoPhuc
- a: float
- b: float
+ SoPhuc()
+ SoPhuc(thuc: float, ao: float)
+ cong(sp2: SoPhuc): SoPhuc
+ tru(sp2: SoPhuc): SoPhuc
+ nhan(sp2: SoPhuc): SoPhuc
+ chia(sp2: SoPhuc): SoPhuc
+ nghichDao(): SoPhuc
+ bangNhau(sp2: SoPhuc): boolean

+ lonHon(sp2: SoPhuc): boolean
+ nhoHon(sp2: SoPhuc): boolean
+ hien(): void
+ nhap(): void

Số phức a + jb
Phần thực a
Phần ảo b
Tạo số phức có phần thực và ảo bằng 0
Tạo số phức có phần thực và ảo xđ trong tham số
Cộng hai số phức
Trừ hai số phức
Nhân hai số phức
Chia hai số phức
Trả về số phức nghịch đảo
So sánh bằng
So sánh lớn hơn
So sánh nhỏ hơn
Đưa số phức ra màn hình ở dạng a + jb
Nhập vào số phức dạng a + jb

- Viết chương trình sử dụng lớp SoPhuc. Nhập vào hai số phức; tính tổng, hiệu, tích,
thương hai số phức; tính nghịch đảo và so sánh hai số phức.
Page 7 of 9


BÀI TẬP CHƯƠNG 7
36. Viết chương trình thực hiện các yêu cầu sau:
- Viết phương thức chuyển một số hex cho dưới dạng xâu ký tự thành số nguyên
thập phân. Tiêu đề của phương thức có dạng sau: int parseHex(String hexString).

- Viết chương trình nhập vào 1 số hex dưới dạng xâu, gọi phương thức parseHex()
để chuyển thành số nguyên thập phân và đưa kết quả ra màn hình.
37. Viết chương trình thực hiện các yêu cầu sau:
- Viết phương thức chuyển một số nhị phân cho dưới dạng xâu ký tự thành số
nguyên thập phân. Tiêu đề của phương thức có dạng sau:
int parseBin(String binString)
- Viết chương trình nhập vào 1 số nhị phân dưới dạng xâu ký tự, gọi phương thức
parseBin() để chuyển thành số nguyên thập phân và đưa kết quả ra màn hình.
38. Viết chương trình thực hiện các yêu cầu sau:
- Viết phương thức chuyển một số nguyên dương thập phân thành số hex và số nhị
phân dưới dạng xâu ký tự. Tiêu đề của các phương thức có dạng sau:
String convertDecimalToHex(int value)
String convertDecimalToBin(int value)
- Viết chương trình nhập vào 1 số nguyên dương, gọi phương thức này để chuyển
thành số hex và số nhị phân. Đưa các kết quả ra màn hình.
39. Viết chương trình nhập vào một xâu ký tự. Đếm xem trong xâu đó có bao nhiêu từ.
Biết rằng các từ phân cách nhau bởi dấu cách và các dấu chấm câu. Đưa kết quả ra
màn hình.
40. Viết chương trình nhập vào một dãy số thực dưới dạng xâu ký tự, các số thực phân
cách nhau bởi ít nhất một dấu cách. Tính tổng các số thực và đưa kết quả ra màn
hình.
BÀI TẬP CHƯƠNG 8
41. Viết chương trình thực hiện các yêu cầu sau:
- Tạo các lớp đối tượng hình chữ nhật (hinhCN), hình tam giác (hinhTG), hình tròn
(hinhTron) kế thừa từ lớp hình (Hinh). Lớp hình chữ nhật có 2 cạnh, lớp hình tam
giác có 3 cạnh, lớp hình tròn có bán kính, lớp hình không có dữ liệu. Tất cả các lớp
đều có phương thức tính diện tích (tinhDT) và tính chu vi (tinhCV).
- Viết chương trình nhập vào kích thước một số hình. Tính diện tích và chu vi các
hình. Đưa ra màn hình kích thước cùng diện tích và chu vi của các hình. Trong
chương trình có cài đặt đa hình động.

42. Tạo lớp StackOfObjects để lưu các đối tượng. Viết chương trình sử dụng lớp
StackOfObjects để đưa ra màn hình các thừa số nguyên tố tối thiểu của một số
nguyên n theo thứ tự giảm dần.
43. Tạo một giao diện (interface) có tên là SoSanh và có các phương thức để so sánh
nhỏ hơn (nhoHon), so sánh bằng (bangNhau) và so sánh lớn hơn (lonHon). Tạo các
lớp hình chữ nhật (HinhCN), hình tam giác (HinhTG) và hình tròn (HinhTron) thực
hiện (implements) giao diện SoSanh. Biết rằng lớp hình chữ nhật có hai cạnh, lớp
Page 8 of 9


hình tam giác có ba cạnh, lớp hình tròn có bán kính và các hình so sánh với nhau
dựa vào diện tích. Viết chương trình nhập vào kích thước một số hình. Sử dụng các
phương thức của giao diện SoSanh để sắp xếp các hình theo kích thước giảm dần.

Page 9 of 9



×