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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2012, 14:22   #1
Лександра
 
Регистрация: 01.05.2012
Сообщений: 5
Стрелка Системы счисления в Паскале.

Нужна программа, которая переводит число из одной системы счисления в любую другую. От двоичной до 16-ой.
Заранее благодарю.
Лександра вне форума Ответить с цитированием
Старый 01.05.2012, 14:35   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
uses
  crt;

const
  s: string = '0123456789ABCDEF';

var
  k1, k2: integer;
  num: longint;
  c: char;

procedure translate(num, k: integer);
begin
  if (num <> 0) then
  begin
    translate(num div k, k);
    write(s[num mod k + 1]);
  end;
end;

begin
  writeln('Input k1, number, k2:');
  read(k1);
  num := 0;
  read(c);
  repeat
    read(c);
    if c <> ' ' then
      num := num * k1 + pos(c, s) - 1;
  until c = ' ';
  readln(k2);
  if num <> 0 then
    translate(num, k2)
  else
    writeln('0');
  readln;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 01.05.2012, 15:44   #3
Paster Fob
Форумчанин
 
Аватар для Paster Fob
 
Регистрация: 06.02.2011
Сообщений: 105
По умолчанию

из десятичной в двоичную:
Код:
var n,b,i,k:integer;s:string;ch:char;
 begin
   writeln('Преобразование десятичного числа в двоичное');
   writeln('введите целое число от 0 до 255');
   readln(n);
   k:=n;
   s:='';
   for i:=1 to n do begin
     b:=n mod 2;
       if b=0 then ch:='0'
       else ch:='1';
     s:=ch+s;
     n:=n div 2;
       if n=0 then break;
   end;
   writeln('десятичному числу ',k,' соответствует двоичное ',s);
   readln
 end.
Paster Fob вне форума Ответить с цитированием
Старый 01.05.2012, 16:03   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
из десятичной в двоичную
Poma][a вне форума Ответить с цитированием
Старый 01.05.2012, 17:59   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Paster Fob Посмотреть сообщение
из десятичной в двоичную:
...
Жестоко...
Кстати, Вы уверены, что изначально число было именно в десятичной системе? (мне почему-то кажется, что в двоичной)
s-andriano вне форума Ответить с цитированием
Старый 01.05.2012, 18:44   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Кстати, Вы уверены, что изначально число было именно в десятичной системе? (мне почему-то кажется, что в двоичной)
Poma][a вне форума Ответить с цитированием
Старый 01.05.2012, 19:30   #7
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Где-то я уже видел эту картинку.
s-andriano вне форума Ответить с цитированием
Старый 01.05.2012, 19:57   #8
Paster Fob
Форумчанин
 
Аватар для Paster Fob
 
Регистрация: 06.02.2011
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Код:
из десятичной в двоичную
Цитата:
Сообщение от s-andriano Посмотреть сообщение
Жестоко...
Кстати, Вы уверены, что изначально число было именно в десятичной системе? (мне почему-то кажется, что в двоичной)
Как-то попалось мне такое задание на цикл for:
"Написать программу, которая преобразует введённое пользователем десятичное число в двоичное.
Пример работы:
Преобразование десятичного числа в двоичное
Введите целое число от 0 до 255
26
Десятичному числу 26 соответствует двоичное 11010"
вот я и привёл пример решения.

Что опять не нравиться-то?
Paster Fob вне форума Ответить с цитированием
Старый 01.05.2012, 20:32   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

1) Уважаемый, оверквотингом страдать не надо!
2) Ответ ТС был дан, и ответ очень (подчеркиваю ОЧЕНЬ) хороший, после чего вы неожиданно решили не из любой позиционной перевести в другую(опять же ЛЮБУЮ) позиционную с.с., а лишь из 10-чной в 2-чную, что и вызвало мою реакцию
Poma][a вне форума Ответить с цитированием
Старый 05.05.2012, 17:03   #10
Лександра
 
Регистрация: 01.05.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
uses
  crt;

const
  s: string = '0123456789ABCDEF';

var
  k1, k2: integer;
  num: longint;
  c: char;

procedure translate(num, k: integer);
begin
  if (num <> 0) then
  begin
    translate(num div k, k);
    write(s[num mod k + 1]);
  end;
end;

begin
  writeln('Input k1, number, k2:');
  read(k1);
  num := 0;
  read(c);
  repeat
    read(c);
    if c <> ' ' then
      num := num * k1 + pos(c, s) - 1;
  until c = ' ';
  readln(k2);
  if num <> 0 then
    translate(num, k2)
  else
    writeln('0');
  readln;
end.
Не въеду в принцип работы программы.
Если я правильно поняла, то когда программа запрашивает к1 и к2 нужно ввести число и его систему счисления. Даже если не так, при вводе абсолютно разных чисел, программа не идет дальше и не выдает соответствующий результат.
Может что-то не так. Я своим не опытным взглядом не могу этого ещё определить.((
Лександра вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
системы счисления в паскале narco3 Помощь студентам 3 22.10.2011 15:39
Системы счисления counter Свободное общение 9 12.10.2011 18:15
Системы счисления Nikitaunett Помощь студентам 17 24.11.2009 20:20
Системы счисления бедный_студент Помощь студентам 8 18.02.2009 23:25