Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 40
1

Найти количество повторяющихся элементов в массиве

21.12.2013, 12:19. Показов 4583. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят выручайте, помогите вывести в лейбл5 количество повторяющихся эллементов в массиве...вот код..((
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim X(10) As Integer
        Dim a As Integer
        Dim b As Integer
        Dim i As Integer
        Randomize()
        a = TextBox1.Text
        b = TextBox2.Text
        For i = 0 To 10
            X(i) = Int((b - a + 1) * Rnd() + a) 'Заполнение массива
        Next i
        Dim foundedIndex As Integer = -1
        For i = 0 To X.Count - 1
            If TextBox3.Text = "" Then
                MsgBox("Введите искомое значение!")
                Exit Sub
            End If
        If X(i) = CInt(TextBox3.Text) Then
            foundedIndex = i
            MsgBox("Эллемент найден!")
            Exit For
        End If
        If i + i > i * 2 Then
            Label5.Text = "2"
        End If
        Next
        If foundedIndex = -1 Then
            MsgBox("Элемент не найден")
        End If
    End Sub
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2013, 12:19
Ответы с готовыми решениями:

Как узнать количество элементов в массиве
Вобщем так, считал все строки текстового файла в массив строк, и хотел уже писать условие отбора...

В массиве вычислить количество и сумму элементов, удовлетворяющих условию
задан массив(n=20) x{-20$15$3;-9;7;-6;14;-13;6;-7;9;-12;5;7;-2;17;10;-1;16;-3}. в заданном массиве...

Найти количество не повторяющихся элементов в массиве
Знаю что условие в цикле не то, но больше в голову нечего не лезет. У кого идеи есть? #include...

найти количество повторяющихся элементов в массиве
//найти количество повторяющихся элементов в массиве (решить алгоритмически) //вот наброски...

11
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
24.12.2013, 03:16 2
NikVayne, А код-то чем не нравится?


VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        Label1.Text = ""
        Dim Mass(10) As Integer
        Dim R As New Random
        For I As Integer = 0 To Mass.Length - 1
            Mass(I) = R.Next(0, 10)
            Label1.Text &= Mass(I) & " "
        Next
        Dim Search As Integer = 2 'У Вас из TextBox
        Dim Count As Integer = 0
 
 
        For Each I As Integer In Mass
            If Search = I Then Count += 1
        Next
        Me.Text = Count
1
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,096
Записей в блоге: 1
11.09.2014, 20:48 3
Цитата Сообщение от Памирыч Посмотреть сообщение
Памирыч
А если этот же код для слов?
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
11.09.2014, 20:57 4
Anderis49, я смотрю сейчас на код, и не пойму - что я там искал?
Судя по коду, в массиве ищется, сколько раз встречается заданное значение - в коде это двойка.

А какая задача у Вас? Если можно, на словесном примере.
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
11.09.2014, 23:49 5
Определить в массиве строк число элементов массива значение которых равно srh:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim str() As String = {"vvv", "ee", "frt", "vvv", "yy", "vvv"}
    Dim srh As String = "vvv"
    Dim ind As Integer = Array.IndexOf(str, srh)
    Dim count As Integer
    If ind >= 0 Then
        count += 1
        Do Until ind < 0
            ind = Array.IndexOf(str, srh, ind + 1)
            count += 1
        Loop
        count -= 1
    End If
    MsgBox(count.ToString)
End Sub
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,096
Записей в блоге: 1
12.09.2014, 12:46 6
Цитата Сообщение от Памирыч Посмотреть сообщение
А какая задача у Вас? Если можно, на словесном примере.
У меня задача из двух текстов выбрать слова, которых нет в текстах.
Например:
Текст 1-й.
"Мама жарит рыбу на сковородке."
Текст 2-й.
"Мама рыбу на плите."

Должно получиться:
- в 1-м листбоксе - "жарит" и "сковородке"
- во 2-м листбоксе - "плите"

Пробовал перебором с удалением одинаковых слов. Теоретически получается, но на практике получается то "сковородке" и "жарит", то "жарит" и "сковородке".... Отчего это зависит никак не могу отловить.
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
12.09.2014, 12:53 7
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Anderis49, попробуйте так
VB.NET
1
2
3
4
5
6
        Dim Str1() As String = TextBox1.Text.Split
        Dim Str2() As String = TextBox2.Text.Split
        Dim T1 As String = String.Join(" ", Str1.Except(Str2).ToArray)
        Dim T2 As String = String.Join(" ", Str2.Except(Str1).ToArray)
        TextBox1.Text = T1
        TextBox2.Text = T2
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,096
Записей в блоге: 1
12.09.2014, 15:45 8
Цитата Сообщение от Памирыч Посмотреть сообщение
попробуйте так
Сравните результат работы вашего кода.

На первой картинке всЁ работает так, как надо.
Во второй раз ввел другой текст, в коде ничего не менял.
Обратите внимание на вторую картинку.

Куда делись буквы "в"?

Код и текст прилагаю.
Миниатюры
Найти количество повторяющихся элементов в массиве   Найти количество повторяющихся элементов в массиве  
Вложения
Тип файла: rar Compare Text7.rar (10.3 Кб, 3 просмотров)
Тип файла: txt Text.txt (285 байт, 3 просмотров)
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
12.09.2014, 15:54 9
Цитата Сообщение от Anderis49 Посмотреть сообщение
Куда делись буквы "в"?
Возможно, я неверно понял задачу, но буква присутствует в обоих текстах наравне, как и множество других слов, которые были выпущены.

В первый результат она не попадает, так как присутствует во втором текстбоксе.
Она не попадает и во второй результат, так как аналогично присутствует в первом
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,096
Записей в блоге: 1
12.09.2014, 16:25 10
Цитата Сообщение от Памирыч Посмотреть сообщение
Возможно, я неверно понял задачу, но буква присутствует в обоих текстах наравне, как и множество других слов, которые были выпущены.
Посмотрите на это....

Изменить только в одном окне текст, но буква "в" и в этом случае отсутствует...прямо наваждение какое-то....то так, то - этак.

Почему слова "только" и "том" есть, а буквы "в " между ними - НЕТ!!!
Миниатюры
Найти количество повторяющихся элементов в массиве  
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
12.09.2014, 17:01 11
Цитата Сообщение от Anderis49 Посмотреть сообщение
а буквы "в " между ними - НЕТ!!!
Потому что она встречается в других частях текста, например, во фразе "в свое удовольствие"

Если буква встречается в обоих текстах, она не будет выведена, а она присутствует и в первом, и во втором.

Я понимаю, что это не то, что хотелось бы, но программа - не человек, это для нас "в" привязано к каким-то словам, для нее это всего лишь элемент массива, и ей неважно - в середине она его нашла или в конце в отрыве от других слов

Выход, возможно, есть, но тогда придется пересмотреть логику подхода к этому вопросу в корне.
Лично я не знаю, как бы я на месте программы определял, что вот в этом случае можно удалить букву, а вот в том - нет, даже если он встречается и там, и там. А когда кодер не знает, что делать логически, то и его программа об этом никогда не узнает
1
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,096
Записей в блоге: 1
12.09.2014, 17:35 12
Цитата Сообщение от Памирыч Посмотреть сообщение
Если буква встречается в обоих текстах, она не будет выведена, а она присутствует и в первом, и во втором.
Странно, я думал, что сравнение идет по словам - тут есть слово "прощай", и там слово "прощай", тут есть слово "всегда" а там этого слова нет и это слово - "всегда" - записывается в переменную.
Например:
Первое НЕ совпадение - слово "там" отсутствует в одном из окон и записывается в переменную "отслов", далее слово "в" тоже отсутствует в одном из окон и тоже записывается в переменную "отслов".

Теперь в переменной "отслов" уже два слова - "там" и "в".

Затем проверяется третье слово - "темноте". Его тоже нет в окне и оно добавляется в переменную "отслов".
Теперь в переменной "отслов" уже ТРИ слова - "там", "в" и "темноте".

Я пытался выявить разницу перебором слов
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        ListBox1.Items.Clear()
        ListBox2.Items.Clear()
        ListBox3.Items.Clear()
 
        Dim kls, dtr, sd As Integer
        Dim j As Integer = -1
        Dim ta1() As String = Split(RichTextBox1.Text, " ")
        Dim ta2() As String = Split(RichTextBox2.Text, " ")
        sd = Math.Abs(ta1.Count - ta2.Count)
        If ta1.Count > ta2.Count Then
            kls = ta2.Count
        Else
            kls = ta1.Count
        End If
       
        For i = 0 To kls - 1
            j = j + 1
            If String.Compare(ta1(i), ta2(j)) = 0 Then
                ListBox1.Items.Add(ta1(i) & "  ta1 " & i)
                ListBox2.Items.Add(ta2(j) & "  ta2 " & j)
            Else
                i = i + 1
                ListBox3.Items.Add(ta1(i))
            End If
        Next
    End Sub
но и в этом случае глюки в пропуском слов, состоящих из одной буквы имеются.

Добавлено через 8 минут
Или вот другой код

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim searchString As String
        Dim kls As Integer
        Dim ta1() As String = Split(RichTextBox1.Text, " ")
        Dim ta2() As String = Split(RichTextBox2.Text, " ")
        ListBox1.Items.Clear()
        ListBox2.Items.Clear()
        For i = 0 To ta1.Count - 1
            ListBox1.Items.Add(ta1(i))
        Next
        For i = 0 To ta2.Count - 1
            ListBox2.Items.Add(ta2(i))
        Next
        '/  Dim searchString As String = TextBox1.Text
        ' Ensure we have a proper string to search for.
        If ta1.Count > ta2.Count Then
            kls = ta2.Count
        Else
            kls = ta1.Count
        End If
        Dim index As Integer
        Dim textEnd As Integer = RichTextBox1.TextLength
        For i = 0 To kls - 1
            searchString = ListBox2.Items(i)
            If searchString <> String.Empty Then
                ' Find the item in the list and store the index to the item.
                Dim ind As Integer = ListBox1.FindString(searchString)
                ' Determine if a valid index is returned. Select the item if it is valid.
                If ind <> -1 Then
                    ListBox1.SetSelected(ind, True)
                    ListBox1.Items.RemoveAt(ind)
                Else
                    ' MessageBox.Show("The search string did not match any items in the ListBox")
                End If
            End If
        Next
        For i = 0 To ListBox1.Items.Count - 1
            RichTextBox1.Find(ListBox1.Items(i), index, textEnd, RichTextBoxFinds.WholeWord)
            RichTextBox1.SelectionFont = New Font("Verdana", 12, FontStyle.Bold)
            RichTextBox1.SelectionColor = Color.Red
            index = RichTextBox1.Text.IndexOf(ListBox1.Items(i), index) + 1
        Next
    End Sub
если в одно окно поместить текст -

Он делал это в столице, в свое удовольствие.
а в другое окно -

Он делал , в свое удовольствие.
то выделяется

Он делал это в столице, в свое удовольствие.
Т.е. первое слово "в" не захватывается кодом, а второе "в" кодом обрабатывается.

ПОЧЕМУ?
0
12.09.2014, 17:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2014, 17:35
Помогаю со студенческими работами здесь

В целочисленном массиве найти количество повторяющихся элементов
В целочисленном массиве нужно найти количество повторяющихся элементов. Как это сделать кто-то...

В массиве М из 10 целых чисел найти количество повторяющихся элементов
Помогите решить 6 задач по одномерным массивам пожалуйста. 1)Для массива K из 12 вещественных...

В заданном одномерном массиве из n элементов найти количество повторяющихся чисел
В заданном одномерном массиве из n элементов найти количество повторяющихся чисел. Он выводит если...

Количество повторяющихся элементов в массиве
Даны натуральное n и целые a1, a2, ..., an. Для каждого аi найти ki количество его повторов ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru