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

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

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

> Системы исчисления, из 10-тичной в другую и наоборот
Sensitive
сообщение 9.09.2007 12:13
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Archie
сообщение 16.09.2007 18:04
Сообщение #2


Новичок
*

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

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


Народ...а как записать число в десятчной записи и птом посчитать количество чисел? пришлите плиз эту прогу - а то я сасем пропан в этом деле.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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