Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Privet1997
0 / 0 / 0
Регистрация: 31.01.2017
Сообщений: 1
1

Проверить истинность высказывания: "Все цифры данного числа различны"

31.01.2017, 11:13. Просмотров 317. Ответов 5
Метки нет (Все метки)

Дано трехзначное число. Проверить истинность высказывания: "Все цифры данного числа различны"

Помогите пожалуйста написать программу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2017, 11:13
Ответы с готовыми решениями:

Проверить истинность высказывания: "Данное целое число является четным двузначным числом"
В задании данного пункта требуется вывести логическое значение True, если...

Проверить истинность высказывания: "Данное целое число является четным двузначным числом"
Проверить истинность высказывания: "Данное целое число является четным...

Все цифры данного четырехзначного числа N различны?
решите : Составить программу, печатающую значение true, если указанное...

Проверить истинность высказывания
Написать код. Даны два целых числа: А, В. Проверить истинность высказывания:...

Проверить истинность высказывания
даны числа x,y x1,y1,x2,y2. проверить истинность высказывания: "Точка с...

5
RoyDenzel
20 / 19 / 8
Регистрация: 15.07.2015
Сообщений: 75
31.01.2017, 13:00 2
Privet1997, первое, что в голову пришло

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
Option Explicit
 
Sub thread1910748()
    Debug.Print CheckNumber(32) 'вызов для любого числа Long
    Debug.Print CheckNumber(322)
    Debug.Print CheckNumber(312)
    Debug.Print CheckNumber(212)
End Sub
 
Function CheckNumber(ByVal iValue&) As String
    Dim i%, j%
    Dim st$
    Dim iCount%
    Dim result$
    st = CStr(iValue)
    ReDim iArr(1 To Len(st)) As Integer
    result = "Все цифры числа " & CStr(iValue) & " различны" 'дефолтное значение
    For i = 1 To Strings.Len(CStr(iValue)) 'перевод числа в массив
        iArr(i) = CInt(Right$((Left$(st, i)), 1))
    Next i
    iCount = 0 
    For i = 1 To UBound(iArr) 'перебор массива цифр
        For j = 1 To UBound(iArr)
            If iArr(i) = iArr(j) Then iCount = iCount + 1 'счетчик вхождений
        Next j
        'количество вхождений одной цифры не должно быть более 1
        If iCount > 1 Then result = "Число " & CStr(iValue) & " содержит повторяющиеся числа" 'меняем дефолтное значение, если хоть раз сюда попали
        iCount = 0 'сброс счетчика
    Next i
    CheckNumber = result
End Function
1
Vlad999
2810 / 1726 / 515
Регистрация: 02.11.2012
Сообщений: 4,305
31.01.2017, 13:48 3
для трехзначного можно так.
Visual Basic
1
2
3
tx = 375
s = IIf(Mid(tx, 1, 1) = Mid(tx, 2, 1) Or Mid(tx, 2, 1) = Mid(tx, 3, 1) Or Mid(tx, 1, 1) = Mid(tx, 3, 1), _
"Число " & tx & " содержит повторяющиеся числа", "Все цифры данного числа различны")
1
m-ch
5264 / 806 / 270
Регистрация: 25.02.2011
Сообщений: 1,124
Записей в блоге: 1
31.01.2017, 14:00 4
Функция возвращает True если все цифры различные и False если есть повторяющиеся цифры
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub www()
    Debug.Print CheckNum(32)
    Debug.Print CheckNum(322)
    Debug.Print CheckNum(312)
    Debug.Print CheckNum(212)
End Sub
 
Function CheckNum(ByVal n As Long) As Boolean
    Dim a(9) As Boolean, m As Long
    While n
        m = n Mod 10
        If a(m) Then Exit Function
        a(m) = True
        n = n \ 10
    Wend
    CheckNum = True
End Function
3
RoyDenzel
31.01.2017, 14:14
  #5

Не по теме:

m-ch, мозг взорвал...
крутое решение!

0
bedvit
599 / 159 / 18
Регистрация: 20.05.2016
Сообщений: 625
Записей в блоге: 6
01.02.2017, 13:04 6
Свои 50 копеек внесу.

Добавлено через 20 минут
По простому, навскидку...
Visual Basic
1
2
3
4
5
6
7
8
Sub www()
    Debug.Print ChNum(123)
    Debug.Print ChNum(313)
End Sub
 
Function ChNum(ByVal n As String) As Boolean
Dim Ch() As Byte: Ch = n: ChNum = Ch(0) <> Ch(2) And Ch(2) <> Ch(4) And Ch(0) <> Ch(4)
End Function
Добавлено через 1 час 42 минуты
Родился код/функция для сравнения совпадений любых символов Unicode в строке/числе.
Строка/число любой длины.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub www()
    Debug.Print ChNoRepet(123)
    Debug.Print ChNoRepet(313)
    Debug.Print ChNoRepet(1234567890)
    Debug.Print ChNoRepet(1234567891)
    Debug.Print ChNoRepet(1)
    Debug.Print ChNoRepet(11)
    Debug.Print ChNoRepet("123абсдА")
    Debug.Print ChNoRepet("123abcda")
End Sub
 
Function ChNoRepet(ByVal n As String) As Boolean
Dim Ch() As Byte, i As Long, j As Long
Ch = n
    For i = 0 To UBound(Ch) Step 2
        For j = i + 2 To UBound(Ch) Step 2
            If Ch(j) = Ch(i) And Ch(j + 1) = Ch(i + 1) Then Exit Function
    Next: Next
ChNoRepet = True
End Function
0
01.02.2017, 13:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2017, 13:04

Проверить истинность высказывания
Написать код. Даны числа х, у. Проверить истинность высказывания: «Точка с...

Проверить истинность высказывания: «Данные поля имеют разный цвет»
Написать код. Даны координаты двух различных полей шахматной доски x1, y1, x2,...

Проверить, содержит ли строка символы отличные от "+", "-", "*" и "/"
&quot;+&quot;, &quot;-&quot;, &quot;*&quot; и &quot;/&quot; вот начал, дальше не знаю что делать Sub rr() ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru