powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Задача с одним неизвестным...
5 сообщений из 5, страница 1 из 1
Задача с одним неизвестным...
    #32560316
Vovka_Morkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Кто подскажет чайнику каким образом можно решить такую задачу (в данном случае без привязки к среде программирования):

Нашему приложению возвращается целое число, количество цифр которого не известно. Просмотреть возвращённое значение мы не можем (приложение не имеет такой возможности)... В нашем распоряжении доступны только логические и математические операторы, которые могут сравнивать возвращённое значение с какими либо значениями либо применять математические операции.
Нам необходимо определить неизвестное возращённое значение и потом через IVR проговорить...
Существует ли стандартный алгоритм который оптимально сможет вычислить возвращённое неизвестное значение?

Возможно кто подскажит куда пойти мне с моим вопросом :)), не очень далеко только если можно...

Заранее благодарен за отклик.
...
Рейтинг: 0 / 0
Задача с одним неизвестным...
    #32560323
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ нашем распоряжении доступны только логические и математические операторы, которые могут сравнивать возвращённое значение с какими либо значениями либо применять математические операции.

странная какая-то задачка... в пределах изложенного решается ОЧЕНЬ просто:
полученное число умножаем на 1 (применять-томатематические операции можно!) в результате получаем искомое число.
А как его проговорить - эт уже сами думайте.
...
Рейтинг: 0 / 0
Задача с одним неизвестным...
    #32560553
Vovka_Morkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного поясню конечную цель для чего это всё нужно:
Не известное значение переменной нужно разложить на отдельные цифры и проговорить каждую в отдельности…
Если возвращённое значение равно 195, то нужно вычислить что первая цифра равна 1, вторая 9, третья 5 чтобы произнести заранее записанные (десять) голосовые фрагменты (Один – девять – пять). Повторюсь что количество цифр заранее не известно и нужен алгоритм для всех возможных комбинаций цифр. (ну или до миллиона хотя бы)
Если первая цифра =1 вернуть true и проговорить число «Один»
Если вторая цифра =0 вернуть false
Если вторая цифра =1 вернуть false
Если вторая цифра =2 вернуть false
Если вторая цифра =3 вернуть false

Если вторая цифра =9 вернуть true и проговорить цифру «девять»
Данный анализ проделать со всеми цифрами и проговорить их правильные значения.

В нашем распоряжении только следующий набор операторов:
parentheses ( )
multiplication * and division /
addition + and subtraction –
comparison expressions =, < >, >, <, > =, < =
logical expressions Not, And, Or

Теперь даже и не знаю нужно ли нам определять само число либо сразу пытаться разложить его по цифрам…
Возможно ли в принципе имея указанный набор операторов без гимора разложить n-ое число на отдельные цифры?
Не силён в области программирования поэтому обращаюсь к светлым умам.

Заранее благодарен за совет.
...
Рейтинг: 0 / 0
Задача с одним неизвестным...
    #32560658
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
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.
Private Function Digit(n As Double) As Long
Dim r As Double
Dim d As Integer  'цифра которую надо произнести'
Dim d1 As Long    

    'выгод из рекурсии'
    If n <  0 . 1  Then Exit Function
    'd1 - число округленное до 10'
    d1 = Digit(n /  10 ) *  10 
    'r - последняя цифра числа с дробной частью'
    r = n *  10  - d1
 
    'находим цифру единиц'
    Do While r >  1 
        r = r -  1 
        d = d +  1 
    Loop
    Talk d  'произносим цифру'
    Digit = d1 + d  'возвращаем целое число'
End Function

Private Function Talk(d as Integer)
Select Case d
case  0 : произнести "ноль"
case  1 : произнести "один"
и т.д.
End Select

'вызов'
Digit( 12345 / 10 )

--------------------------------------------------
Никогда не говори никогда
...
Рейтинг: 0 / 0
Задача с одним неизвестным...
    #32562032
Vovka_Morkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Задача с одним неизвестным...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]