【问题标题】:Modal Value, and Repetition模态价值和重复
【发布时间】:2015-07-19 03:37:20
【问题描述】:

我想做一个模态值计算器,所以它计算模态值及其重复

我们的想法是制作一个数据列表及其重复,如任何图表所示。

这是我开始的代码:

Public Class

Dim a1(100), a2(100), Rep(100), RepMer(100), AMer(100) As Single, n, count, m As Single, z, k, c, mars As Integer
    n = InputBox("How many data?", "RepTest")

    count = 0

    For count = 0 To n - 1
        a1(count) = InputBox("Add Value", "RepTest")
    Next

    z = n
    For run = 0 To n - 1
        mars = c
        z = z - 1
        k = 0
        For moon = 0 To (n - 1)

            If a1(z) = a1(moon) Then
                k = k + 1
                a2(run) = a1(z)
                Rep(run) = Rep(run) + k
                If Rep(run) > 2 Then
                    Rep(run) = Rep(run) - 1
                 End If

            End If
        Next

        MsgBox(a2(run)), , "Modal Value")
        MsgBox(Rep(run)),, "Repetition")

    Next

End Class

但是,如果您在第二个主循环之外制作按摩框,则必须制作另一个具有相同值 0 To (n-1) 的循环,以匹配数组中的数据位置。

我希望你帮助我的是:

我必须将模态值和一个值的重复值保存在数组中的同一位置,因为如果使用此代码,则 n = 5 的输出并输入值 2 ,2 ,2 ,1,1。输出将是 5 个按摩盒,其中 3 个等于值 2,2 个等于值 1。

您可以自己测试复制代码并将其插入到 VB.net 中的表单中。


有图片:

查看此链接:Picture that describe the result

您可以看到每个值的输出不止一个,那么如何将值及其重复存储在数组中的一个位置?


感谢您的阅读,我想要一个代码答案。 :)

【问题讨论】:

  • 乍一看,您的代码存在重大问题。首先,你的类没有名字——你应该得到一个编译器错误。此外,您正在执行方法或函数之外的代码。你不能那样做。
  • 不,我把这个贴给你,让你在班级之间复制代码。
  • 但一切正常,如图所示。
  • 我不问你错误,我问你:如何更改此代码以每次重复输出一个值及其值。那么,我必须使用什么最佳对数来输出模态值及其在数组中一个位置的重复。 (代码是我能做的,但如果你可以创建另一个代码来计算数据的模态值及其重复,那就去吧!)。

标签: arrays vb.net math


【解决方案1】:

更新
如果您想计算值的重复(重复),然后根据您的需要使用它:

  • 创建自定义类,您可以在其中保存有关重复值和数量的信息
Public Class RepetitionValue
    Public Property Value As Single
    Public Property RepetitionAmount As Int32

    Public Sub New(value As Single)
        Me.Value = value
        Me.RepetitionAmount = 1
    End Sub
End Class    
  • 收集值并计算重复项,然后将其保存在Directory 集合中
    使用 Directory,您可以轻松按值获取对象
  • 使用集合来操作数据
Public Sub YourSybName()
    Dim values As New List(Of Single)()
    Dim numberOfData As Int32 
    numberOfData = Int32.Parse(InputBox("How many data?", "RepTest"))
    For count As Int32 = 0 To numberOfData - 1
        values.Add(InputBox("Add Value", "RepTest"))
    Next
    Dim modals As New Dictionary(Of Single, RepetitionValue)()
    For Each value As Single In values
        If modals.ContainsKey(value) = True Then
            modals(value).RepetitionAmount += 1
        Else
            modals.Add(New RepetitionAmount(value))
        End If
    Next
    'Use collection for your needs 
    'For example if I have 5 data, then I enter 1 . 5 . 1 . 2 . 1. 
    'then I want to divide repetition of value 1 by repetition of value 5. 

    Dim valueOf1 As RepetitionValue = modals(1)
    Dim valueOf5 As RepetiotionValue = modals(5)
    Dim divideResult As Decimal = valueOf1.RepetitionAmount/valueOf5.RepetitionAmount
End Public

【讨论】:

  • 但是你看到有一个问题,例如我想要值 2 来显示它在数据中重复了多少次输出为每次重复给出值 2,我不想要这个我想让程序说模态值 2 例如重复 5 次,然后继续另一个数字或值。感谢您的回复:)
  • 谢谢你,:) 它的工作。但是我想在某些东西中重用输出数据,你能帮我吗?所以我想知道哪些变量存储值,哪些值存储重复,用它来制作显示值及其重复的图形。
  • 请您再解释一下。例如,如果我有 5 个数据,那么我输入 1 。 5. 1. 2. 1.然后我想将值1的重复值除以值5的重复值。我该怎么办?谢谢,尽快回复:)
  • 还有一件事,这些代码我应该插入到表单还是vb代码文件中?
  • 不管你把代码放在哪里,可以在Form中,也可以在自己的文件中
猜你喜欢
  • 1970-01-01
  • 2020-01-26
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多