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

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

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

> Системы исчисления, из 10-тичной в другую и наоборот
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

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


Задание такое: Программа должна преобразовывать 10 в q и q в 10. q в 10 с помощью полимиальной записи чисел, а 10 в q с помощью алгоритма "Обратное деление". Исходные данные вводить по типу string, результат выводить склеяным стрингом. В теоретических вопросах уже побывала, и всё почитала.
Вот что получилось:
uses crt;

function fromdec(n,osnov:longint):string;
var
s:string;
const
digit:string[16]='0123456789ABCDEF';
begin
s:=' ';
repeat
s:=digit[(n mod osnov)+1]+s;
n:=n div osnov;
until n=0;
fromdec:=s;
end;
var s:string;
i,m,code:integer;
ss:integer;
st,a:array[1..50] of string;
p,b:array[1..50] of integer;
begin
clrscr;
writeln('Vvedite sistemu is4isleniya');
readln(ss);
writeln('Vvedite kol-vo 4isel');
readln(m);
writeln('Vvedite chisla');
for i:=1 to m do
begin
readln(st[i]);
end;
for i:=1 to m do
begin
val(st[i],p[i],code);
end;
for i:=1 to 43 do write('-');writeln;
writeln('|','ishodnie':10,'|','polu4ennie':20,'|');
for i:=1 to 43 do write('-');writeln;
for i:=1 to m do writeln(st[i]:10,fromdec(p[i],ss):20);
for i:=1 to 43 do write('-');writeln;
readln;
end.

Из 10-тичной системы переводит. А мне еще нужно, чтоб получившиеся числа (не в десятичной системе) переводились обратно в десятичную. (как бы сразу и для проверки перевода).
Функцию видела, вот эту:
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;

Но не знаю, как реализовать, чтоб полученные числа переводились обратно. Подскажите пожалуйста.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Sensitive   Системы исчисления   9.09.2007 16:13
volvo   Во-первых, в функции FromDec не надо изначально пр…   9.09.2007 16:23
Sensitive   Спасибо, volvo! Из-за пробела у меня и не полу…   9.09.2007 19:21
Sensitive   А подскажите плиз каким способом можно сделать бло…   12.09.2007 23:00
мисс_граффити   цифры 13, к сожалению, нет... обычно идет 1 2 .. 9…   12.09.2007 23:09
Sensitive   мм...просто я привела пример,который нам приводил …   12.09.2007 23:13
volvo   ... writeln('Vvedite sistemu is4isleniya…   12.09.2007 23:11
volvo   Ну, с учетом исправления (относительно букв), это …   12.09.2007 23:28
Sensitive   Препод объяснял именно так... что 13 нельзя, а 14…   13.09.2007 3:19
мисс_граффити   а почему, собственно, 13 нельзя перевести в 13сс? …   13.09.2007 3:30
Sensitive   А как нужно переделать программу, чтоб она могла о…   15.09.2007 4:07
volvo   Переходом к длинной арифметике... В Drkb есть мод…   15.09.2007 5:25
Sensitive   Volvo,спасибо за помощь. Буду разбираться с модуле…   15.09.2007 19:27
Sensitive   Вот сидела разбиралась... потом начала писать функ…   15.09.2007 21:16
volvo   Совсем не обязательно делать в цикле то, что можно…   15.09.2007 22:06
Sensitive   Огромное спасибо. Я разобралась.   16.09.2007 3:48
Archie   Народ...а как записать число в десятчной записи и …   16.09.2007 22:04
Sensitive   Представляете, препод не принял программу! Тип…   18.09.2007 20:32
volvo   :) Тогда тебе надо реализовывать умножение/деление…   18.09.2007 20:44
fererro_rosher   a kak wam moya programma dlya perewoda chisler d 1…   23.09.2007 20:45
volvo   Попробуй перевести с ее помощью, например, 5234567…   23.09.2007 20:58


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

 





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