• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Bị lỗi chương trình TÌM SỐ NGUYÊN TỐ

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Điều hành viên: tungblt, vuathongtin

ganggangvn
Bài viết: 2
Ngày tham gia: CN 05/06/2016 4:27 pm

Bị lỗi chương trình TÌM SỐ NGUYÊN TỐ

Gửi bàigửi bởi ganggangvn » CN 05/06/2016 4:39 pm


Đây là code của mình :

Private Sub Btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn2.Click
End
End Sub

Private Sub lblnumber_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblnumber.Click

End Sub

Private Sub TxtNumber_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtNumber.TextChanged

End Sub

Private Sub Btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn1.Click
Dim i As Integer, N As Integer
N = TxtNumber.Text
Do While (i <= Math.Sqrt(N)) And (N Mod i = 0)
i = i + 1
Loop
If (i > Math.Sqrt(N)) And (N <> 1) Then
MsgBox(Str(N) & " Là số nguyên tố ")
Else
MsgBox(Str(N) & " không phải là số nguyên tố ")

End If
End Sub
End Class
[color=#0000F nó sai ở đâu vậy ? pro nào chỉ dùm mình với :( :-S F][/color]
Tập tin đính kèm
1.png
1.png



khoaph
Thành viên chính thức
Thành viên chính thức
Bài viết: 34
Ngày tham gia: T.Ba 08/12/2015 12:57 pm
Been thanked: 4 time

Re: Bị lỗi chương trình TÌM SỐ NGUYÊN TỐ

Gửi bàigửi bởi khoaph » CN 05/06/2016 8:15 pm

Lỗi chia cho 0
bạn khai báo i nhưng không gán giá trị nên i=0
do đó biểu thức "N mod i" sẽ bị lỗi chia 0
ngoài ra code của bạn cũng bị lỗi logic, khi gặp "N mod i=0" thì đã biết là N không phải nguyên tố rồi, cần gì tiếp tục tăng i

ganggangvn
Bài viết: 2
Ngày tham gia: CN 05/06/2016 4:27 pm

Re: Bị lỗi chương trình TÌM SỐ NGUYÊN TỐ

Gửi bàigửi bởi ganggangvn » T.Hai 06/06/2016 10:14 pm

thanks bạn. Bây giờ mình chỉ cần khai báo i =2 ; là chạy ngon lành rùi :) hihi
Nhưng mà nếu ở Textbox mình nhập ko phải là số nguyên.Mà chứa kí tự thì chương trình sẽ bị lỗi. Mình đã tính đến điều này, nhưng nếu viết code thì ép kiểu string sang Integer thế nào. Hoặc có hàm nào để "catch" mỗi số hay ko.
Code của mình sai, khi textbox nhập số 0. nó bảo là số nguyên. Bạn giúp mình hoàn thiện chương trình hơn với. Lối thoát khi xảy ra lỗi! :)

khoaph
Thành viên chính thức
Thành viên chính thức
Bài viết: 34
Ngày tham gia: T.Ba 08/12/2015 12:57 pm
Been thanked: 4 time

Re: Bị lỗi chương trình TÌM SỐ NGUYÊN TỐ

Gửi bàigửi bởi khoaph » T.Ba 07/06/2016 5:56 am

Mình chỉ gợi ý thôi, code bạn có lỗi logic chổ bạn đánh dấu màu đỏ ấy, ở cái điều kiện "N mod i=0" ấy, nó phải là 1 đk khác, bạn kiểm tra lại đi.


Quay về “Visual Basic .NET và C# (VB.NET & C#)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.8 khách