Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 9

Дано натуральное число, определить входит ли число a в число b

02.03.2013, 17:11. Показов 1700. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Command1_Click()
Dim c As Long
Dim x As Double
Dim a As Byte
c = Val(Text1.Text)
a = Val(Text2.Text)
k = True
Do While c >= 1
x = c Mod 10
If x = a Then k = False: MsgBox "Âõîäèò", 64, "": Exit Sub
c = Int(c / 10)
Loop
MsgBox "Íå âõîäèò", 64, "ïîïðîáóéå äðóãîå ÷èñëî":
End Sub
Нашел код, скажите пожалуйста, что тут делает :
Visual Basic
1
2
3
k = True
If x = a Then k = False: MsgBox "Âõîäèò", 64, "": Exit Sub
c = Int(c / 10)
Добавлено через 6 минут
И найти сколько раз повторяется число "a" в числе "с"
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2013, 17:11
Ответы с готовыми решениями:

Дано двузначное натуральное число. Получить число, записанное в обратном порядке
не могу найти оператор который меняет цифры местами, друг сказал что раньше использовался StrChange$ но что-то как-то не получается. ...

Дано натуральное число n. Получить наименьшее число вида 2^r, превосходящее n
Помогите решить эту задачу.Буду благодарен.

Дано натуральное число N. Найти наименьшее число
помогите в решении задачи

10
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
02.03.2013, 17:56
Если именно вхождение числа в число, то, новерное, проще работать как со строками используя Instr
А на вторую часть ответа Split
И таких примеров на форуме немеряно
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
02.03.2013, 21:15
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Daemon Посмотреть сообщение
И найти сколько раз повторяется число "a" в числе "с"
Да, со строками проще. А вот решение на целочисленной арифметике:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function AinB(a&, ByVal b&) As Long
        'возвращает число вхождений числа а в число b
Dim m&  'm - модуль числа а - мин. число кратное 10, которое >a
m = 10
While m <= a
    m = m * 10
Wend
While b
    If b Mod m = a Then
        AinB = AinB + 1
        b = b \ m
    Else
        b = b \ 10
    End If
Wend
End Function
Тесты в окне Immediate
Code
1
2
3
4
5
6
7
8
9
10
11
12
?ainb(123,124512)
 0 
?ainb(123,1234512)
 1 
?ainb(123,1245123)
 1 
?ainb(123,12345123)
 2 
?ainb(123,1231234512)
 2 
?ainb(123,1231234123)
 3
3
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
04.03.2013, 00:56
... работает в 2-3 раза быстрее, чем со Split
Visual Basic
1
2
3
Function AinBs(a&, b&) As Long
AinBs = UBound(Split(b, a))
End Function
1
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 9
06.03.2013, 22:46  [ТС]
Спасибо большое, но это слишком круто, надо что-то как в моем коде.
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
06.03.2013, 23:21
Daemon, сформулируй вопрос ещё раз на основе полученных ответов и исходя из своих приоритетов
0
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 9
06.03.2013, 23:55  [ТС]
Необходимо посчитать сколько раз число "а" повторяется в числе, которое мы ввели первым, то есть "с". К примеру, с = 12512
а = 2. Необходимо как-то показать, что в числе с, число а повторяется два раза.
Visual Basic
1
2
3
4
5
6
7
K = 0
Do While x > 0
R = x Mod 10
K = K + 1
x = x \ 10
DoEvents
Loop
Пока что так
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
07.03.2013, 07:04
Daemon, определитесь с понятием число, цифра, система счисления - иначе понять Ваш вопрос сложно
0
 Аватар для Андрэич
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
07.03.2013, 08:56
Цитата Сообщение от Daemon Посмотреть сообщение
Необходимо посчитать сколько раз число "а" повторяется в числе, которое мы ввели первым, то есть "с". К примеру, с = 12512, тогда а = 2. Необходимо как-то показать, что в числе с, число а повторяется два раза.
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
Function CountRepet(ByVal Digits, _
                    ByVal Repet) As Integer
' Аргументы функции: первый - число (последовательность цифровых символов)
' в котором нужно найти колич вхожденbй второго аргумента.
 
Dim i As Integer
 
    On Error GoTo Err_handle
    
' Преобразуем аргументы в текст для разбора:
    Digits = Format$(Digits)
    Repet = Format$(Repet)
    
' Перебираем посимвольно и считаем вхождения:
        For i = 1 To Len(Digits)
            If Mid(Digits, i, 1) = Repet Then CountRepet = CountRepet + 1
        Next i
        
MsgBox "Количество вхождений символа " & Repet & " в число " & _
        Digits & " - " & CountRepet, vbInformation, "Result"
        
Err_end:
        Exit Function
Err_handle:
        MsgBox Err.Number & ": " & Err.Description
        Resume Err_end
End Function
Добавлено через 21 минуту
Если искомое число состоит более, чем из одного разряда (23, 456, 4567), то попробуйте так:
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
Function CountRepet(ByVal Digits, _
                      ByVal Repet) As Integer
' Аргументы функции: первый - число (последовательность цифровых символов)
' в котором нужно найти колич вхожденbй второго аргумента.
 
Dim i As Integer, s As String
 
    On Error GoTo Err_handle
    
' Преобразуем аргументы в текст для разбора:
    Digits = Format$(Digits)
    Repet = Format$(Repet)
    
' Перебираем посимвольно и считаем вхождения:
        For i = 1 To Len(Digits)
            s = s & Mid(Digits, i, 1)
            If InStr(s, Repet) Then
                s = Mid(Repet, i + 1)
                CountRepet = CountRepet + 1
            End If
        Next i
        
MsgBox "Количество вхождений символа " & Repet & " в число " & _
        Digits & " - " & CountRepet, vbInformation, "Result"
        
Err_end:
        Exit Function
Err_handle:
        MsgBox Err.Number & ": " & Err.Description
        Resume Err_end
End Function
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
07.03.2013, 09:52
Цитата Сообщение от Daemon Посмотреть сообщение
надо что-то как в моем коде
В моем коде именно это и происходит: остаток от деления сравнивается с искомым числом. Отличие в том, что у Вас делитель 10, и он годится для искомого числа, состоящего из одной цифры. А у меня делителем m является число - единица и столько нулей, сколько цифр в искомом числе. Например если искомое число 2, то m=10; искомое число 56 - m=100; искомое число 100 - m=1000 и т.д.
Если искомое число найдено, от "большого" числа надо отбросить соответствующее число цифр, поэтому в стр. 11 производится целочисленное деление на m, а не на 10.
Поставьте точку останова на функции, пройдите по шагам (F8), наблюдая за переменными в окне Locals - все сразу станет понятно.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
07.03.2013, 21:11
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Command1_Click()
Dim a$, b$
a = 1010101
b = 101
MsgBox b & " in " & a & "  --->  " & k(a, b, 1)
End Sub
 
Function k%(s$, s1$, n)
  If Len(s) > 0 Then  k = k(Mid(s, n + 1), s1, n) - (Mid(s, n, Len(s1)) = s1)
End Function
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2013, 21:11
Помогаю со студенческими работами здесь

Дано дейстительное число а, натуральное число n
Здравствуйте! Не могли бы вы помочь мне с решением задачки в среде VB? Дано дейстительное число а, натуральное число n. обчислить...

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

Дано натуральное число. Определить сумму нечетных цифр числа.
Помогите с программным кодом пожалуйста и скажите как делать форму. Пожаааалуйста

Дано натуральное трехзначное число.Определить цифры этого числа (K, L, M)-Visual Basic
Дано натуральное трехзначное число. Определить цифры этого числа (K, L, M) и выяснить, можно ли построить произвольный треугольник K, L, M....

Дано натуральное число n. Определить входит ли цифра 3 в данное число.
Дано натуральное число n. Определить входит ли цифра 3 в данное число. Помогите решить пожалуйста.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru