Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2012, 23:34   #1
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос задача перевода из восьмеричной системы счисления в десятеричную

Помогите с задачей вот задача
Написать на паскале решение задачи перевода из восьмеричной системы счисления в десятеричную. Решить эту задачу нужно двумя способами для целых и для дробных чисел
Sylar9 вне форума Ответить с цитированием
Старый 03.01.2012, 23:37   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
function OctToDec(s:string):integer;
var n,f,i:integer;
begin
n:=0;f:=1;
for i:=length(s) downto 1 do
 begin
  n:=n+f*(ord(s[i])-48);
  f:=f*8;
 end;
OctToDec:=n;
end;
function RealOctToDec(s:string):real;
var f,i:integer;
n:real;
begin
n:=0;f:=1;
for i:=pos(',',s)-1 downto 1 do
 begin
  n:=n+f*(ord(s[i])-48);
  f:=f*8;
 end;
 f:=1;
for i:=pos(',',s)+1 to length(s) do
 begin
  f:=f*8;
  n:=n+(ord(s[i])-48)/f;
 end;
 RealOctToDec:=n;
 end;
var s,s1:string;
c1,c2:real;
begin
s:='23,12';
if pos(',',s)=0 then c1:=OctToDec(s) else
c1:=RealOctToDec(s);
writeln(s,'o=',c1,'d');
end.
результат
Цитата:
23,12o=19.15625d
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 04.01.2012 в 00:28.
Mad_Cat вне форума Ответить с цитированием
Старый 03.01.2012, 23:38   #3
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос Спасибо

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
для целого (с) Puporev
Код:
function OctToDec(s:string):integer;
var n,f,i:integer;
begin
n:=0;f:=1;
for i:=length(s) downto 1 do
 begin
  n:=n+f*(ord(s[i])-48);
  f:=f*8;
 end;
OctToDec:=n;
end;
а второй пример
Sylar9 вне форума Ответить с цитированием
Старый 04.01.2012, 00:38   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вам обе функции дали:
Цитата:
Код:
function OctToDec(s:string):integer;

function RealOctToDec(s:string):real;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прога для перевода из любой системы счисления в десятичную. nooby Помощь студентам 3 28.03.2011 02:03
Программа перевода из одной системы счисления в другую - Turbo Pascal 7.0. Prescott Помощь студентам 5 19.03.2010 19:26
Алгоритм перевода чисел из двоичной системы в десятеричную _PROGRAMM_ Помощь студентам 5 16.03.2010 17:05
формула перевода чисел из десятичной системы счисления в 2-ую,8-ую и 16-ую в Microsoft Visual c#? Лютик Помощь студентам 0 18.12.2009 10:42