Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
dimayudin
2 / 2 / 2
Регистрация: 18.12.2014
Сообщений: 71
#1

Исправить ошибки в программе

18.10.2016, 19:30. Просмотров 114. Ответов 0
Метки нет (Все метки)

нАПИСАЛ ПРОГРАММУ НО ВЫДАЕТ ОШИБКИ ПОМОГИТЕ ИСПРАВИТЬ ОШМБКИ ЗАРАННЕЕ СПАСИБО. АРИФМОМЕТР ДЛЯ ВЫЧИСЛЕНИЯ ДРОБНЫХ ЧИСЕЛ ТОЖЕ ДОЛЖЕН РАБОТАТБ.
ВОТ САМА ПРОГРАММА
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
const
  a: string[36] = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
var
  n: real;
  rez, s, s2, s3,p,cc3,cc4,s4,res: string;
  t, cc, ind,  k, l,cc2, t2,t3,ch1: integer;
procedure Del(var ss: string);
var
  i: integer;
begin
  s2:=copy(ss,1,pos('.',ss)-1); 
  delete(ss, 1,pos('.',ss)); 
  s3 := ss; 
end;
function ToDec(ss2: string; cc: byte): integer;
var
  i, n, sum: integer;
begin
  sum := 0;
  n := length(ss2); 
  for i := 1 to n do 
  begin
    dec(n); 
    sum := sum + round((pos(ss2[i], a) - 1) * exp(ln(cc) * n)); 
  end;
  ToDec := sum;
end;
function Cel(d: real; c: integer): string;
var
  s: string;
  n2: integer;
begin
  n2 := round(int(d)); 
  s := '';   
  repeat
    s := ((a[n2 mod c + 1]) + s); 
    n2 := n2 div c;
  until (n2 = 0);
  Cel := s;
end;
function Drob(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;
Function prov(c:integer;s:string):boolean;
Var
 i,kol,j:integer;
begin
kol:=0;
for i:=1 to c do 
begin
 for j:=1 to length(s) do 
 if s[j]=a[i] then 
  inc(kol); 
end;
if kol=length(s) then  
 prov:=true 
else  
 prov:=false; 
end;
function drob2(ss: string; c: integer): real;
var
  i: integer;
  sum: real;
begin
  for i := 1 to length(ss) do 
    sum := sum + (pos(ss[i], a) - 1) * exp(ln(c) * -i); 
  drob2 := sum;
end;
 
function process : string;
begin
  repeat
    write('систему счисления: ');
    readln(cc2);
  until cc2 in [2..36] ; 
  repeat
   write('число ', cc2, '-й СС: ');
   readln(s);
   s4:=s;
   if pos(',',s)<>0 then 
    s[pos(',',s)]:='.'; 
   t2:=pos('.',s); 
   val(s,n,l); 
   Del(s); 
   if not prov(cc2,s2) or not prov(cc2,s3) then 
    write('неконкретне ое число');
  until prov(cc2,s2) and prov(cc2,s3);
  write('введите точность: ');
   readln(t);
  if cc2 = 10 then 
  begin
    if ((n - round(int(n))) = 0) then 
      rez := Cel(n, cc)
    else     
      rez := Cel(n, cc) + ',' + Drob(n, t, cc);
  end
  else 
  begin
    if t2=0 then 
      rez := Cel(ToDec(s3, cc2), cc) 
    else
      rez := Cel(ToDec(s2, cc2), cc) + ',' + drob(drob2(s3, cc2),t, cc);      
  end;
 process:=rez;
//   writeln('число ',s4,'_',cc2,' в ',cc,'-й СС:=',rez);
  end;
  
  begin
    writeln('систему счисления: ');
     cc3:=process;
    writeln('систему счисления: ');
     cc4:=process;
    
 writeln('выберите операции');
 readln(p);
 
 if p = '+' then rez := StrToInt(cc3)+ StrToInt(cc4)
  else
  if p = '-' then rez := StrToInt(cc3) - StrToInt(cc4)
  else
  if p = '*' then rez := StrToInt(cc3) * StrToInt(cc4)
  else
  if p = '/' then res := StrToInt(cc3)/StrToInt(cc4);
 
Writeln(cc3);
  Writeln(p);
  Writeln(cc4);
  Writeln('________');
  Writeln('Результат в 10СС');
  Writeln(rez);
  Writeln('В какой СС хотите получить результат ?');
  Readln(t3);
   Begin
  Write('Введите точность: ');
    Readln(ch1);
    if ((rez - round(int(rez))) = 0) then
      res := Cel(rez, ch1)
    else 
      res := Cel(rez, ch1) + ',' + Drob(rez, t3, ch1);
  Writeln(res);
  End;
end.

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2016, 19:30
Ответы с готовыми решениями:

Исправить ошибки в программе
uses crt; const n=5; E=0.001; var l,h: real; x,F: array of real; i:...

Исправить ошибки в программе
Никак не могу гайти ошибку помогите пожалуйста!!! program kyrsova; uses...

Исправить ошибки в программе шифрования слова
Program esep; uses crt; var s_out,a,alf,san,k:string; ...

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

Исправить ошибки в программе "кроссворд"
Это единственное, что нашла по своей теме по курсовой, но кроссворд в паскаль...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2016, 19:30

Исправить ошибку в программе
var a: array of integer; i, t :integer; begin for i:= 0 to 10 do a:=i;...

Ошибки в программе.
Не смог найти как создать тему. И потом возможно ВЫ то ребята и сможете...

Исправить ошибки
Добрый день. Помогите исправить ошибки в задачах. Спасибо). program exp2;...


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

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

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