Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > изменения числа


Автор: banan 26.1.2005, 22:58
Помогите сделать прогу: програма должна перевести число N в число типа 01000001101.

Автор: Pakshin A. S. 26.1.2005, 23:09
Для начала почитай инфу по системам счисления... smile
Добавлено @ 23:11
Утром, завтра могу написать... smile

Автор: ~FoX~ 26.1.2005, 23:17
banan
Цитата

А математику затем учить следует, что она ум в порядок приводит.
© Не помню кто


Перевод числа в двоичную систему осуществляется так:
1. Берем число и делем попалам, если есть остаток пишем 1, если нет - 0
2. У получившегося от деления числа отбрасываем дробную часть (если есть) и опять делим пополам.
3. Повторяем шаг 2 пока не останиться 1
А в коде сам попробуй сделать.
А вообще в разделе Алгоритмы есть пример, правда он на Сях

Автор: Cashey 26.1.2005, 23:19
Цитата
А математику затем учить следует, что она ум в порядок приводит.
© Не помню кто

Ломоносов

Автор: Pakshin A. S. 26.1.2005, 23:21
Код

var
a: integer;
s,s1:string;
i:integer;
begin
readln(a); {a >= 0}
s:='0';
while a <> 0 do
 begin
  i:=1;
  while (s[i] <> '0') and (i <= Length(s)) do
   begin
    s[i]:='0';
    inc(i);
   end;
  s[i]:='1';
 end;
s1:=s;
s:='';
for i:=Length(s1) downto 1 do
 s:=s + s1[i];
writeln(s);
end.

Что-то в этом духе, но на ночь что-то не идет у меня решения задач... smile

Автор: Zero 27.1.2005, 02:52
На всякий случай, ещё можеш посмотреть в FAQ, я там видал уже такой вопрос, прямо вточности, напиши в поиске вот так: "Как представить число в другой системе счисления"

Автор: ~FoX~ 27.1.2005, 09:20
Cashey
Точняк. smile


Pakshin A. S.
Круто замутил. smile

Автор: Marriage 27.1.2005, 11:00
Цитата

Код
var
a: integer;
s,s1:string;
i:integer;
begin
readln(a); {a >= 0}
s:='0';
while a <> 0 do
  begin
  i:=1;
  while (s[i] <> '0') and (i <= Length(s)) do
    begin
    s[i]:='0';
    inc(i);
    end;
  s[i]:='1';
  end;
s1:=s;
s:='';
for i:=Length(s1) downto 1 do
  s:=s + s1[i];
writeln(s);
end.


То ли я слепой, то ли это бесконечный цикл ... smile

Автор: Soldat 27.1.2005, 13:26
Как насчёт этого.
Код

function DecToBin(n:word):string;
 var
   a:word;
   s:string;
 begin
  a:=n;
  s:='';
  if a<>0 then
   begin
    while a<>1 do
     begin
      if a mod 2=0 then s:='0'+s
      else s:='1'+s;
      a:= a div 2;
     end;
    s:='1'+s;
   end
  else
   s:='0';
  DecToBin:=s;
end;

Проверял в Delphi, возможно s:='0'+s прийдётся заменить на s:=''+'0'+s.
Добавлено @ 13:32
Pakshin A. S., причём сдесь a??? Или я чегото не понимаю? smile

Автор: Fedor 27.1.2005, 14:13
Pakshin A. S. Интересно, ты хоть раз свой код проверял? Понятно, времени мало, то, се, но все-же. 90% твоих кодов не рабочие. Путаешь новичков ведь smile

Автор: Гость_Druidik 27.1.2005, 15:54
Лучьше так:

function DecToBin(n:word):string;
var
a:word;
s:string;
begin
a:=n;
s:='';
while a<>0 then
begin
if a mod 2=0 then s:='0'+s else s:='1'+s;
a:= a div 2;
end;
if s='' then s:='0';
DecToBin:=s;
end;

Автор: Pakshin A. S. 27.1.2005, 17:53
1) У меня нет дельфей, тем более паскаля... нуна перегружаться, а там нету нета...
2) У меня голова обсолютно не варит..
3) Сдаю последний экзамен (матан)
4) Тем более предупредил...smile

Автор: Zero 27.1.2005, 18:15
Цитата(Pakshin @ 27.1.2005, 17:53)
У меня нет дельфей, тем более паскаля... нуна перегружаться, а там нету нета...
Pakshin A. S. ладно там делфи нет, но ты же модератор по разделу паскаль, уж он то долен же у тебя быть.

Автор: p0s0l 27.1.2005, 18:22
http://forum.vingrad.ru/index.php?showtopic=17463&hl=inttobin
http://forum.vingrad.ru/index.php?showtopic=32433&hl=inttobin

Автор: Pakshin A. S. 27.1.2005, 19:09
Обязательно должен!!! А если его у меня нету... smile

Ладно... уговорили, придется требовать диск назад, чтобы установить все инструментарии... smile

Автор: Fedor 28.1.2005, 01:54
Цитата(Pakshin @ 27.1.2005, 16:53)
1) У меня нет дельфей, тем более паскаля... нуна перегружаться, а там нету нета...
2) У меня голова обсолютно не варит..
3) Сдаю последний экзамен (матан)


Лучше тогда не постить ИМХО. Мож просто идею подать или алгоритм. Но не код. Я так понимаю, код изначально когда постится, подразумевается работающим (кроме тех случаев, где просят найти ашипку).
Тем более ты модер.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)