Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 16.03.2015
Сообщений: 5
1

Перевод числа X, заданного в системе счисления с основанием q в систему счисления с основанием p

13.04.2015, 22:49. Просмотров 1461. Ответов 4
Метки нет (Все метки)

Помогите, пожалуйста, разработать программу, выполняющую перевод действительного числа X заданного в системе счисления с основанием q в систему счисления с основанием p (2≤ q, p ≤16).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2015, 22:49
Ответы с готовыми решениями:

Перевести число из системы счисления с основанием 19 в десятичную систему счисления
Уважаемые разбирающиеся во всём этом люди, прошу вас помочь мне с этой задачей Примечания...

Найти сумму цифр числа в системе счисления с основанием p
Help people!!!! Нужна программа в Паскале... Вот текст задачи.... Найти сумму цифр числа в системе...

Перевод числа из системы счисления с основанием X в систему счисления с основанием 10
Надо написать программу на Си,которая число с системой счисления X переводит в систему счисления в...

Число, заданное в системе счисления с основанием p перевести в систему с основанием q
Число, заданное в системе счисления с основанием p перевести в систему с основанием q

4
Эксперт Pascal/Delphi
2275 / 1264 / 1478
Регистрация: 29.08.2014
Сообщений: 4,575
14.04.2015, 07:02 2
Перевод в различные системы счисления
0
1641 / 1070 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
14.04.2015, 10:01 3
Joy,
Цитата Сообщение от Olya177 Посмотреть сообщение
выполняющую перевод действительного числа
0
Эксперт Pascal/Delphi
2275 / 1264 / 1478
Регистрация: 29.08.2014
Сообщений: 4,575
14.04.2015, 10:32 4
Лучший ответ Сообщение было отмечено Olya177 как решение

Решение

кажись так тогда:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
const
     digit:string[16]='0123456789ABCDEF';
 
function DecimalToXStr (aBase : Integer; aVal : double; Precision:integer) : String;
var
  Val : double;
  IntVal : Int64;
  FracVal : double;
  StrInt : String;
  StrFrac : String;
  i : Integer;
begin
  // Получаем целую и дробную части числа.
  IntVal := Trunc(aVal);
  FracVal := Frac(aVal);
 
  //Переводим целую часть.
  StrInt := '';
  repeat
    StrInt := digit[IntVal mod aBase+1] + StrInt;
    IntVal := IntVal div aBase;
  until IntVal = 0;
 
  // Если дробная часть = 0, то перевод закончен.
  if FracVal = 0 then begin
    Result := StrInt;
    exit;
  end;
 
  //Переводим дробную часть. Точность - до Precision цифр после запятой.
  StrFrac := '';
  for i := 1 to Precision do begin
    Val := FracVal * aBase;
    StrFrac := StrFrac + digit[Trunc(Val)+1];
    FracVal := Frac(Val);
    //Если дробная часть = 0, то перевод закончен.
    if FracVal = 0 then Break;
  end;
  if StrFrac<>'' then begin  StrInt:=StrInt + '.' + StrFrac;
    while StrInt[length(StrInt)]='0' do delete(StrInt,length(strint),1);
  end;
  Result:=StrInt;
end;
 
function ToDec(n:string;r:Int64):Int64;
var
  m:Int64;
  i:longint;
begin
Result:=0;
if trim(n)<>'' then begin // пустые строки не обрабатываем
  m:=0;
  while pos('0',n)=1 do  delete(n,1,1);//убираем лидирующие 0
    for i:=1 to length(n) do m:=m*r+pos(n[i],digit)-1;//сама формула перевода
    if (m>=MaxInt64) or (m<0) then begin//введено число больше чем Int64
      writeln('Достигнут максимальный предел вычислений!');
      m:=0;
    end;
    Result:=m;
  end;
end;
 
 
function ToDecNew(n:string;r:Integer):double;
var
  f:double;
  i:integer;
  r1:int64;
begin
//  if pos('.',n)=0 then Result:=ToDec(n,r) else begin
    i:=pos('.',n);
    if i>0 then begin
    f:=ToDec(copy(n,1,i-1),r);
    delete(n,1,i);
    r1:=r;
    for i:=1 to length(n) do begin
      f:=f+(pos(n[i],digit)-1)/r1;//сама формула перевода
      r1:=r1*r;
    end;
    Result:=f;
  end else Result:=ToDec(n,r);
end;
 
var
  p,q:integer;
  n:string;
begin
  write('Число:');readln(n);
  write('система счисления1:');readln(p);
  write('система счисления2:');readln(q);
  writeln('ответ:',DecimalToXStr (q,ToDecNew(n,p),5));
end.
Добавлено через 8 минут
отсюда: Системы счисления
1
0 / 0 / 0
Регистрация: 16.03.2015
Сообщений: 5
14.04.2015, 15:25  [ТС] 5
Спасибо большое!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2015, 15:25

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

Задана строка s, представляющая собой запись числа в системе счисления с основанием 16. Осуществить перевод заданного
Задана строка s, представляющая собой запись числа в системе счисления с основанием 16. Осуществить...

Перевод целых чисел,записанных в системе счисления с основание q(2<=q<=16) в систему с основанием p (2<=p<=16)
Разработать программу которая должна предоставлять средства для перевода целых чисел,записанных в...

Перевод целого числа в систему счисления с основанием K
Разработайте программу пересчёта целого числа в систему исчисления на основании числа K. Результат...

Перевод числа в систему счисления с основанием m (Паскаль -> Си)
Const NMax=1000000000; var i,p,x,sys:integer; a:array of byte; begin i:=0; ReadLn(x,sys);...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.