• 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

Một số mã tính công thức toán học đơn giản

Các bài viết hướng dẫn, giúp các bạn hiểu và tiếp cận với Visual Basic nhanh hơn
Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi VuVanHoanh » T.Bảy 12/03/2011 9:45 pm

Tên bài viết: Một số mã tính công thức toán học đơn giản
Tác giả: VuVanHoanh
Cấp độ bài viết: Dành cho học sinh lớp 8 trở xuống hoặc lớp 8 trở lên ;))
Tóm tắt: Hôm nay, sau khi đọc thấy một số bạn trên diễn đàn có hỏi về một vài thuật toán, em quyết định mạo muội viết lên một số bài để giúp các bạn học sinh giải toán trên máy tính dễ dàng, thuận tiện hơn. Và cũng có lẽ vì em mới học lớp 8 nên chưa thể hiểu hết và viết được nhiều mã giải toán có ích nên mong các anh "lớp lớn" góp vui để topic này thực sự hữu ích, các anh nhé :x


Nào, bắt đầu với học sinh cấp 2:

Giải phương trình bậc nhất:
  1. Public Function GiaiPTBacNhat(a As Long, b As Long) As Long
  2.     If a = 0 Then MsgBox "Day khong phai la phuong trinh bac nhat" : Exit Function
  3.     GiaiPTBacNhat = -b/a
  4. End Function
  5.  


Giải phương trình bậc hai:
  1. Public Function GiaiPTBacHai(a As Double, b As Double, c As Double) As String
  2.     If a = 0 Then MsgBox "Day khong phai la phuong trinh bac hai" : Exit Function
  3.     Dim n1 As Double, n2 As Double
  4.     n1 = (-b + sqr( b * b - 4 * a * c))/(2 * a)
  5.     n2 = (-b - sqr( b * b - 4 * a * c))/(2 * a)
  6.     If n1 = n2 Then
  7.         MsgBox "Phương trình có nghiệm số kép"
  8.         GiaiPTBacHai = n1 & ";" & n2
  9.     Else
  10.         GiaiPTBacHai = n1 & ";" & n2
  11.     End If
  12. End Function
  13.  

p/s: Vì em chưa học đến phương trình bậc hai nên chỉ có thể học theo công thức giải PT bậc hai trên mạng rồi chế code thôi.
Kết quả trả về là hai nghiệm n1 và n2, được phân cách với nhau bằng dấu ";", bạn có thể dùng hàm Split để lấy từng nghiệm.

Tính giai thừa đơn n! :
  1. Public Function TinhGiaiThua(n As Long) As Decimal
  2.     If n = 0 Then TinhGiaiThua = 1 : Exit Function
  3.     Dim i As Long, kq As Decimal
  4.     For i = 1 To n
  5.         kq = kq * i
  6.     Next
  7.     TinhGiaiThua = kq
  8. End Function
  9.  


Tính giai thừa kép n!! :
  1. Public Function TinhGiaiThuaKep(n As Long) As Decimal
  2.     If n <=1 Then TinhGiaiThuaKep = 1 : Exit Function
  3.     Dim i As Long, kq As Decimal
  4.     If n mod 2 = 1 Then
  5.         For i = 1 To n Step 2
  6.             kq = kq * i
  7.         Next
  8.     Else
  9.         For i = 2 to n Step 2
  10.             kq = kq * i
  11.         Next
  12.     End If
  13.     TinhGiaiThuaKep = kq
  14. End Function
  15.  


Tìm số nguyên tố:
  1. Public Function TimSoNguyenTo(n As Long) As String
  2.     Dim kq, i As Long, j As Long, k As Long
  3.     For i = 2 To n
  4.         k = 1
  5.         For j = 2 To i - 1
  6.             If i mod j = 0 Then k = 0
  7.         Next
  8.         If k = 1 Then kq = kq & i & ";"
  9.     Next
  10.     TimSoNguyenTo = Left$(kq, Len(kq) - 1)
  11. End Function
  12.  

Tương tự, bạn có thể dùng hàm Split để gán các giá trị vào mảng tùy thích.
Thú thực với các bạn là mình cũng không phải là giỏi VB6, nhưng cái quan trọng là chúng ta biết đưa nó vào để sử dụng đạt được mục đích đúng không các bạn :x

Kiểm tra dãy có phải là cấp số cộng hay không:
  1. Public Function KTDayCPLaCapSoCong(a As Variant, congsai As Integer) As Boolean
  2.     On Error Resume Next
  3.     Dim i As Integer, k As Integer, cur As String
  4.     i = 1: cur = a(i)
  5.     Do
  6.         If cur = a(i - 1) + congsai Then
  7.             k = 1
  8.         Else
  9.             KTDayCPLaCapSoCong = False
  10.             Exit Do
  11.         End If
  12.     i = i + 1
  13.     cur = a(i)
  14.     Loop Until cur = ""
  15.     If k = 1 Then KTDayCPLaCapSoCong = True
  16. End Function
  17.  

Oáp, mình đi ngủ đã, nào rảnh mình sẽ tiếp tục post tiếp mấy bài về tìm ước, bội, một vài bài về tính giai thừa, kiểm tra dãy số là cấp số nhân nữa.
Sửa lần cuối bởi VuVanHoanh vào ngày T.Hai 14/03/2011 10:22 am với 2 lần sửa.


Since 2008...
One love! :x

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi VuVanHoanh » CN 13/03/2011 7:57 pm

Dà, thưa Peter, Hoành rất cảm ơn những đóng góp, ý kiến của Peter. Nhưng vì Hoành chỉ mới lớp 8 :( , đầu óc chưa thực sự sáng suốt, chưa nghĩ ra được các code thực ngắn gọn, tối ưu. Vì vậy, Hoành cũng đã ghi ở trên, đại ý là: mong các bạn đóng góp thêm để topix được hoàn thiện hơn, nếu Peter có ý kiến hay làm được code ngắn gọn hơn, Peter cứ post lên đây để tiện thể Hoành cũng được tham khảo. ;)
Còn về thuật toán thì Hoành lấy những thuật toán tiêu biểu, dễ tính nhất mà Hoành từng biết, từng đọc được.
p/s: Hoành đã thử tìm kiếm với từ khóa "Một số mã tính toán" trước khi post bài này để tránh trùng lặp, và không có bài nào như ý Hoành muốn nên Hoành mới mạnh dạn post topix này. ;)


Tiếp tục :x :
Tìm bội theo số lượng cho trước:
  1. Public Function TimBoi(n As Long, soluong As Integer) As String
  2.     Dim i As Integer, kq As String
  3.     For i = 1 To soluong
  4.         kq = kq & n * i & ";"
  5.     Next
  6.     TimBoi = Left(kq, Len(kq) - 1)
  7. End Function
  8.  


Tìm ước:
  1. Public Function TimUoc(n As Long) As String
  2.     Dim i As Long, kq As String
  3.     For i = 1 To n
  4.         If n mod i = 0 Then kq = kq & i & ";"
  5.     Next
  6.     TimUoc = Left(kq, Len(kq) - 1)
  7. End Function
  8.  


Tính giai thừa nguyên tố:
kết hợp hai đoạn mã ở trên của mình lại vậy. Viết code ngại lắm :(
  1. Public Function TinhGiaiThuaNgTo(n As Integer) As Long
  2.     Dim kq As String, i As Long, snt As Variant
  3.     snt = Split(TimSoNguyenTo(n),";")
  4.     For i = 0 To InStr(TimSoNguyenTo(n))
  5.         kq = kq + TinhGiaiThua(snt(i))
  6.     Next
  7.     TinhGiaiThuaNgTo = kq
  8. End Function
  9.  


Kiểm tra tính hợp lệ của tam giác, tính chu vi, diện tích:
  1. Public Function KTTinhHLCuaTamGiac(a As Double, b As Double, c As Double, chuvi As Double, S As Double) As Boolean
  2.     Dim p As Double
  3.     p = (a + b + c)/2
  4.     If a + b > c And a + c > b And b + c > a And a > 0 And b > 0 And c > 0 Then
  5.         KTTinhHLCuaTamGiac = True
  6.         chuvi = a + b + c
  7.         S = sqr(p * (p - a) * (p - b) * (p - c))
  8.     Else
  9.         KTTinhHLCuaTamGiac = False
  10.     End If
  11. End Function
  12.  
Since 2008...
One love! :x

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi VuVanHoanh » T.Hai 14/03/2011 10:15 am

Cảm ơn ý kiến đóng góp của Peter, Hoành sẽ sửa lại code.
Và Hoành cũng đã nói ở trên: vì Hoành mới chỉ học lớp 8, chưa hiểu, chưa biết hết được. Hoành mới chỉ học cách để xác định một số nguyên tố thì cần chia số đó cho từng số từ hai đến chính nó - 1 mà thôi, Hoành chưa biết được là chỉ cần so sánh với căn của p. Dù sao cũng cảm ơn Peter vì đã cho Hoành biết thêm một công thức mới.
Và có lẽ topic này không còn ý nghĩa nữa, nên lock ngang đây.
Since 2008...
One love! :x

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi VuVanHoanh » T.Năm 17/03/2011 11:27 am

Sau khi được một số anh em động viên, em quyết định tiếp tục phát triển topic.
Mong anh em và các bạn tham gia đóng góp nhiệt tình...!! :x


Giải phương trình bậc ba:
  1. Const Pi = 4 * Atn(1)
  2. Public Function GiaiPTBacBa(a As Integer, b As Integer, c As Integer, d As Integer) As String
  3.     Dim u As Double, k As Double, delta As Double
  4.     Dim n1 As Double, n2 As Double, n3 As Double
  5.     delta = (b * b) - (3 * a * c)
  6.     If delta = 0 Then MsgBox "Delta = 0" : Exit Function
  7.     k = (9 * a * b * c - 2 * b^3 - 27 * a^2 * d)/(2 * sqr(Abs(delta)^3))
  8.     If delta > 0 Then
  9.         If Abs(k) <= 1 Then
  10.             MsgBox "Phương trình có ba nghiệm"
  11.             n1 = (2 * sqr(delta) * cos(acos(k)/3) - b)/(3 * a)
  12.             n2 = (2 * sqr(delta) * cos((acos(k)/3) - (2 * pi)/3) - b)/(3 * a)
  13.             n3 = (2 * sqr(delta) * cos((acos(k)/3) + (2 * pi)/3) - b)/(3 * a)
  14.             GiaiPTBacBa = n1 & ";" & n2 & ";" & n3
  15.         Else
  16.             MsgBox "Phương trình có một nghiệm duy nhất"
  17.             GiaiPTBacBa = ((sqr(delta) * Abs(k))/(3*a*k)*((Abs(k) + sqr(k^2 - 1))^(1/3) + (Abs(k) - sqr(k^2 - 1))^(1/3)) - (b/3*a)
  18.         End If
  19.     ElseIf delta = 0 Then
  20.         MsgBox "Phương trình có một nghiệm bội"
  21.         GiaiPTBacBa = (-b + (b^3 - 27* a^2 * d)^(1/3))/(3*a)
  22.     Else
  23.         MsgBox "Phương trình có một nghiệm duy nhất"
  24.         GiaiPTBacBa = (sqr(Abs(delta))/(3*a))*((k+sqr(k^2 + 1))^(1/3) + (k - sqr(k^2 + 1))^(1/3)) - (b/(3*a))
  25.     End If
  26. End Function
  27.  
  28. Pubic Function acos(x As Double) As Double
  29.     acos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
  30. End Function
  31.  
Sửa lần cuối bởi VuVanHoanh vào ngày T.Năm 19/05/2011 8:51 pm với 3 lần sửa.
Since 2008...
One love! :x

Hình đại diện của người dùng
bangnhatquang68
Guru
Guru
Bài viết: 791
Ngày tham gia: T.Ba 26/01/2010 12:44 pm
Đến từ: Vĩ tuyến 17
Has thanked: 20 time
Been thanked: 37 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi bangnhatquang68 » T.Năm 17/03/2011 3:19 pm

Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi VuVanHoanh » CN 20/03/2011 1:38 pm

Dạ, vì em chưa học đến nên đành đọc mà tự code lấy thôi.
Since 2008...
One love! :x

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi VuVanHoanh » T.Sáu 08/04/2011 9:16 pm

Đưa thêm cái tìm USCLN và BSCNN nữa nè:

1. ƯSCLN:
  1. Public Function USCLN(a As Long, b As Long) As Long
  2.     Dim a1 As Long, a2 As Long, n As Long
  3.     a1 = a: a2 = b
  4.     If a2 = 0 Or a1 = 0 Then USCLN = 0: Exit Function
  5.     Do
  6.         n = a2
  7.         a2 = a1 mod a2
  8.         a1 = n
  9.     Loop Until a2 = 0
  10.     USCLN = a1
  11. End Function
  12.  

///
* Đã sửa lại code và test. Ngày 13 tháng 04 năm 2011
///
2. BSCNN:
  1. Public Function BSCNN(a As Long, b As Long) As Long
  2.     'Dùng kèm với hàm trên
  3.    If a = 0 Or b = 0 Then BSCNN = 0: Exit Function
  4.     BSCNN = (a * b)/USCLN(a, b)
  5. End Function
Sửa lần cuối bởi VuVanHoanh vào ngày T.Tư 13/04/2011 10:28 am với 1 lần sửa.
Since 2008...
One love! :x

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi truongphu » T.Bảy 09/04/2011 4:26 pm

VuVanHoanh đã viết: Loop Until a2 = 0
USCLN = a2

Vậy thì USCLN luôn luôn =0

Bạn nên test lại các code của mình

Tìm ước số chung lớn nhất và Bội số chung nhỏ nhất
http://www.caulacbovb.com/mp_details.php?pid=36765
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi VuVanHoanh » T.Tư 13/04/2011 10:34 am

Dạ, thưa bác Phú đáng kính của diễn đàn:
Đoạn code tìm ƯSCLN ở trên, cháu đã test :)
Cảm ơn bác đã góp ý! :)
Tất cả các Function trên, nhiều cái cháu tính bằng tay còn không ra :)
Nên cháu mới chỉ viết code dựa trên bài viết có giới thiệu công thức tính toán. :)
À, bác đã biết qua, vậy bác test hộ cháu nhé. Có lỗi gì để cháu khắc phục luôn :)
Thân gửi bác !!... :x
Since 2008...
One love! :x

Hình đại diện của người dùng
vuathongtin
Điều hành viên
Điều hành viên
Bài viết: 1028
Ngày tham gia: CN 02/05/2010 10:03 pm
Đến từ: Xứ sở DG
Has thanked: 2 time
Been thanked: 105 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi vuathongtin » T.Bảy 21/05/2011 6:30 am

Một số bài khác :
1. Đổi cơ số (chuyển nhanh giữa các cơ số: 8, 10, 16)
http://www.caulacbovb.com/forum/viewtopic.php?f=30&t=1174

hoặc
  1. Public Function doiso(ByVal k As Byte) As String
  2. Select Case k
  3.      Case 10: doiso = "A"
  4.      Case 11: doiso = "B"
  5.      Case 12: doiso = "C"
  6.      Case 13: doiso = "D"
  7.      Case 14: doiso = "E"
  8.      Case 15: doiso = "F"
  9.      Case Else '0..9'
  10.         doiso = Str(k)
  11. End Select
  12. End Function
  13. Public Function doichu(ByVal k As String) As Byte
  14. Select Case UCase(k)
  15.      Case "A": doichu = 10
  16.      Case "B": doichu = 11
  17.      Case "C": doichu = 12
  18.     Case "D": doichu = 13
  19.      Case "E": doichu = 14
  20.      Case "F": doichu = 15
  21.      Case Else '0..9'
  22.        doichu = Val(k)
  23. End Select
  24. End Function
  25. Public Function doi(ByVal n As Long, h As Byte) As String
  26.    doi = ""
  27. Do While n > 0
  28.    doi = Trim(doiso(n Mod h)) + doi
  29.    n = n \ h
  30. Loop
  31. End Function
  32. Public Function chuyen(ByVal s As String, h As Byte) As Long
  33. chuyen = 0
  34.        For i = 1 To Len(s)
  35.             chuyen = chuyen + doichu(Mid(s, i, 1)) * h ^ (Len(s) - i)
  36.       Next i
  37. End Function
  38.  
  39.  


