0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 5

Программа перевода из одной системы счисления в другую

22.04.2012, 20:46. Показов 4942. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Господа .... очень нужна помощь ... мне необходимо написать программу по переводу из любой сс(<16) в любую(<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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
program zadanie8;
uses crt;
const c : array [1..16] of char = ('0','1','2','3','4','5','6','7','8','9','A',
'B','C','D','E','F');
chara : array [1..16] of byte =(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
var s,sdo,spos:string;
    a,a2,i,b,dec,f,sa1: integer;
    mas : array [1..100]of integer;
    rrr,sa2:real;
procedure razdstr(s:string);
var l,k,i:integer;
    flag: boolean;
 begin
   sdo:='';
   spos:='';
   l:=length(s);
   flag:=false;
   for i:=1 to l do
   if s[i] in ['a'..'f']then
   s[i]:=upcase(s[i]);
   for i:=1 to l do
   if(s[i]='.')then flag:=true;
   if (flag = false)then s:=s+'.0';
   k:=pos('.',s);
  for i:=1 to k-1 do
     sdo:=sdo+s[i];
  for i:=k+1 to l do
     spos:=spos+s[i];
  end;
function pow(ar,k :integer):integer;
var i,res,b : integer;
 begin
   res :=1;
   if (k<0)then
   b:=round(1/ar);
   k:=abs(k);
   if k=0 then pow:=1;
   for i:=1 to k do
      res:=res*ar;
       pow:=res;
  end;
function sdoone(s:string;a:integer):integer;
var l,j,sum,k:integer;
    z:string;
    flag:boolean;
  begin
      if a in [2..16] then
      begin           z:='';
         l:=length(s);
         for i:=l downto 1 do
         z:=z+s[i];
         for i:=1 to l do
          if z[i] in ['0'..c[a]] then flag :=true;
         k:=l-1;sum:=0;
         for i:=1 to l do
         for j:=1 to 16 do
          if (z[i] = c[j])then
           begin
            sum:=sum+(chara[j]*pow(a,i-1));
            k:=k-1;
          end;end;
          if (flag = false)then
          begin
          writeln('error in notation');
          readln;
          halt(1);
          end;
    sdoone:=sum;
  end;
function sposone(s:string;a:integer):real;
         var k,x:real;
         p,i,n:integer;
         flag:boolean;
begin
           x:=0;
           p:=pos('.',s);
           if (p>0)then
    begin
      k:=a;
       for i:=p+1 to length(s) do
         begin
          if s[i] in ['0'..c[a]] then flag:=true;
          n:=ord(s[i]);
          if n>=ord('A')then n:=n-ord('A')+10
           else n:=n-ord('0');
           x:=x+n/k;
           k:=k*k;
         end;
    end;
    if(flag=false)then
    begin
          writeln('error in notation');
          readln;
          halt(1);
          end;
   sposone:=x;
end;
function two(dec,a:integer):string;
 var d,u:integer;
     rez:string;
     b:array [1..30]of byte;
  begin
  u:=0; rez:='';d:=dec;
while d>0 do
  begin
    inc(u);
    b[u]:=d mod a;
    d:=d div a;
  end;
for i:=u downto 1 do
  rez:=rez+c[b[i]+1];
  two:=rez;
     end;
function spostwo(d:real;a:integer;spos:string):string;
 var  s:string;
      b:integer;
      z:real;
       begin
       s:='.';z:=d;
       while (length(s)-1<length(spos)) do
         begin
          z:=z*a;
          b:=trunc(z);
          s:=s+c[b+1];
          z:=z-b;
          end;
       spostwo:=s;
      end;
 
begin
clrscr;
writeln('enter cislo');
 readln(s);
writeln('enter osnovanie');
readln(a);
writeln('enter second notation');
readln(a2);
razdstr(s);
dec:=sdoone(sdo,a);
rrr:=sposone(s,a);
writeln('in ',a2);
writeln('result ',two(dec,a2),spostwo(rrr,a2,spos));
readln;
end.
Добавлено через 22 часа 45 минут
кто может допилить прошу писать в личку
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.04.2012, 20:46
Ответы с готовыми решениями:

Программа перевода чисел из одной системы счисления в другую
8.Программа перевода чисел из одной системы счисления в другую. (Из любой – в любую. Минимум – двоичная, восьмиричная, десятичная,...

Программа для перевода чисел из одной системы счисления в другую
uses crt; var cs1,cs2,res,change:integer; TD:string; {функция перевода Dec числа в любую сс} function...

Программа выолняет перевод чисел из одной системы счисления в другую. Остался один небольшой пробел в программе.
Нужно подпрограммами реализовать проверку корректности введенного числа (например, ‘123 b’ и ‘99 о’ – некорректны!). Помогите с этим...

2
-26 / 6 / 1
Регистрация: 26.06.2011
Сообщений: 157
23.12.2012, 01:02
Тебе надо что, перевести в любое исчисление?

Добавлено через 11 минут
Если нужна прога то я дам ее тебе
0
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 6
08.01.2013, 11:24
Хорошая программка, как-раз практически то, что мне нужно, подошла с минимальными изменениями.
Только может мне кто-то объяснить назначения sdoone и sposone, а то я так и не понял, хотя сами шаги понятны, но общее предназначение все-еще в тумане. Да, у меня явно не очень с некоторыми разделами математики Я просто не знаю, на какой теории строится их использование.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2013, 11:24
Помогаю со студенческими работами здесь

Системы счисления. Перевод из одной системы счисления в другую.
Задание: Написать программу на языке С++ или Turbo Pascal для переведа числа, представленного в системе счисления с основанием S, в...

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

Программа для перевода из десятичной сс в любую другую систему счисления
Создать программу перевода заданного числа в десятичной системе счисления в любую другую. Исходные данные хранятся в текстовом файле...

Перевести из одной системы счисления в другую
Натуральное число в p-ичной системе счисления задано своими цифрами, хранящимися в в массиве К(n). Проверить корректность такого...

Перевод из одной системы счисления в другую
Перевести десятичное число в двоичную систему , а из двоичной системы в систему с основанием 29 . Относительная погрешность 0.03 . Интервал...


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

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

Новые блоги и статьи
Работа с объемным DOM в javascript
Htext 04.04.2025
Сегодня прочитал статью тут о расходах памяти в JS, ее утечках и т. п. И вот что вспомнил из своей недавней практики. Может, кому пригодится. Хотя, в той статье об этом тоже есть. Дело в том, что я. . .
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер