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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2012, 17:06   #11
Лександра
 
Регистрация: 01.05.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Paster Fob Посмотреть сообщение
из десятичной в двоичную:
Код:
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.
Нужна программа не конкретно к этим системам счисления, а для перевода из одной в другую. (от двоичной до шестнадцатеричной) Исходная СС может быть любая.
Лександра вне форума Ответить с цитированием
Старый 05.05.2012, 17:34   #12
temaps
Форумчанин
 
Регистрация: 15.05.2011
Сообщений: 160
По умолчанию

Цитата:
Сообщение от Лександра Посмотреть сообщение
Не въеду в принцип работы программы.
Если я правильно поняла, то когда программа запрашивает к1 и к2 нужно ввести число и его систему счисления. Даже если не так, при вводе абсолютно разных чисел, программа не идет дальше и не выдает соответствующий результат.
Может что-то не так. Я своим не опытным взглядом не могу этого ещё определить.((
Написано же в приглашении что ввести надо:
writeln('Input k1, number, k2:');
Сначала систему счисления, потом число в этой системе (закончить пробелом), потом вторую систему счисления.
Правда эта конструкция на первый взгляд мне кажется немного перегружена, но копать не охота, раз работает:
Код:
read(c);
  repeat
    read(c);
    if c <> ' ' then
      num := num * k1 + pos(c, s) - 1;
  until c = ' ';
temaps вне форума Ответить с цитированием
Старый 05.05.2012, 17:36   #13
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
program Translate;

function ConvertRadix (n : LongInt; r : Byte) : string;

var
	s : string;
	c : Integer;
begin
	s := '';
	repeat
		c := n mod r;
		if c < 10 then
			s := Chr (c + 48) + s
		else
			s := Chr (c + 55) + s;
		n := n div r;
	until n = 0;

	ConvertRadix := s;
end;

var
	n : LongInt;
	r : Byte;

begin
	Read (n, r);

	WriteLn (ConvertRadix (n, r))
end.
Poma][a вне форума Ответить с цитированием
Старый 05.05.2012, 17:41   #14
temaps
Форумчанин
 
Регистрация: 15.05.2011
Сообщений: 160
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Код:
program Translate;
temaps вне форума Ответить с цитированием
Старый 05.05.2012, 18:11   #15
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

что-то не нравится?
Poma][a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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