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

> Общие вопросы по математике.
Altair
сообщение 24.03.2005 18:46
Сообщение #1


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

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


Описание и реализация алгоритмов:


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Altair
сообщение 29.03.2005 11:29
Сообщение #2


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

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


Перевод из десятичной с.с в любую и наоборот.

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;



function ToDec(n:string; radix:longint):longint; 
var
m, i: longint;
const
digit: string[16]='0123456789ABCDEF';
begin
m:=0;
while (n[1]='0') and (length(n) > 1) do delete(n,1,1);
for i:=1 to length(n) do m:=m*radix+pos(n[i],digit)-1;
ToDec:=m;
end;


Как проверить, является ли строка корректным представлением числа в определенной системе счисления ?
Допустимые значения radix: 2 .. 36
function isCorrect(n: string; radix: byte): boolean;
const
symbols: string = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var
bad: boolean;
i: integer;
begin
bad := False;
i := 0;
repeat
inc(i);
bad := (pos(n[i], copy(symbols, 1, radix)) = 0);
until bad or (i = length(n));
isCorrect := not bad;
end;


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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