Помощь - Поиск - Пользователи - Календарь
Полная версия: Перевод дробных чисел из 3-й системы счисления в 10-ю
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Claymore
Нужна помощь, прога нужна к завтрашнему. Заранее спасибо.
Client
Цитата
Нужна помощь, прога нужна к завтрашнему

Всетаки, помощь или прога?
Claymore
Цитата(Client @ 27.11.2007 21:56) *

Всетаки, помощь или прога?

скорее прога, т.к. моя прога очень кривая и считает с очень большой погрешностью.
Malice
чем не устроила та, что в faq ?
Claymore
Цитата(Malice @ 27.11.2007 22:00) *

чем не устроила та, что в faq ?

чёта не нашел там sad.gif
Client
Цитата
т.к. моя прога очень кривая и считает с очень большой погрешностью.

Покажи что сделал
Claymore
program abc;
var
x,y,z,k,s1,s2,s:real;
i,j,a,b,c:integer;
m:array[1..100] of integer;
n:array[1..100] of integer;
begin
writeln('Vvedite 4islo v troi4noi sisteme s4islenia');
readln(x);
y:=trunc(x);
while y>=10 do
begin
y:=y/10;
end;
z:=frac(x);
z:=z*100000;
z:=trunc(z);
while z>=10 do
begin
z:=z/10;
end;
if (round(y)>=10) then
m[1]:=1
else
m[1]:=round(y);
if (round(z)>=10) then
n[1]:=1
else
n[1]:=round(z);
a:=1;
b:=1;
for i:=2 to 100 do
begin
y:=frac(y);
y:=y*10;
if (round(y)=10) or (frac(y)=0) then break
else
m[i]:=round(y);
a:=a+1;
end;
for j:=2 to 100 do
begin
z:=frac(z);
z:=z*10;
if (round(z)=10) or (frac(z)=0) then break
else
n[j]:=round(z);
b:=b+1;
end;
c:=0;
s1:=0;
for i:=a downto 1 do
begin
k:=m[i]*EXP(©*LN(3));
s1:=s1+k;
c:=c+1;
end;
s2:=0;
c:=1;
for j:=1 to b do
begin
k:=n[j]*EXP((-c)*ln(3));
s2:=s2+k;
c:=c+1;
end;
s:=s1+s2;
writeln(s);
end.
.
Malice
Цитата(Claymore @ 27.11.2007 22:05) *

чёта не нашел там sad.gif

Общие вопросы по математике.
функция ToDec(n:string; radix:longint):longint;
оно ? Только вводить надо строку, а не integer как у тебя.
ps Тока это для целыйх чисел ! Если дробное надо, то не пойдет..
Client
число 201 в тричной это 19 в десятичной.Так?
Claymore
Цитата(Client @ 27.11.2007 22:23) *

число 201 в тричной это 19 в десятичной.Так?

да, сложности начинаются если взять 4 знака числа, да и дробная часть ацтойная выходит.
Client
Это только на целую часть
Гость
Цитата
сложности начинаются если взять 4 знака числа, да и дробная часть ацтойная выходит.
А ты попроьуй, наконец, воспользоваться поиском... Выкладывалась программа (если не ошибаюсь, тема была про калькулятор), переводящая отдельно целую отдельно дробную части числа из одной системы счисления в другую...

А то писать одно и то же поднадоело, значшь ли уже...

Специально для Client: как ты думаешь, если зайти в поиск, сколько я найду там процедур/функций/программ перевода из одной системы в другую ("только для целой части")? 2? 3? А может 10? Я почему-то думаю, что одной сотней не обойдется... Не, если очень хочется написать то, что было сделано еще несколько лет назад (может, оно работать быстрее станет, или преподавателю переписанный текст больше понравится, другой причины - просто не вижу) то можно и написать еще несколько сотен вариантов... Переменные по-разному обозвать, например...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.