IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Суть работы, функция FromDec ToDec
Taur
сообщение 17.12.2007 20:17
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Люди помогите, очень нужно подробное описание этих функций.
Точнее как она работает и значения всех переменных.

function FromDec(n, radix:longint):string;
var
s: String;
const
digit: string[16]='0123456789ABCDEF';
begin
s:='';
repeat
s:=digit[(n mod radix)+1]+s;
n:=n div radix;
until n=0;
FromDec:=s;
end;

n - это переменная или строка
mod - остаток
radix - та с/с в которую мы переводим

s:=digit[(n mod radix)+1]+s; - что происходит в данном выражении?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 18.12.2007 9:16
Сообщение #2


Гость






Из FAQ-а это взялось! Вот отсюда: Общие вопросы по математике.

А что, по названию (FromDec) уже не понятно, что что-то переводится Из десятичной системы счисления? Или флейм неискореним? dry.gif

Автору:
s:=digit[(n mod radix)+1]+s;
По алгоритму перевода из десятичной системы счисления в другую переводимое число надо делить на основание другой С/С и остатки от деления записывать в ОБРАТНОМ порядке. Что и делается в приведенной строке: число делится на основание новой С/С (n mod radix), прибавляется единица (поскольку в Турбо-Паскале нумерация элементов строки начинается с единицы, а не с нуля, то есть, при получении остатка = 0 нам надо взять первый символ строки S, в котором этот ноль записан), и потом остаток в символьной форме (для этого мы берем содержимое digit[...]) добавляется ПЕРЕД полученной на предыдущей итерации строкой, то есть, сначала остаток, потом строка, содержащая предыдущие остатки. И все это забрасывается опять же в строку, для работы на следующей итерации...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 11:15
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"