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

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

06.11.2012, 20:45. Показов 2492. Ответов 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
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,691
Записей в блоге: 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
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,691
Записей в блоге: 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
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,691
Записей в блоге: 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
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,691
Записей в блоге: 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
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,691
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru