0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 73
1

системы счисления

18.11.2016, 18:55. Показов 476. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему неправильно переводит дробную часть с 10 сс в 10 сс?
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
uses crt;
const
  a: string[36] = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var s1,s2,s3,otvet,t1,t2:string;
c1,c2,kol,c3,cod,i,sc1,sc2,gv: integer;
v,tr1,tr2:real;
 
function cel(m1:string; c:integer):integer;
var
   sum,i,j,dno,cod,d,x :integer;
   m2:string;
begin
for i:=1 to length(m1) do
if (m1[i]=',') or (m1[i]='.') then
m2:=copy(m1,1,i-1)
else m2:=m1;
val(m2,dno,cod);
sum:=0;
for i:=0 to length(m2)-1 do
begin
     d:=1;
     for j:=1 to i do d:=d*10;
         x:=dno mod 10;
         dno:=dno div 10;
         d:=1;
         for j:=1 to i do d:=d*c;
         sum:=sum+x*d;
end;
cel:=sum;
end;
 
 
 
function Celotv(d: real; c: integer): string;
var
  s,m1,m2: string;
  n2,i,cod: integer;
begin
str(d,m1);
for i:=1 to length(m1) do
if (m1[i]=',') or (m1[i]='.') then
m2:=copy(m1,1,i-1)
else m2:=m1;
val(m2,d,cod);
  n2 := round(int(d));
  s := '';
  repeat
    s := ((a[n2 mod c + 1]) + s);
    n2 := n2 div c;
  until (n2 = 0);
  Celotv := s;
end;
 
 
function dr(m1: string; c: integer): real;
var
  i: integer;
  sum: real;
  m2:string;
begin
for i:=1 to length(m1) do
if (m1[i]=',') or (m1[i]='.') then
m2:=copy(m1,i+1,length(m1))
else dr:=0;
  for i := 1 to length(m2) do
    sum := sum + (pos(m2[i], a) - 1) * exp(ln(c) * -i);
  dr := sum;
end;
function Drob(var d: real; t, c: integer): string;
var
  s: string;
  l2, k, n3: real;
  i, l: integer;
begin
  k := d - int(d);
  s := '';
  i := 0;
  if t <> 0 then
  begin
    repeat
      l2 := k * c;
      k := frac(l2);
      s := s + a[round(int(l2)) + 1];
      inc(i);
    until i = t;
  end
  else
   s := '0';
  Drob := ','+s;
end;
 
 
begin
write('Введите систему счисления 1-го числа:');
readln(c1);
write('Введите число в ', c1, '-й СС:');
readln(s1);
write('Введите систему счисления  2-го числа:');
readln(c2);
write('Введите число в ', c2, '-й СС:' );
readln(s2);
 begin
tr1:=cel(s1,c1)+dr(s1,c1);
tr2:=cel(s2,c2)+dr(s2,c2);
write('Введите операцию:');
readln(s3);
if s3='+' then v:=tr1+tr2;
if s3='-' then v:=tr1-tr2;
if s3='*' then v:=tr1*tr2;
if s3='/' then v:=tr1/tr2;
writeln('Решение в 10-ой СС:');
writeln(tr1,' ', s3, ' ', tr2, ' = ',v);
write('Введите систему счисления для ответа:');
readln(c3);
write('Введите количество символов после запятой:');
readln(kol);
str(v,t1);
t2:=copy(t1,1,11);
val(t2,v,cod);
otvet:=Celotv(v,c3)+Drob(v,kol,c3);
writeln('Ответ в ', c3, '-й СС: ',otvet);
end;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2016, 18:55
Ответы с готовыми решениями:

Перевод любого числа из 16 системы счисления в 2 систему счисления.
Здравствуйте,помогите решить задачку в Pascal !!! Для перевода любого числа из 16 системы...

Системы счисления
Пожалуйста помогите с лабораторной! Даны натуральные числа N, M (2&lt;=M&lt;=16). Вывести на экран...

Системы счисления
Получить последовательность {d}_{k}, {d}_{k-1},..,{d}_{0} десятичных цифр числа 100!, , т. е. такую...

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

3
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
18.11.2016, 18:59 2
Цитата Сообщение от Анастас Посмотреть сообщение
дробную часть с 10 сс в 10 сс?
Это как?
0
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 73
18.11.2016, 19:05  [ТС] 3
вот
Миниатюры
системы счисления  
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
18.11.2016, 19:07 4
Так 10 в 10 не нужно переводить, это если другие системы.
Посмотрите эту тему.
Перевод в различные системы счисления
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2016, 19:07
Помогаю со студенческими работами здесь

Системы счисления
салам пацанам! привет девчёнкам! такая тема.......написать на языке программирования Паскаль...

Системы Счисления.
Доброго времени суток ! Нужна ваша помощь в написании программы на Паскале. Программа должна...

Системы счисления
салам пацанам! привет девчёнкам! такая тема.......написать на языке программирования Паскаль...

Системы счисления
Прошу помочь в написании программы на языке Pascal: Пусть n натуральных чисел заданы своими...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru