Re: MathString
- From
- Vitaly Slobodskoy (2:5015/128.22)
- To
- Sergey Gridasov
- Date
- 2002-10-24T21:58:25Z
- Area
- RU.ALGORITHMS
Здравствуйте, //Sergey Gridasov//, САНТЕХНИКА вызывали?!? Так так, у вас потекло 23.10.02... *ТЫ хочешь поговорить об этом??*
SG> Есть математическое выpажение (напp. sin(12+asin(0.5))...), в котоpом все
SG> числа в N-pичной системе счисления [N=2,8,16], а надо полyчить тy же
SG> стpокy, но в котоpой все числа пеpе- ведены в 10-pичнyю системy
SG> счисления.
А что тут сложного?! - для начала нужно выделить числа из формулы (не
обязательно все сразу, лучше по порядку, чтобы в один проход), это несложно,
ибо число - это подстрока, которая:
1) состоит только из цифр и символа delimiter, разделяющего целую и дробную
часть
2) эта подстрока в исходной строке может содержаться только между символами,
определяющими арифметическую операцию и скобками (соответственно, может быть в
начале и в конце строки)
ВОт, на основе этого числа выделить легко. Как получить число из N-ой системы
счисления в 10-тичную, надеюсь, не надо, ибо это школа. Далее тебе нужно просто
вставить новые значения на место старых. Я бы реализовал всё это в один проход
по строке, сразу же заменяя найденные числа.
ЗЫ: мне подобная задачка попалась при поступлении в универ, на экзамене по
информатике. Там нам давали три часа на решение 4-х задач, 2-е из которых
лёгкие, а две - примерно такие, какая приведена. Да, всё это на листе бумажки.
:))
-----------------
Надеюсь, хоть чем-то мог быть полезен! И, это... в следующий раз закрывайте
кран!
Slobodskoy Vitaly
e-mail: vital@mail.nnov.ru
fido: 2:5015/128.22
--- WP/95 Rel 1.78E (215.0) Reg.
* Origin: Видишь суслика? Вот и я не вижу... А он есть! (2:5015/128.22)