-
04-05-2009, 02:42 AM #1
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Kết quả tính toán sai ở chỗ nào? (Vui vui)
nhờ các bác chỉ dùm lỗi trong Function này(hoặc cách test) hộ em với:
Function TrungBinhCong(ByVal so1, ByVal so2, ByVal so3)
TrungBinhCong = (so1 + so2 + so3)/ 3
End Function
Để test cái Function trên em dùng:
Sub TrungBinh()
Dim so1, so2, so3 As Integer
Dim Tong As integer
so1 = InputBox("nhập số thứ nhất: ")
so2 = InputBox("Nhập số thứ hai: ")
so3 = InputBox("Nhập số thứ ba: ")
Tong = so1 + so2 + so3
MsgBox "Số thứ nhất là:" & so1
MsgBox "Số thứ hai là:" & so2
MsgBox "Số thứ ba là:" & so3
MsgBox "Tổng cộng là: " & Tong
MsgBox "Trung bình cộng các số: " & TrungBinhCong(so1, so2, so3)
End Sub
các bác thử chạy hộ cái Sub trên xem, tại sao lại không ra kết quả mong muốn??. Ví dụ, khi ta nhập so1=20; so2=30; so3=40 thì kết quả được sẽ là:Tổng cộng 2070; Trung bình cộng 690 ?????:k5211829:View more random threads:
- Cập nhật phiên bản mới cho chương trình Access?
- Làm sao để tắt chế độ Read Only khi mở file Access qua mạng Lan ?
- Giúp mình tạo Form truyền dữ liệu từ Table sang Table
- chèn ảnh vào form của access
- Hướng dẫn tạo MeNu cho file Access bằng Macro
- Làm sao để ghi dữ liệu vào record?
- Xin mẫu hợp đồng thuê san lấp núi
- Tạo CDKey cho sản phẩm hoàn thành
- Xin hướng dẫn cách nhập số vào textbox
- Cách tính tỷ lệ giảm trừ % trong 1 danh sách có nhiều người
-
04-05-2009, 02:59 AM #2
Junior Member
- Ngày tham gia
- Dec 2015
- Bài viết
- 0
Gửi bởi khanhminh06
Sửa lại chút:
Sub TrungBinh()
Dim so1, so2, so3
Dim Tong As Long
so1 = InputBox("nhập số thứ nhất: ")
so2 = InputBox("Nhập số thứ hai: ")
so3 = InputBox("Nhập số thứ ba: ")
Tong = CInt(so1) + CInt(so2) + CInt(so3)
MsgBox "Số thứ nhất là:" & so1
MsgBox "Số thứ hai là:" & so2
MsgBox "Số thứ ba là:" & so3
MsgBox "Tổng cộng là: " & Tong
MsgBox "Trung bình cộng các số: " & TrungBinhCong(CInt(so1), CInt(so2), CInt(so3))
End Sub
Ghi chú: không cần test, chỉ cần coi lôgic là biết nó bị chỗ nào rồi.
-
04-05-2009, 02:59 AM #3
Silver member
- Ngày tham gia
- Mar 2016
- Bài viết
- 15
Gửi bởi khanhminh06
nếu cái Function sửa thành:
[I]Function TrungBinhCong(Byval so1, ByVal so2, ByVal so3)
so1=so1+0
TrungBinhCong:k6233143:
Ngược lại nếu ta sửa cái "Sub" lại thế này và test thì OK:
Sub TrungBinh()
Dim so1, so2, so3 As Integer
Dim Tong As Double
so1 = InputBox("Nhập số thứ nhất: ") 'ở đây vẫn nhập giá trị so1=20
so2 = 30
so3 = 40
Tong = so1 + so2 + so3
MsgBox "Số thứ nhất là:" & so1
MsgBox "Số thứ hai là:" & so2
MsgBox "Số thứ ba là:" & so3
MsgBox "Tổng cộng: " & Tong 'kết quả được Tổng = 90
MsgBox "Trung bình cộng: " & TrungBinhCong(so1, so2, so3) 'Kết quả Trung bình là 30
End Sub
Tại sao nhỉ? khó hiểu quá!!!
-----------------------------------------------------------------------------------------
xin bác chỉ dzùm em với?
-----------------------------------------------------------------------------------------
Gửi bởi phatnq2002
-
04-05-2009, 03:07 AM #4
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Kết quả tính toán sai ở chỗ nào? (Vui vui)
Nhìn chung, bạn gặp phải trường hợp:
- Khai báo biến không tường minh: Trong tình huống này biến sẽ có kiểu là Variant. Khi tính toán, kiểu sẽ được thay đổi theo hướng được cho là thích hợp nhất. Đây là thói quen "xấu" của lập trình viên. Bạnne6n khai báo biến theo kiểu tường minh, vừa dễ kiểm soát, vừa biết giá trị trả về là gì.
- Khai báo không hợp kiểu: Biến kiểu kết quả thường có kiểu "cao" hơn các thành tố. Trong trường hợp bất khả kháng thì phải ép kiểu với: CInt, CLng, CDbl, CStr, ...
-
04-05-2009, 04:34 AM #5
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 7
Ðề: Kết quả tính toán sai ở chỗ nào? (Vui vui)
Cảm ơn bác em đã hiểu rồi!
Trung tâm Nam học, Bệnh viện hữu hảo Việt Đức (Hà Nội) dẫn một nghiên cứu mới công bố trên tùng san y khoa Lâm sàng (Journal of Clinical Medicine) cho thấy nhiều bằng chứng về cách rượu chát đỏ có...
Công bố về rượu vang đỏ giúp tăng sinh lý ở cả 2 giới?