Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 24.03.2017
Сообщений: 2
1

Перевод действительного числа X из с/с с основанием q в с/с с основанием p (нужны комментарии)

24.03.2017, 01:54. Показов 985. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача
Разработать программу, выполняющую перевод действительного числа X заданного в системе счисления с основанием q в систему счисления с основанием p (2≤ q,p ≤16).

На просторах интернета удалось найти программу, но никак не могу в ней разобраться, помогите пожалуйста

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
93
94
program lab_14;
 
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.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2017, 01:54
Ответы с готовыми решениями:

Перевод числа из СС с основанием 10 в СС с основанием N и обратно
Написал перевод из А10 в АN. Помогите оформить обратную процедуру. var a1,b: integer; ...

Перевод числа X, заданного в системе счисления с основанием q в систему счисления с основанием p
Помогите, пожалуйста, разработать программу, выполняющую перевод действительного числа X заданного...

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

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

0
24.03.2017, 01:54
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2017, 01:54
Помогаю со студенческими работами здесь

Перевод числа из системы с основанием 256
Помогите со следующей проблемой. Есть очень длинное число в стандартные типы не влазит. Есть массив...

Перевод заданного числа в систему с основанием 10
Заданы основание системы счисления p(p&lt;14) и строка s, представляющая собой запись числа в этой...

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

Осуществить перевод заданного числа в систему с основанием 10
Заданы основание системы счисления p(p&lt;17) и строка s, представляющая собой запись числа в этой...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Создание макробота, как способа экономии времени и варианта ИИ.
Hrethgir 28.01.2025
Чисто теоретически, создание ИИ на ПК можно разделить на части. Создать бота отвечающего за железо (эмулирование вкл, выкл, мышь, клавиатура), другой бот осуществляет распознавание изображений,. . .
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru