4)Число 1011112 перевести в восьмеричную систему счисления
function Pow(a,x:integer):integer;
var
P, i :integer;
begin
if x = 0 then
Pow := 1
else
begin
P := 1;
for i := 1 to x do
P := P * a;
Pow := P;
end;
end;
var
count, c, r:integer;
begin
count := 0;
r := 0;
c := 101111;
while c > 0 do
begin
r := r + (c mod 10) * Pow(2, count);
inc(count);
c := c div 10;
end;
writeln('R = ', r);
end.
5) Выполните умножение чисел 1112 и 1112
function Pow(a,x:integer):integer;
var
P, i :integer;
begin
if x = 0 then
Pow := 1
else
begin
P := 1;
for i := 1 to x do
P := P * a;
Pow := P;
end;
end;
function Summ(a, b:integer):integer;
var
r, t, count:integer;
begin
count := 0;
r := 0;
t := 0;
while (a > 0) or (b > 0) do
begin
r := r + (((a mod 2) + (b mod 2) + t) mod 2) * Pow (10, count);
inc(count);
t := (a mod 2 + b mod 2 + t) div 2;
a := a div 10;
b := b div 10;
end;
r := r + t * Pow(10, count);
Summ := r;
end;
var
A,B , buff, count, r:integer;
begin
count := 0;
r := 0;
A := 111;
B := 111;
buff := B;
while Buff > 0 do
begin
r := Summ(r, A * (Buff mod 10) * Pow(10, count));
Buff := Buff div 10;
inc(count);
end;
writeln('R = ', r);
end.
2) Определить количество двоичных разрядов достаточных для кодирования 510 различных состояний?
function Pow(a,x:integer):integer;
var
P, i :integer;
begin
if x = 0 then
Pow := 1
else
begin
P := 1;
for i := 1 to x do
P := P * a;
Pow := P;
end;
end;
var
N, count :integer;
begin
count := 1;
write('N = ');
Readln(N);
N := abs(N);
while (Pow(2, count) < N) do
inc(count);
writeln('Count = ', count);
readln;
end.