Покой – это ложь; есть только страсть.
Через страсть я познаю силу.
Через силу я познаю власть.
Через власть я познаю победу.
Через победу мои оковы рвутся.
Кодекс ситов
Дрю Карпишин, Трилогия Дарта Бэйна





Сколько глобус ни крути, там Fess-Style не найти...
Сайт Fess'a » Программа перевода дес. числа в другие ССч - Форум
[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Форум » Программирование » Паскаль » Программа перевода дес. числа в другие ССч (Перевод дес. числа в ССч с другими основаниями)
Программа перевода дес. числа в другие ССч
FessДата: Пятница, 10.05.2013, 21:33 | Сообщение # 1

Добрый админ
Сообщений: 2339
Статус:
Привет!

Решил написать программу для перевода десятичных чисел в другие ССч (Системы Счисления).
Программа поддерживает перевод в системы с основаниями от 2 до 9, а также перевод в шестнадцатиричную ССч.

На мой взгляд, одна из самых полезных программ.

Язык программирования: Паскаль
Программа: Алго, интерпретатор Pascal

Код
program bb;

var       
       tip,I:integer;
       A:array [0..50] of integer;
       x:real;
             
label 10;

{Автор: Fess}
{Сайт fess-style.ucoz.ru}

begin
I:=0;

writeln('Программа перевода чисел v0.1 by Fess');
writeln('');
writeln('Выберите тип перевода :');
writeln('');
writeln('2: Десятичное -> двоичное');
writeln('3: Десятичное -> третичное');
writeln('4: Десятичное -> четвертичное');
writeln('5: Десятичное -> пятиричное');
writeln('6: Десятичное -> шестиричное');
writeln('7: Десятичное -> семеричное');
writeln('8: Десятичное -> восьмеричное');
writeln('9: Десятичное -> девятеричное');
writeln('16: Десятичное -> шестнадцатиричное');
writeln('');
10:read(tip);

if ((tip<2)OR((tip>9)AND(tip<>16))) then
begin writeln('Неверное основание. Попробуй снова'); goto 10; end;

writeln('Введите целое дес. число для перевода...');
readln(x);
write (x:0:0, ' -> ');

{Перевод в системы с основаниями 2-9}
if (tip>=2)AND(tip<=9) then
       begin
        while x >= 1 do
         begin
          I:=I+1;
          A[I]:=trunc(x) mod tip;
          x:=x/tip;
         end;
        for I:=I downto 1 do write (A[I]);
       end;
             
{Шестнадцатиричный перевод}
if tip = 16 then
       begin
        while x >= 1 do
         begin
          I:=I+1;
          A[I]:=trunc(x) mod 16;
          x:=x/tip;
         end;
        for I:=I downto 1 do       
         begin
          if A[I] = 10 then write ('A')
          else       
          if A[I] = 11 then write ('B')
          else
          if A[I] = 12 then write ('C')
          else
          if A[I] = 13 then write ('D')
          else
          if A[I] = 14 then write ('E')
          else
          if A[I] = 15 then write ('F')
          else write (A[I]);
         end;
       end;

end.


Прикрепления: 5445014.png (9.0 Kb)
 
TheNikДата: Суббота, 11.05.2013, 00:41 | Сообщение # 2

Сообщений: 887
Статус:
О, доделал :D
 
FessДата: Суббота, 11.05.2013, 01:07 | Сообщение # 3

Добрый админ
Сообщений: 2339
Статус:
Все мои небольшие проверки программа прошла успешно.
Вроде все переводит корректно. Пишите об ошибках, если есть)
Опечатку в слове "девятеричное" в коде я исправил, но картинка старая)
 
Форум » Программирование » Паскаль » Программа перевода дес. числа в другие ССч (Перевод дес. числа в ССч с другими основаниями)
  • Страница 1 из 1
  • 1
Поиск: