Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 5

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

22.04.2012, 20:46. Показов 4939. Ответов 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
Ответ Создать тему
Новые блоги и статьи
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка: «Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
Многопоточность в C#: Threadpool
UnmanagedCoder 28.03.2025
Пул потоков в C# — это коллекция заранее созданных и готовых к использованию потоков, которые находятся в распоряжении приложения. Вместо того чтобы создавать и уничтожать потоки для каждой небольшой. . .
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel подробные расшифровки по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер