Tải bản đầy đủ (.pdf) (8 trang)

Bài tập java chương 3

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 (376.84 KB, 8 trang )

Biên soạn: ThS. Lê Đình Ngân

BÀI TẬP CHƯƠNG III
KỸ THUẬT LẬP TRÌNH VBA
Bài tập 3.1. Hàm NGAYTHANG()
Viết một hàm không có đối số, hàm trả về một giá trị mang kiểu chuỗi với ý nghĩa là thứ,
ngày, tháng, năm của hệ thống.
Hướng dẫn:
'Ham tra ve thu, ngay thang nam cua he thong
Public Function Ngaythang() As String
'Khai bao bien cuc bo
Dim Thu As String
Dim Ngay, Thang, Nam, Tam As Integer
'Lay gia tri ngay, thang, nam
……………………..
'Lay gia tri thu trong tuan
……………………..
'Gan ten ham voi gia tri tra ve gom thu, ngay, thang, nam
………………………
End Function
Bài tập 3.2. Hàm AMLICH()
 Viết một hàm dùng để trả về một năm âm lịch.
 Hàm có một đối số mang kiểu ngày tháng (Date)
 Hàm trả về một giá trị mang kiểu chuỗi (String) với nghĩa là năm âm lịch tương ứng.
Hướng dẫn:
B1: Tính dư can và dư chi
 Dư can là dư số của phép chia năm cho 10.
 Dư chi là dư số của phép chia năm cho 12.
B2: Tính can và chi theo bảng sau:
DƯ CAN


CAN

DƯ CHI

CHI

0

Canh

0

Thân

1

Tân

1

Dậu

2

Nhâm

2

Tuất


Trang

1/8


Biên soạn: ThS. Lê Đình Ngân
3

Quý

3

Hợi

4

Giáp

4



5

Ất

5

Sửu


6

Bính

6

Dần

7

Đinh

7

Mẹo

8

Mậu

8

Thìn

9

Kỷ

9


Tỵ

10

Ngọ

11

Mùi

'Ham tra ve nam am lich
Public Function Amlich(ByVal Bienngay As Date) As String
'Khai bao bien cuc bo
Dim Ducan, Duchi As Byte
Dim Can, Chi, Namamlich As String
'Tinh du can va du chi
……………………
'Xac dinh can, chi
……………………..
'Lay ten ham gan voi gia tri tra ve
……………………..
End Function
Bài tập 3.3. Hàm KHOANGTRANG()
Viết một hàm dùng để cắt các khoảng trắng thừa trong một chuỗi.
 Hàm có một đối số mang kiểu chuỗi (là chuỗi muốn kiểm tra)
 Hàm trả về một giá trị mang kiểu chuỗi với ý nghĩa là chuỗi đã được cắt bỏ các khoảng trắng
thừa (mỗi từ cách nhau đúng một khoảng trắng).
Hướng dẫn:
B1: Viết một hàm tìm hai khoảng trắng trong chuỗi.
 Hàm có một đối số (Argument) mang kiểu chuỗi.

 Hàm trả về một giá trị mang kiểu số với ý nghĩa là vị trí bắt đầu xuất hiện (tính từ bên trái) của
hai khoảng trắng trong chuỗi; nếu chuỗi không chứa hai khoảng trắng thì hàm trả về trị 0.

Trang

2/8


Biên soạn: ThS. Lê Đình Ngân
B2: Viết hàm cắt các khoảng trắng thừa trong chuỗi
B2.1. Tìm 2 khoảng trắng trong chuỗi (lưu vào biến VITRI)
B2.2. Lặp lại những thao tác sau khi vẫn còn 2 khoảng trắng
(biến VITRI>0)
 Cắt từ bên trái chuỗi cho đến vị trí bắt đầu xuất hiện 2 khoảng trắng.
 Cắt chuỗi gốc từ vị trí bắt đầu xuất hiện 2 khoảng trắng cho đến cuối chuỗi  cắt bỏ
khoảng trắng hai bên.
 Tìm 2 khoảng trắng trong chuỗi gốc và lưu vào biến VITRI
Bài tập 3.4. Hàm SONGAY()
Viết một hàm trả về số ngày trong một tháng.
 Hàm có một đối số (Argument) mang kiểu ngày tháng.
 Hàm trả về một giá trị mang kiểu số, với ý nghĩa là số ngày của tháng tương ứng.
 Biết rằng:
 Các tháng 4, 6, 9, 11 có số ngày là 30
 Các tháng 1, 3, 5, 7, 8, 10, 12 có số ngày là 31
 Số ngày của tháng 2 tùy thuộc vào năm nhuận:
 Nếu năm MOD 4 bằng 0 thì số ngày là 28
 Ngược lại số ngày là 29.
Bài tập 3.5. Hàm DOIHE16()
Viết một hàm đổi một số hệ thập phân ra hệ thập lục phân.
 Hàm có một đối số mang kiểu số nguyên, với ý nghĩa là số hệ thập lục phân.

 Hàm trả về một gia trị mang kiểu chuỗi, với ý nghĩa là số được biểu diễn trên hệ thập lục phân
tương ứng.
 Thí dụ:

Bài tập 3.6. Hàm MAHOA()
Viết một hàm mã hóa dữ liệu theo nguyên tắc:
 Lấy mã ASCII của từng ký tự từ trái sang phải.
 Nối các dãy số của mã ASCII vào chuỗi số.
 Đổi chuỗi số từ hệ 10 sang hệ 16.

Trang

3/8


Biên soạn: ThS. Lê Đình Ngân
 Thí dụ:

Bài tập 3.7. Hàm PerfectNumber()
Một số gọi là hoàn hảo (Perfect Number) khi tổng các ước số thực sự của nó bằng chính nó.
Viết một hàm kiểm tra một số xem có phải là số hoàn hảo hay không?
 Hàm có một đối số mang kiểu số (là số muốn kiểm tra)
 Hàm trả về một giá trị mang kiểu Boolean với ý nghĩa là kết quả kiểm tra.
Bài tập 3.8. Hàm Palindrom()
Một số gọi là Palindrom (Palindrom Number) khi đọc xuôi hoặc ngược số đó đều cho kết
quả như nhau, thí dụ các số sau là số Palindrom: 22, 121, 12321, 2345432, … Viết một hàm kiểm
tra một số xem có phải là số Palindrom hay không?
 Hàm có một đối số mang kiểu số (là số muốn kiểm tra)
 Hàm trả về một giá trị mang kiểu Boolean với ý nghĩa là kết quả kiểm tra.
Bài tập 3.9. Hàm DOIHETP()

Viết hàm dùng để đổi một số từ hệ bất kỳ (2 - 16) ra hệ thập phân.
 Hàm có 2 đối số:
 Đối số thứ nhất mang kiểu chuỗi với ý nghĩa là số của hệ bất kỳ.
 Đối số thứ hai mang kiểu số với ý nghĩa là hệ đếm đang được biểu diễn.
 Hàm trả về một giá trị mang kiểu số với ý nghĩa là số hệ thập phân được chuyển đổi trên
hệ đếm tương ứng.
Bài tập 3.10. Hàm THUETHUNHAP()
Viết hàm dùng để tính thuế thu nhập cá nhân với những yêu cầu sau:
 Hàm có 4 đối số (Arguments):
 Đối số thứ 1: là thu nhập hàng tháng của một người.
 Đối số thứ 2: mức miễn thuế (mức thu nhập không phải nộp thuế thu nhập).
 Đối số thứ 3: là số suất giảm trừ gia cảnh.

Trang

4/8


Biên soạn: ThS. Lê Đình Ngân
 Đối số thứ 4: mức giảm trừ gia cảnh/suất.
 Hàm trả về một giá trị mang kiểu số thực, là số tiền thuế thu nhập phải nộp (nếu có).
 Thuế thu nhập cá nhân được tính theo phương pháp lũy tiến với biểu thuế suất như sau:
Mức thu nhập tính thuế/tháng
(triệu đồng)

Thuế suất

Đến 5.000.000
Trên 5.000.000 đến 10.000.000
Trên 10.000.000 đến 18.000.000

Trên 18.000.000 đến 32.000.000
Trên 32.000.000 đến 52.000.000
Trên 52.000.000 đến 80.000.000
Trên 80.000.000

5%
10%
15%
20%
25%
30%
35%

 Mức miễn thuế: 9.000.000 đồng/người/tháng
 Mức giảm trừ gia cảnh: 3.600.000 đồng/suất/tháng
Bài tập 3.11. Hàm TINHTHUONG()
Một đơn vị X đưa ra chế độ tính thưởng để khuyến khích công nhân nâng cao năng suất lao
động, chế độ thưởng được xác định như sau:
Số lượng sản phẩm hoàn thành

Mức thưởng
(tính trên đơn giá lương sản phẩm)

<= định mức

0

Vượt 10% so với định mức

10%


Vượt 20% so với định mức

15%

Vượt 30% so với định mức

20%

Vượt trên 30% so với định mức

30%

 Viết một hàm xử lý cách tính thưởng như trên.
 Hàm nhận vào 3 đối số (Arguments):
 Đối số thứ 1: định mức sản phẩm hoàn thành
 Đối số thứ 2: số lượng sản phẩm thực tế hoàn thành
 Đối số thứ 3: đơn giá lương sản phẩm
 Hàm trả về một giá trị mang kiểu số, với ý nghĩa là số tiền thưởng của công nhân.
 Thí dụ:
Công nhân A sản xuất sản phẩm SP1 có định mức 100 sản phẩm/tháng và đơn giá lương
sản phẩm là 10 đồng/sản phẩm; trong tháng, công nhân A hoàn thành 145 sản phẩm, vậy
phương án tính thưởng được xác định như sau:

Trang

5/8


Biên soạn: ThS. Lê Đình Ngân

 Phần vượt <=10% (so ĐM): 10 SP * (10 đồng/SP * 10%)
 Phần vượt >10% và <=20%: 10 SP * (10 đồng/SP * 15% )
 ………..v.v………….
Bài tập 3.12. Hàm TINHLUONGSP()
Viết hàm dùng để tính lương sản phẩm có thưởng theo phương pháp lũy tiến với những yêu
cầu sau:
 Hàm được dùng để tính lương sản phẩm cho công nhân trực tiếp sản xuất.
 Hàm có 2 đối số:
 Đối số thứ 1 mang kiểu chuỗi, với ý nghĩa là mã sản phẩm hoàn thành.
 Đối số thứ 2 mang kiểu số, với ý nghĩa là số lượng sản phẩm hoàn thành.
 Hàm trả về một giá trị mang kiểu số với ý nghĩa là đơn giá lương sản phẩm. Cho biết:


sản
phẩm

Định mức
(sản phẩm/tháng)

Đơn giá lương sản phẩm
(đồng/sản phẩm)

SP001

500

6.000

SP002


650

4.500

SP003

700

4.200

SP004

820

3.850

Để khuyến khích công nhân nâng cao năng suất lao động, công ty áp dụng chế độ tính lương
sản phẩm như sau:
Sản phẩm hoàn thành

Đơn giá lương sản phẩm
(đồng/sản phẩm)

<= định mức

Không tăng

Vượt <=10% định mức

Tăng thêm 10% trên đơn giá LSP


Vượt <=20% định mức

Tăng thêm 15% trên đơn giá LSP

Vượt >20% định mức

Tăng thêm 20% trên đơn giá LSP

Bài tập 3.13. Hàm FutureValue()
Một người gửi số tiền tiết kiệm 50.000.000 đồng với lãi suất 14%/năm, với kỳ hạn 5 năm. Hãy
xác định số tiền đáo hạn sau 5 năm?
Ta có công thức:
Với n = 1: FV1 = PV + PV.k = PV(1+k)

Trang

6/8


Biên soạn: ThS. Lê Đình Ngân
Với n = 2: FV2 = FV1 + FV1.k = FV1.(1+k) = PV(1+k)2
Với n = 3: FV3 = FV2 + FV2.k = FV2.(1+k) = PV(1+k)3
……………
Một cách tổng quát, ta có:

FVn  PV .(1  k ) n

(1)


Áp dụng công thức (1), ta có số tiền đáo hạn sau 5 năm là:
FVn = 50.000.000(1+0,14)5 = 96.270.729 đồng
Viết hàm FutureValue() dùng để tính giá trị tương lai của một số tiền với phương pháp
tính lãi nhập vốn.
 Hàm có 2 đối số mang kiểu số thực:
 Đối số thứ nhất mang kiểu số thực với ý nghĩa là số tiền hiện tại (Present Value).
 Đối số thứ hai mang kiểu số thực với ý nghĩa là lãi suất (Rate).
 Đối số thứ ba mang kiểu số nguyên với ý nghĩa là kỳ hạn (Period).
 Hàm trả về một giá trị mang kiểu số với ý nghĩa là giá trị tương lai của một số tiền với lãi suất
và kỳ hạn tương ứng.
Bài tập 3.14. Hàm RATE()
Sinh viên A vay ngân hàng 25.000.000 đồng để mua máy tính học tập và phải trả ngân hàng
số tiền gốc và lãi là 29.500.000 đồng sau một năm. Xác định lãi suất của khoản vay trên?
Ta có công thức:

FV1  PV .(1  k )  1  k 
Lãi suất của khoản vay là:

FV1
FV
 k  1 1
PV
PV

29.500.000
 1  0,18  18% /năm
25.000.000

Viết hàm Rate1() dùng để tính lãi suất của một khoản vay có thời hạn bằng một kỳ hạn.
 Hàm có 2 đối số mang kiểu số thực:

 Đối số thứ nhất mang kiểu số thực với ý nghĩa là khoản vay.
 Đối số thứ hai mang kiểu số thực với ý nghĩa là số phải thanh toán khi đến hạn.
 Hàm trả về một giá trị mang kiểu số với ý nghĩa là lãi suất của một khoản vay có thời hạn
bằng một kỳ hạn.
Bài tập 3.15. Hàm Vonlaidon()
 Lãi suất là tỷ lệ phần trăm (%) của tiền lãi thu được trong một đơn vị thời gian so với số tiền
vốn ban đầu.

Trang

7/8


Biên soạn: ThS. Lê Đình Ngân
 Khi tiền lãi của thời đoạn trước không được nhập vốn để tính lãi cho thời đoạn sau, ta gọi đó
là lãi đơn.
 Thí dụ: Sinh viên A vay ngân hàng 5.000.000 đồng trong thời hạn 6 tháng, lãi suất 0,5%/tháng.
Sau 6 tháng, sinh viên đó phải trả ngân hàng bao nhiêu tiền?
Số tiền lãi và vốn gốc phải thanh toán:
5.000.000 x (1 + (0.5% x 6))= 5.150.000
Viết hàm Vonlaidon() dùng để tính số thanh toán của một khoản vay theo hình thức lãi
đơn.
 Hàm có 3 đối số:
 Đối số thứ nhất mang kiểu số thực với ý nghĩa là khoản vay.
 Đối số thứ 2 mang kiểu số thực với ý nghĩa là lãi suất trong một kỳ hạn của khoản vay.
 Đối số thứ 3 mang kiểu số nguyên với ý nghĩa là kỳ hạn vay.
 Hàm trả về một giá trị mang kiểu số với ý nghĩa là số thanh toán của một khoản vay với
hình thức tính lãi theo lãi đơn.
Lưu ý: lãi suất vay và kỳ hạn vay phải tương ứng với nhau, có nghĩa nếu lãi suất tính theo
tháng thì kỳ hạn cũng phải tính theo tháng, …v.v…

Bài tập 3.16. Hàm Vonlaikep()
 Khi tiền lãi của thời đoạn trước được nhập vốn để tính lãi cho thời đoạn sau, ta gọi đó là lãi
kép.
 Thí dụ: Sinh viên A vay ngân hàng 5.000.000 đồng trong thời hạn 6 tháng, lãi suất 0,5%/tháng.
Sau 6 tháng, sinh viên đó phải trả ngân hàng bao nhiêu tiền?
Số tiền lãi và vốn gốc phải thanh toán:
5.000.000 x (1 + 0.5% )6 = 5.151.888
Viết hàm Vonlaikep() dùng để tính số thanh toán của một khoản vay theo hình thức lãi kép.
 Hàm có 3 đối số:
 Đối số thứ nhất mang kiểu số thực với ý nghĩa là khoản vay.
 Đối số thứ hai mang kiểu số thực với ý nghĩa là lãi suất.
 Đối số thứ ba mang kiểu số nguyên với ý nghĩa là kỳ hạn vay.
 Hàm trả về một giá trị mang kiểu số với ý nghĩa là số thanh toán của một khoản vay với
hình thức tính lãi theo lãi kép.

Trang

8/8



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×