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

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

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

> Суть работы, функция FromDec ToDec
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






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

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

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


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

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


Цитата(volvo @ 18.12.2007 9:16) *

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

volvo,
1. Я лично, слава Богу, вижу и понимаю, что делает данная программа, но цель, очевидно, в том, чтобы это видел и понимал Taur. Поэтому с моей стороны вполне логичен вопрос с целью узнать, что он УЖЕ понимает, а что ему еще нужно объяснить.
2. Несмотря на незамысловатое название FromDec программа, на самом деле, делает совсем не то, что можно было бы подумать по названию, и что написал ты в своем сообщении. Она "что-то переводит" не из десятичного представления, а из внутреннего машинного, каким в данном случае является двоичное. А именно, (да простят меня за тавтологию) число переводится из двоичной системы в бинарном представлении в систему по основанию radix (где radix <= 16dec=10hex) в текстовом.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 2.09.2025 17:51
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name