ПАСКАЛЬ: Напишите процедуру, которая выводит ** экран переданное ей число в негадвоичной...

0 голосов
162 просмотров

ПАСКАЛЬ:
Напишите процедуру, которая выводит на экран переданное ей число в негадвоичной системе счисления, основание которой равно (–2).
Например, 1011_{(-2)} =1*(-2) ^{3} +0*(-2)^{2}+1*(-2)^{1}+1*(-2)^{0}=-9


Информатика (76 баллов) | 162 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Procedure convert ( x: integer );
var s: string;
k, error, len: integer;
element: array[1..20] of real;
i, rez: real;
const N = -2;
begin
s := IntToStr(x);
len := length(s);
if len = 0 then writeln('Ошибка!')
else
begin  i := 0;
rez := 0;
for k := 1 to len do val(s[k], element[k], error);
for k := 1 to len do
begin
i := element[k] * power( N, len - k );
rez := rez + i;
end;
writeln(rez);
end;
end;

var numeric: integer;
begin
write('Введите двоичное число для перевода в систему счисления с основанием (-2): ');
readln(numeric);
write('Ответ: ');
convert(numeric);
end.

(2.3k баллов)