Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 742
от 30.03.2008, 17:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 288, Экспертов: 46
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 129017: Здравствуйте уважаемые эксперты. Помогите пожалуйста в решении вопроса № 129014 Задачка на системы счисления: даны два натуральных числа D и N (2<=n<=16) Организовать перевод целого десятичного числа D в N-ичную систему счис...

Вопрос № 129.017
Здравствуйте уважаемые эксперты.

Помогите пожалуйста в решении вопроса № 129014

Задачка на системы счисления:
даны два натуральных числа D и N (2<=n<=16)
Организовать перевод целого десятичного числа D в N-ичную систему счисления.
Решение неоюходимо на Basic или Pascal
Заранее благодарю.

Добавлен текст вопроса.
-----
∙ Отредактировал: Admiral (Профессор)
∙ Дата редактирования: 25.03.2008, 16:38
Отправлен: 25.03.2008, 16:31
Вопрос задал: Lommm (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: HookEst
Здравствуйте, Lommm!
Алгоритм перевода десятичных чисел в другие основания, сейчас кажется в школе изучают. Просто делим нацело число D на новое основание N, и остаток записываем. Получившийся результат снова делим на N остаток записываем слева от предыдущего и т.д... делим пока не получится ноль, записывая остатки справа налево.
Все что записали и будет искомым представление числа D в N-ичной системе счисления.
Так и делаем, в коде, у Вас написано про натуральные числа, но я заодно учел и отрицательные
Диалект Basic-а не знаю, делал просто в Excel:


'Символы используемые для записи чисел
Const CHARS = "0123456789ABCDEF"

'функция возвращает строковое представление целого числа D в N-ичной системе счисления
'2<=N<=16 - иначе возвращается пустая строка

Function Radix(ByVal D As Long, ByVal N As Long) As String
Dim sign As String
Dim r As Long

'проверка N
If N < 2 Or N > 16 Then Exit Function

'сохраняю знак и убираю его если есть, чтобы не мешался
If D < 0 Then sign = "-"
D = Abs(D)

'цикл пока есть что делить
Do
'остаток
r = D Mod N
'частное
D = D N
'записываем остаток, используя символы из CHARS
Radix = Mid(CHARS, r + 1, 1) & Radix
Loop Until D = 0
'если 0 возвращаем "0", иначе - восстанавливаем знак
If Radix = "" Then Radix = 0 Else Radix = sign & Radix
End Function


Успехов.
Ответ отправил: HookEst (статус: Специалист)
Ответ отправлен: 26.03.2008, 11:12
Оценка за ответ: 5


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.72.6 beta от 22.03.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное