Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
14 / 2 / 2
Регистрация: 29.03.2011
Сообщений: 242

Определить, сколько раз в предложении встречается данный символ

06.11.2012, 20:45. Показов 2521. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
дан текст. сколько раз в нем встречается символ"+" и сколько раз символ "*"

какая команда используется?

и как((

INSTR?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2012, 20:45
Ответы с готовыми решениями:

Дан текст на русском языке. Определить сколько раз встречается в нем самое короткое слово
Уже долго сижу над данной задачей. Плохо понимаю тему работы с файлами и текстом. Объясните пожалуйста как это все делается.

Дано число а. Определить, сколько раз это число встречается в массиве T(n,n)
Дано число а. Определить, сколько раз это число встречается в массиве T(n,n).

Сколько раз первая цифра встречается в данном числе
Сколько раз первая цифра встречается в данном числе? Арифметику, к сожалению, не учил, прошу помочь.

13
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38197 / 21130 / 4309
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
06.11.2012, 20:49
Лучший ответ Сообщение было отмечено как решение

Решение

Это нужно программировать. Примерно так:

Visual Basic
1
2
3
4
5
6
7
8
Function howMany(Txt as string, sym as string) As long
    p&=1
    Do 
        p&=Instr(p&,Txt,sym)
        if p&=0 then exit Do
        HowMany=HowMany+1
   Loop
End Function
3
14 / 2 / 2
Регистрация: 29.03.2011
Сообщений: 242
06.11.2012, 20:52  [ТС]
а без функции ни как?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38197 / 21130 / 4309
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
06.11.2012, 20:56
Можно и без функции...

Visual Basic
1
2
3
4
5
Function howMany(Txt as string, sym as string) As long
     for i&=1 to len(Txt)
         if mid$(Txt,i&,1)=sym then howMany=howMany+1
     next i&
End Function
Но с Instr быстрее. А "никак" пишется слитно.
1
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
06.11.2012, 21:18
Лучший ответ Сообщение было отмечено как решение

Решение

Catstail, а так можно?
Visual Basic
1
2
3
Function howMany(Txt As String, sym As String) As Long
        howMany = UBound(Split(Txt, sym))
End Function
5
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38197 / 21130 / 4309
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
06.11.2012, 21:22
Думаю, да. А будет работать, если sym - не один символов, а несколько... Сейчас проверю. Да, работает. А вот что быстрее - вопрос.
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
06.11.2012, 21:36
Или так
Visual Basic
1
howMany = Len(txt)-Len(Replace$(txt, sym, ""))
Если sym состоит из более чем одного символа, то
Visual Basic
1
howMany = (Len(txt)-Len(Replace$(txt, sym, "")))/Len(sym)
2
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
06.11.2012, 21:43
Цитата Сообщение от SoftIce Посмотреть сообщение
howMany = UBound(Split(Txt, sym))
Неожиданно, интересно !
2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38197 / 21130 / 4309
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
06.11.2012, 22:08
Кстати, а в первом моем коде ошибочка... Правильно вот так:

Visual Basic
1
2
3
4
5
6
7
8
9
Function howMany(Txt as string, sym as string) As long
    p&=1
    Do 
        p&=Instr(p&,Txt,sym)
        if p&=0 then exit Do
        HowMany=HowMany+1
        p&=p&+1
   Loop
End Function
1
06.11.2012, 22:08

Не по теме:

Pro_grammer, https://www.cyberforum.ru/post2826672.html - неожиданно, интересно !:D

1
07.11.2012, 07:56

Не по теме:

Апострофф, это легкий сарказм - у меня дурной характер

1
07.11.2012, 08:16

Не по теме:

Pro_grammer, извини:-[, не хотел обидеть!
Просто этому баяну уже немало лет

1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38197 / 21130 / 4309
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
07.11.2012, 10:47
Лучший ответ Сообщение было отмечено как решение

Решение

Вот комплексный тест всех приведенных выше способов... Самый быстрый вариант - с INSTR (по крайней мере, на моем ПК), самый медленный - прямой перебор (в десятки раз медленнее).

Visual Basic
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Private Declare Function GetTickCount Lib "kernel32" () As Long
 
Function hM0(Txt As String, sym As String) As Long
    p& = 1
    Do
        p& = InStr(p&, Txt, sym)
        If p& = 0 Then Exit Do
        p& = p& + 1
        hM0 = hM0 + 1
   Loop
End Function
 
Function hM1(Txt As String, sym As String) As Long
     For i& = 1 To Len(Txt)
         If Mid$(Txt, i&, 1) = sym Then hM1 = hM1 + 1
     Next i&
End Function
 
Function hM2(Txt As String, sym As String) As Long
        hM2 = UBound(Split(Txt, sym))
End Function
 
Function hM3(Txt As String, sym As String) As Long
         hM3 = Len(Txt) - Len(Replace$(Txt, sym, ""))
End Function
 
Function hM4(Txt As String, sym As String) As Long
         hM4 = (Len(Txt) - Len(Replace$(Txt, sym, ""))) / Len(sym)
End Function
 
Sub Test()
 
    BigBuf$ = ""
    
    For j% = 1 To 255
        BigBuf$ = BigBuf$ + Chr$(j%)
    Next j%
    
    For i% = 1 To 5
        BigBuf$ = BigBuf$ + BigBuf$
    Next i%
    
    
    Stt& = GetTickCount
    For i% = 1 To 10000
        k& = hM0(BigBuf$, "*")
    Next i%
    Stp& = GetTickCount
    Debug.Print "INSTR: "; Stp& - Stt&
    
    ' Исключен из теста за очевидной медленностью...
    
    'Stt& = GetTickCount
    'For i% = 1 To 10000
    '    k& = hM1(BigBuf$, "*")
    'Next i%
    'Stp& = GetTickCount
    'Debug.Print "FOR: "; Stp& - Stt&
    
    
    Stt& = GetTickCount
    For i% = 1 To 10000
        k& = hM2(BigBuf$, "*")
    Next i%
    Stp& = GetTickCount
    Debug.Print "SPLIT: "; Stp& - Stt&
    
    Stt& = GetTickCount
    For i% = 1 To 10000
        k& = hM3(BigBuf$, "*")
    Next i%
    Stp& = GetTickCount
    Debug.Print "Replace$: "; Stp& - Stt&
    
    
    Stt& = GetTickCount
    For i% = 1 To 10000
        k& = hM4(BigBuf$, "*")
    Next i%
    Stp& = GetTickCount
    Debug.Print "Replace$ / Len: "; Stp& - Stt&
 
End Sub
4
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
07.11.2012, 11:31
Можно обобщить на случай Len(sym)>1 и сократить цикл:
Visual Basic
1
2
3
4
5
6
7
8
Function hM0(Txt As String, sym As String) As Long
    LenSym& = Len(sym)
    p& = InStr(1, Txt, sym)
    Do While p
        hM0 = hM0 + 1
        p = InStr(p + LenSym, Txt, sym)
    Loop
End Function
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2012, 11:31
Помогаю со студенческими работами здесь

Узнать, сколько раз второе предложение встречается в первом
Пожалуйста подскажите как написать прогу Данны два предложения,надо узнать сколько раз 2-ое предложение встречается в первом VB 6,0

Программа определяющая сколько раз встречается заданное число
Программа определяющая сколько раз встречается заданное число (вводиться с клавиатуры) в диапазоне от 10 до 352

Сколько раз данная цифра а встречается в целом черырехзначном числе
Сколько раз данная цифра а встречается в целом черырехзначном числе.

Подсчитать, сколько раз среди символов строки встречается буква «а»
Уважаемые форумчане сессия нависла над головой!!! Нужно решить 4 задачи, если вас незатруднит помогите пожалуйста! Собственно ВО_от: ...

Определить сколько раз в строке встречается данный символ. Строку вводить с клавиатуры
use16 org 100h jmp start s1 rb 53 endline db 10,13,$ count db 0 s2 rb 10 s db ' $' start:


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru