Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Выделение десятичного числа
EagleSHДата: Четверг, 16 Июля 2009, 15:53 | Сообщение # 1
Поднаторевший
Группа: Проверенные
Сообщений: 106
Репутация: 0
Награды: 0
Статус: Offline
вроде правильно сформулировал.

подскажите господа простейшее решение, у меня есть счётчик от 0 до дофига :)

к примеру до 190
a=0
b=0

как при каждом изменении а на 10 увеличивать б на 1?

Code
c=b*10
d=c+a+1
a=a+1
If (a=10) Then
     b=b+1
     a=0
End

можно так сделать, но мне нужно чтоб значение а при изменении б в меньшую сторону продолжало расти (в данном случае до 190).

Сообщение отредактировал EagleSH - Четверг, 16 Июля 2009, 16:00
 
toizyДата: Четверг, 16 Июля 2009, 16:18 | Сообщение # 2
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Code
c = b * 10
d = c + a + 1
a = a + 1
x = a / 10
x = INT(x) - x
If (x = 0) Then
   b = b + 1
   a = 0
End


Жизнь оказалась не такой уж и забавной, как поначалу...
 
EagleSHДата: Четверг, 16 Июля 2009, 18:39 | Сообщение # 3
Поднаторевший
Группа: Проверенные
Сообщений: 106
Репутация: 0
Награды: 0
Статус: Offline
toizy, спс, но это не то, работает точно как мой кодик... в дебагере запусти, после 20 к примеру обнули б, общее число сбрасывается.

Добавлено (16 Июль 2009, 18:23)
---------------------------------------------
мда, как всё просто, шото я протупил...
вот то что нужно:

Code
b=ABS(a/10)
a=a+1

Добавлено (16 Июль 2009, 18:39)
---------------------------------------------
вырезает десятку то правильно, но вот отдельно с числом б в такм случае не работать... оно восстановится к текущему счётчику..

ищу решение простое дальше... можно конечно дополнительный флаг и дело в шляпе, но интересней реализовать без него.

 
Alex3AДата: Четверг, 16 Июля 2009, 19:02 | Сообщение # 4
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (EagleSH)
ищу решение простое дальше...

Задача не сложная, подумай, и найдеш самое оптимальное решение.
 
toizyДата: Четверг, 16 Июля 2009, 20:18 | Сообщение # 5
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Quote (EagleSH)
работает точно как мой кодик

Совсем не так.

Quote (EagleSH)
обнули б, общее число сбрасывается.

1. Про обнуление 6 ничего не было известно.
2. Обнуление не может влиять на работу условия.
3. Что такое общее число? Я понимаю только a, b, c и d :)

В любом случае, каждый раз, когда a кратно 10, срабатывает условие, и это работает. Или объясни так, чтобы я наконец понял :)

Добавлено (16 Июль 2009, 20:18)
---------------------------------------------

Quote (EagleSH)
как при каждом изменении а на 10 увеличивать б на 1?

Вроде бы именно то что нужно scratch


Жизнь оказалась не такой уж и забавной, как поначалу...
 
Alex3AДата: Четверг, 16 Июля 2009, 20:36 | Сообщение # 6
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (EagleSH)
вроде правильно сформулировал.

Quote (toizy)
Вроде бы именно то что нужно

Очевидно не то что нужно, ибо неправильно сформулировано.
А как правильно сформулировать?
Надо просто описать необходимую функцию, как должны изменяться числа.
При решении того или иного алгоритма могут применяться и переменные носящие вспомогательный характер, но описывать функцию необходимо без поминания
этих вспомогательных чисел, ибо они описывают только конкретный механизм
реализации, иные решения могут их неиметь.По этой причине и возможны путаницы.
 
EagleSHДата: Четверг, 16 Июля 2009, 23:31 | Сообщение # 7
Поднаторевший
Группа: Проверенные
Сообщений: 106
Репутация: 0
Награды: 0
Статус: Offline
может и не правильно, нужно было сделать так, чтоб при росте счётчика а, через каждый десяток менялся счётчик б на 1, но при последующем изменении счётчика б в меньшую сторону, а оставалось без изменений, тоесть продолжало расти...

к примеру при а=40, б будет равен 4, но при изменении б до 3-x к примеру, в тот момент, когда а будет 50 б должен быть равен 4, а не 5 (тоесть б увеличился снова на 1 при достижении 50) :)

вобщем решил задачу с дополнительным флагом:)

всем спасибо за участие thumbs_up

 
Alex3AДата: Четверг, 16 Июля 2009, 23:36 | Сообщение # 8
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Ну вот, наконец то толковое описание функции, правильно сформулированная задача-
залог ее быстрого решения.
 
  • Страница 1 из 1
  • 1
Поиск: