Получить все уникальные значения массива - VB
Формулировка задачи:
Есть таблица 4х4, в ней 16 значений, из них от 2 до 8 уникальны, а остальные дублируют эти значения. Я пытаюсь вывести эти уникальные значения в текстовое поле, но что-то у меня не получается т.к. я проболел тему массивов Посмотрите, пожалуйста, и скажите, что я делаю не так.
Извините если это покажется слишком просто/смешно, но я действительно не понимаю массивы
с выводом разобрался, нужно было просто переименовать переменную
но теперь в текстовом поле не выводит первое значение, а вместо него идут 3 подряд повторяющихся значения а 2
а так всё работает, но мне нужно чтобы значения сами выстраивались один за одним, а не я указывал им место..
Вобщем, я понял в чём проблема, но до меня не доходит как её решить
Весь массив забивается последним значением, стирая предыдущие, а как это исправить я не знаю..
Листинг программы
- Dim a1...a16 as String
- Dim mas(7) As String
- Dim x As Integer
- mas(x) = a1 ' т.к. это уже уникальное значение '
- If a1 <> a2 Then
- mas(x) = a2
- End If ' и так далее до а16 '
- For x = 0 To 7
- Text1.Text = Text1.Text & mas(x) & vbCrLf
- Next x
Листинг программы
- DIM x AS INTEGER[/BASIC] в [BASIC]DIM z AS INTEGER
Листинг программы
- mas(0) = a1
- If a1 <> a2 Then
- mas(1) = a2
- End If
- If a3 <> a2 And a3 <> a1 Then
- mas(2) = a3
- End If
- If a4 <> a1 And a4 <> a2 And a4 <> a3 Then
- mas(3) = a4
- End If
- For i = 0 To 7
- Text1.Text = Text1.Text & mas(i) & vbCrLf
- Next i
Решение задачи: «Получить все уникальные значения массива»
textual
Листинг программы
- Option Explicit
- Private Sub Комманда1_Click()
- Dim M(3, 3) 'массив
- Dim S()
- Dim R, C ' переменные циклов
- Cls ' чистим форму
- Dim Dict As Object
- Set Dict = CreateObject("Scripting.Dictionary")
- Randomize 'инициализируем генератор сл. чисел
- With Dict
- For R = 0 To 3 'gо всем строкам
- For C = 0 To 3 'по всем столбцам
- M(R, C) = Int(9 * Rnd) 'назначаем случайные от 0 до 8
- Print M(R, C);
- If .Exists(M(R, C)) Then
- .Item(M(R, C)) = .Item(M(R, C)) + 1
- Else
- .Add M(R, C), 1
- End If
- Next C
- Print ' печатаем на форму
- Next R
- End With
- Print "Количество повторений"
- S = Dict.keys
- For R = 0 To UBound(S)
- If Dict.Item(S(R)) <> 0 Then Print S(R) & " встретилась " & Dict.Item(S(R))
- Next R
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д