2. Phân tích thừa số nguyên tố
  1. Function phantichthuaso_ngto(ByVal n As Integer) As String
  2.   i = 2
  3. Dim S As String
  4.   While (i <= n)
  5.         If ((n Mod i = 0)) Then
  6.              n = n \ i
  7.              If (n = 1) Then
  8.                  S = S & i & " "
  9.              Else
  10.                 S = S & i & " " & "*" & " "
  11.              End If
  12.          Else
  13.              i = i + 1
  14.          End If
  15. Wend
  16.  phantichthuaso_ngto = S
  17. End Function


3. Kiểm tra số chính phương
là số có bình phương căn bậc 2 của nó bằng chính nó . Ví dụ : 9 = 3*3

Cách 1:
  1. Function ChinhPhuong(n As Integer) As Boolean
  2.     ChinhPhuong = False
  3.         For i = 1 To n / 2
  4.            If i * i = n Then
  5.              ChinhPhuong = True
  6.           End If
  7.       Next
  8. End Function


Cách 2:dựa vào công thức :
n là chính phương <=> n= căn(n)^2

  1. Function ChinhPhuong(n As Integer) As Boolean
  2.     ChinhPhuong = False
  3.            If n = (Fix(sqr(n)))^2 Then
  4.              ChinhPhuong = True
  5.           End If
  6. End Function


(chú ý : đừng nhầm căn(n)^2 với (căn(n))^2)

4. Số pitago : là số bình phương của số đó bằng tổng bình phương của 2 số nguyên khác
Ví dụ: 10 là số pitago vì 10^2=6^2 + 8^2

  1. Function sopitago(n As Integer) As Boolean
  2. For i = 1 To n – 2
  3.   For j = i+1 To n – 1
  4.      If (i ^ 2 + j ^ 2 = n ^ 2) Then sopitago = True: Exit Function
  5.   Next j
  6. Next i
  7. sopitago = False
  8. End Function
Bùi Thành Nhân
CNTT-Sở Thông tin & Truyền thông tỉnh Phú Yên
giasulaptrinh.com
Skype:vuathongtin

Hình đại diện của người dùng
bangnhatquang68
Guru
Guru
Bài viết: 791
Ngày tham gia: T.Ba 26/01/2010 12:44 pm
Đến từ: Vĩ tuyến 17
Has thanked: 20 time
Been thanked: 37 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi bangnhatquang68 » T.Năm 16/06/2011 6:31 am

UCLN
dùng đệ quy tính thử xem thế nào? :(
  1.  Function UCLN(ByVal a As Long, ByVal b As Long) As Long
  2.     If ((a = 0) Or (b = 0)) Then  USCLN = 1: Exit Function
  3.     Dim num As Long = (b Mod a)
  4.     If (num = 0) Then  USCLN = a: Exit Function
  5.     UCLN(num, a)
  6. End Function
  7.  
Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

Hình đại diện của người dùng
bangnhatquang68
Guru
Guru
Bài viết: 791
Ngày tham gia: T.Ba 26/01/2010 12:44 pm
Đến từ: Vĩ tuyến 17
Has thanked: 20 time
Been thanked: 37 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi bangnhatquang68 » T.Sáu 12/08/2011 8:04 pm

@Hoành:
rảnh thì em test lại cái phương trình bậc 3 ấy. anh kiểm tra thấy thằng này là hàng tự chế MADE TIN VỊT đó
anh test thử mà hình như nó ko chính xác cho lắm. có thể có vấn đề
Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

shilroad
Bài viết: 1
Ngày tham gia: T.Tư 28/12/2011 3:02 am

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi shilroad » T.Tư 28/12/2011 6:25 pm

bạn VuVanHoanh ơi cho mình xin nick yahoo với nha , mình có 1 số vấn đề hok hiễu lắm ỡ code " Tìm USCLN và BSCNN " nick mình là : maximas1900 . mong bạn giúp đỡ mình , thank bạn

thuthuy.vitcon
Bài viết: 1
Ngày tham gia: T.Ba 17/01/2012 10:26 am

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi thuthuy.vitcon » T.Ba 17/01/2012 10:48 am

Tính giá trị biểu thức:
tg(x) - 3 Nếu x < 0
S = sin(x) + 2cos(y) Nếu 5 > x > 0
2x3 + y Trong các trường hợp còn lại
ai bit lam,giup t voi!
thank nhiu!

OKMimo
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 445
Ngày tham gia: T.Sáu 11/02/2011 3:36 pm
Has thanked: 107 time
Been thanked: 56 time

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi OKMimo » T.Ba 17/01/2012 11:31 am

Tính giá trị biểu thức:
tg(x) - 3 Nếu x < 0
S = sin(x) + 2cos(y) Nếu 5 > x > 0
2x3 + y Trong các trường hợp còn lại
ai bit lam,giup t voi!
thank nhiu!


bạn thử nhé
  1. Private Sub Command1_Click()
  2. Dim x As Double, y As Double
  3. x = InputBox("nhap x=")
  4. y = InputBox("nhap y=")
  5. If Val(x) < 0 Then
  6. MsgBox "S= tan(x)-3 = tan(" & x & ")-3 = " & Tan(x) - 3
  7. ElseIf (Val(x) > 0 Or Val(x) < 5) Then
  8. MsgBox "S= sin(x)+2cos(y) = sin(" & x & ")+2cos(" & y & ") = " & Sin(x) + 2 * Cos(y)
  9. Else
  10. MsgBox "S= 2x^3+y = 2" & x & "^3+" & y & ") = " & 2 * x ^ 3 + y
  11. End If
  12. End Sub

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi VuVanHoanh » T.Ba 17/01/2012 12:31 pm

:D Đã hơn 3 hay 4 tháng rồi, VuVanHoanh không thể lên diễn đàn sinh hoạt cùng với câu lạc bộ được vì bận ôn thi :D giờ thi xong rồi thì VuVanHoanh lại trở lại :D
@shilroad: :D có gì thì bạn cứ trao đổi trực tiếp trên đây, mình giải thích cho :D chứ đừng pm Yahoo mình nha :D
@thuthuy.vitcon: code bạn OK Mimo đã giải rồi đó :D Mình không còn ý kiến gì. :D
Since 2008...
One love! :x

Hình đại diện của người dùng
bangnhatquang68
Guru
Guru
Bài viết: 791
Ngày tham gia: T.Ba 26/01/2010 12:44 pm
Đến từ: Vĩ tuyến 17
Has thanked: 20 time
Been thanked: 37 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi bangnhatquang68 » T.Ba 15/05/2012 6:21 pm

Chấc ngồi chơi tự dưng nghĩ cách giải pt bậc 3. tuy nó hơi chậm chậm :D đơn thuần về toán sơ cấp thôi

AX^3 + BX^2+ CX + D =0

<=>(x- k)(ax^2 + bx + c ) =0
a= A
b = B - kA
c = D/k
hệ số k được xác định bằng

chạy vòng lặp:
x(i+1) = xi - (AXi^3 + BXi^2+ CXi + D)/(3Axi^2 + 2Bxi + C)

giá trị được chấp nhận khi (x(i+1) - xi )<= esilon

tA có k vậy sẽ thu được pt bậc 2, giải pt bậc 2 thì OK rồi nhỉ?


tương tụ nếu với hàm f(x) =Ai*X^n +A(i-1)*X^(n-1)+..... +A0
<=> f(x)= (X - B0)g(x) = (X-B0)(X- B1)h(x)=....
<=> f(x)=(X-B0)(X-B1)(...)(X-Bn)

có thể giải được theo cách này, mặt dù rất phức tạp phải tại đệ quy hoặc vòng lặp khi giải nghiệm nhưng sẽ ra :)
Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi VuVanHoanh » T.Ba 15/05/2012 6:24 pm

haizz, em mò wikipedia, rồi chế biến code theo công thức cả... :|
Since 2008...
One love! :x

century
Bài viết: 1
Ngày tham gia: T.Tư 04/11/2015 8:47 am

Re: Một số mã tính công thức toán học đơn giản

Gửi bàigửi bởi century » T.Tư 04/11/2015 8:53 am

Anh chị ơi, em đang làm bài tập phải nộp ạ, đề : xác định xem AB có cắt đường tròn (0;R) không, biết tọa độ A,B,O và bán kính R. Mong anh chị giúp đỡ em ạ, em cảm ơn !!!


Quay về “[VB] Bài viết hướng dẫn”

Đ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.2 khách