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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2011, 17:48   #1
Tattoquardas
Пользователь
 
Регистрация: 15.10.2011
Сообщений: 16
Печаль Паскаль - перевод в восьмеричную и шестнадцатеричную системы счисления

Изучаю Паскаль всего-лишь месяц, помогите написать прогу!

Программа должна читать последовательность 0 и 1 длинной до 80, задающую представление числа m, и находить последовательность символов, соответствующую:
1) восьмеричную систему;
2) шестнадцатеричную.

проще говоря, написать прогу, которая переводит числа из двоичной в восьмеричную и шестнадцатеричную системы...

и вторая:
Расстояние между множествами точек - это расстояние между наиболее близко расположенными точками этих множеств. Найти расстояние между двумя заданными множествами точек на плоскости.

______________
Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В последующем, темы с подобным названием будут закрываться или удаляться,
а автор такой темы будет получать штрафные баллы.
Учтите это на будущее.

Модератор.

Последний раз редактировалось Serge_Bliznykov; 16.10.2011 в 01:17.
Tattoquardas вне форума Ответить с цитированием
Старый 15.10.2011, 18:00   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Помочь-то как? Под помощью подразумевается, что вы пытаетесь что-то сделать сами, показываете код, рассказываете, что не получается, а не просто выкладываете задание.
Цитата:
Изучаю Паскаль всего-лишь месяц,
Если кто-то даст готовое решение, вряд ли это как-то поможет в изучении.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.10.2011, 18:17   #3
Tattoquardas
Пользователь
 
Регистрация: 15.10.2011
Сообщений: 16
По умолчанию

в данном случае, я даже не знаю, как приступить к написанию этой этой программы. Теоретически, к примеру, первое задание, сделать могу, то есть, перевести числа из системы в систему, а вот прогу написать - слегка проблема.
Если конкретнее - не знаю, как сделать так, чтобы система делила двоичное число по три цифры и переводила их в восьмеричную.
с шестнадцатеричной - еще сложнее.
Tattoquardas вне форума Ответить с цитированием
Старый 15.10.2011, 20:13   #4
hiho
Форумчанин
 
Регистрация: 29.04.2008
Сообщений: 100
По умолчанию

Цитата:
Сообщение от Tattoquardas Посмотреть сообщение
Если конкретнее - не знаю, как сделать так, чтобы система делила двоичное число по три цифры и переводила их в восьмеричную. С шестнадцатеричной - еще сложнее.
Считываете данные в текстовую переменную и считываете по 3(4) символа с конца строки.
hiho вне форума Ответить с цитированием
Старый 24.01.2012, 14:00   #5
Azamat0
Пользователь
 
Регистрация: 22.10.2010
Сообщений: 11
По умолчанию

А какой код использовать чтобы считывать по 3(4) символа?
Azamat0 вне форума Ответить с цитированием
Старый 25.01.2012, 10:23   #6
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

первая задача:
Код:
const d='0123456789ABCDEF';
var s,c,s1,s2:string;
    a,b,k,i,j,x,y:integer;
begin
  writeln('Введите число в двоичной системе счисления: ');
  readln(s);
  a:=length(s); 
  for k:= 3 to 4 do  
    begin
      b:=0;
      s1:=s;
      s2:='';
      if a mod k<>0 then b:=k-a mod k;
      for i:=1 to b do s1:='0'+s1;
      for i:=1 to length(s1) div k do
        begin
          c:=copy(s1,i*k-k+1,k);
          x:=ord(c[k])-48;
          y:=1;
          for j:=length(c)-1 downto 1 do
            begin
              y:=y*2;
              x:=y*(ord(c[j])-48)+x;
            end;  
          s2:=s2+d[x+1];
        end;
      writeln(s2);       
    end;    
end.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из 10 в другие системы счисления. dixonich Помощь студентам 13 11.04.2011 18:13
Как перевести из двоичной системы счисления в восьмеричную и шестнадцатеричную koysara Помощь студентам 3 13.10.2010 19:10
Перевод из одной системы счисления в другую на С++ innaa639 Помощь студентам 1 12.04.2010 14:34
Перевод числа с десятичной системы в восьмеричную систему Yardik Помощь студентам 1 21.01.2010 08:41
Перевод в разные системы счисления Наташенька Общие вопросы C/C++ 2 21.12.2008 11:34