Страница: 1 | 2 | 3 | 4 | 5 | 6 |
Вопрос: Помогите кто нибудь.....
Добавлено: 18.02.09 19:27
Автор вопроса: WOL4ARA | ICQ: 366673111
народ такая задачка: В заданном массиве строк найти строку с максимальным количеством вхождений заданного символа.смог сделать только то чтоб строки складывались))) напишите кто нибудь код пожалуйста а то непонятно.
Ответы
Всего ответов: 76
Номер ответа: 1
Автор ответа:
WOL4ARA
ICQ: 366673111
Вопросов: 1
Ответов: 6
Профиль | | #1
Добавлено: 18.02.09 20:40
народ пожалуйста? или некто не знает?
Номер ответа: 2
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #2
Добавлено: 18.02.09 20:56
нЕкто знает. но кто этот нЕкто. циклом пройдись по всем строкам, и в каждой вызывай подсчет символа в строке. можно руками сделать через Mid или через поиск в строке(хз какой метод). Получишь массив циферок. Дальше пройдись по этому массиву и найди максимум. и все.
Номер ответа: 3
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #3
Добавлено: 18.02.09 21:03
Подсчет тоже можно через цикл с первого символа до последнего (Len) и внутри него поиск через Instr(позиция в строке, строка в какой ищем, 'символ, какой ищем', текстовое сравнение строк (в данном случае 1) )
Номер ответа: 4
Автор ответа:
fAndOrIn
Вопросов: 5
Ответов: 344
Профиль | | #4
Добавлено: 18.02.09 21:03
Номер ответа: 5
Автор ответа:
fAndOrIn
Вопросов: 5
Ответов: 344
Профиль | | #5
Добавлено: 18.02.09 21:08
... = ArrayOfStr(I)
Номер ответа: 6
Автор ответа:
AngryBadger
Вопросов: 33
Ответов: 245
Профиль | | #6
Добавлено: 18.02.09 21:14
А я как видимо легких путей не ищу, как обычно))
Option Explicit
Function Find(MyArray As Variant, MyString As String) As String
Dim i As Double
Dim i1 As Integer
Dim i2 As Integer
Dim arr1() As Integer
Dim item As Variant
i = 0
i2 = 0
ReDim arr1(UBound(MyArray))
For Each item In MyArray
i1 = 0
i2 = i2 + 1
For i = 1 To Len(CStr(item))
If Mid(item, i, 1) = MyString Then i1 = i1 + 1
Next i
arr1(i2) = i1
Next item
i2 = 0
For i1 = 1 To UBound(arr1)
If i1 = UBound(arr1) Then GoTo lastline
If CInt(arr1(i1)) > CInt(arr1(i1 + 1)) And i2 < arr1(i1) Then
i2 = CInt(arr1(i1))
Find = MyArray(i1)
End If
Next i1
lastline:
If CInt(arr1(UBound(arr1))) < i2 Then
Exit Function
Else
Find = (MyArray(UBound(arr1)))
End If
End Function
Sub test1()
Dim arr As Variant
Dim i As String
arr = Array("a", "aa", "avasa", "aaaaaa", "a", "aaaaa", "aaaaa"
i = Find(arr, "a"
Debug.Print i
End Sub
Номер ответа: 7
Автор ответа:
fAndOrIn
Вопросов: 5
Ответов: 344
Профиль | | #7
Добавлено: 18.02.09 21:21
Пожалуй, последний ответ смотрится убедительнее - видно, что старался!
Номер ответа: 8
Автор ответа:
WOL4ARA
ICQ: 366673111
Вопросов: 1
Ответов: 6
Профиль | | #8
Добавлено: 18.02.09 21:24
а можно глупый вопрос, что за база 1 он мне пишет что нет такого оператора)) или я что то не понимаю,
опять
Номер ответа: 9
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #9
Добавлено: 18.02.09 21:27
михаил, велкам в c++
Номер ответа: 10
Автор ответа:
AngryBadger
Вопросов: 33
Ответов: 245
Профиль | | #10
Добавлено: 18.02.09 21:37
Если ты про
Номер ответа: 11
Автор ответа:
fAndOrIn
Вопросов: 5
Ответов: 344
Профиль | | #11
Добавлено: 18.02.09 21:38
ВолЧара, а может все-же возьмешь первый пример, а? Его при желании тоже можно раздуть на несколько листов... Подумай хорошенько!
Номер ответа: 12
Автор ответа:
WOL4ARA
ICQ: 366673111
Вопросов: 1
Ответов: 6
Профиль | | #12
Добавлено: 18.02.09 21:39
))))) спасибо народ щас посижу и подумаю
Номер ответа: 13
Автор ответа:
AngryBadger
Вопросов: 33
Ответов: 245
Профиль | | #13
Добавлено: 18.02.09 21:45
fAndOrIn, а я пожалуй, посижу повтыкаю в то, что ты написал. Ловко как извернулся. ОПЫТ!
Номер ответа: 14
Автор ответа:
fAndOrIn
Вопросов: 5
Ответов: 344
Профиль | | #14
Добавлено: 18.02.09 22:07
А про все OPTION ... в данном случае стоит напомнить, если кто-то не знает(или забыл), что они должны быть размещщены в самом верху модуля кода.
Номер ответа: 15
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #15
Добавлено: 19.02.09 01:07