-
04-05-2009, 02:42 AM #1Junior 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:
- giúp tắt chế độ báo của access!
- Sao lưu table từ file -> file?
- Làm sao để INSERT INTO giá trị DATE trong ACCESS?
- Hiện nội dung từng lỗi theo bảng (table) ta dựng sẵn.
- Tìm hàm tương tự với hàm days360 của excel
- Khi thay đổi Back End thì LINK Table làm sao nó cập nhật đúng
- Làm sao để sắp xếp cố định các trường xuống dòng trong 1 Textbox của Report
- Query khó đây thử sức nha
- Xin giúp đỡ về việc kết hợp giữa hai bảng
- Giúp mình bị lỗi phóng to chữ trong Form của Access !
-
04-05-2009, 02:59 AM #2Junior 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 #3Silver 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 #4Junior 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 #5Junior 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!
Bao cao su đôn dên là sản phẩm tương trợ dục tình được người dùng tại Việt Nam ưa chuộng. Hiện tại trên thị trường sản phẩm này có rất nhiều dòng với mẫu mã đa dạng. Dưới đây là Top 5 bao cao su đôn...
Bao cao su đôn dên X78PM gai toàn thân để làm mới cuộc vui