![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Помогите описать функцию перевода из строки в число, не используя стандартные ( strtoint() ). Заранее спасибо!
|
#2
|
|||
|
|||
![]() Элементарно, Ватсон.
Идем с конца строки посимвольно и складываем ([код символа] - [код '1']) * [номер символа с конца строки]. |
#3
|
||||
|
||||
![]() немного не так...даже совсем не так. а вот так правильно:
Код:
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت Последний раз редактировалось KOOL, 05.03.2009 в 12:34. |
#4
|
|||
|
|||
![]() может я чтото не так делаю по сетоду Imikle или не понял.. (спс за нижеприведенный код)
Код:
Последний раз редактировалось ApplicatiOn, 06.03.2009 в 23:52. |
#5
|
||||
|
||||
![]() А у меня такая штука получилась...
Код:
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#6
|
||||
|
||||
![]() мой код правильный. любое число длиной в n разрядов в q-ричной системе счисления определяется как
An*q^(n-1) + A(n-1)*q^(n-2) + ... + A2*q^1 + A1*q^0 , где An-цифра, стоящая в n-ном разряде. насчет твоего кода: Код:
Код:
Length(str)+1 - эт вообще не то, что надо. если по этому коду перевести строку, то получится: строка='135'; 5: 4*4=16 + 3: 2*4=8 + 1: 0*4=0 24 то есть код совсем неправильный 2Karsh: избыточности много. такие вещи, как Ord('<символ>'), являются константами. значение length(s) используется 1 раз, присваивать значение функции, используемой меньше 2 раз, переменной - это дурной тон. а математические функции типа возведения в степень пишут на языке ассемблера. а функция val может препода не устраивать. РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت |
#7
|
||||
|
||||
![]() Код:
|
#8
|
|||
|
|||
![]() Цитата:
тем что мне надо это использовать на pascal'е, а там подобных функций нет.. в математике я не силен, так что строчка Код:
остается для меня загадочной и главное - рабочей.. (особенно этот момент: Exp((Length(s)-i)*Ln(10))) ) |
#9
|
||||
|
||||
![]() Как это нет??? там есть процедуры Val и Str.
Exp((Length(s)-i)*Ln(10)) это e^[ln(10)^(номер разряда-1)], т.е. 10^(номер разряда-1). В паскале как раз функции Power нет и нужно использовать искусственный прием. а лучше как s0Creator написал (опять я забыл про накопление ![]() РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت |