prokodasha
?>

Перевести данные числа из двоичной системы счисления в восьмеричную и наоборот. 11100101010012, 10000001012

Информатика

Ответы

Никитина580
В двоичной системе счисления не бывает цифры "2",допустим она написана как система счисления,тогда:
1110010101001(2) = 16251(8)
1000000101(2) = 1005(8)
Игоревна Худанов1150
     Как известно, нецелые числа в компьютере далеко не всегда представляются точно, поскольку большую часть их даже теоретически невозможно точно перевести в двоичную систему. Это порождает проблемы при проверках на точное равенство. Например, если мы попробуем перевести в двоичную систему число 0.1, то не сможем этого сделать и в компьютере вместо 0.1 будет храниться число, которое чуть-чуть, но все же меньше. Многократно увеличивая шагами какую-то величину на 0.1 мы все больше и больше будет удаляться от правильного (ожидаемого) значения и при проверка на точное равенство нас неприятно удивит. Поэтому в предыдущем ответе, несмотря на то, что диапазон задавался [1.2;2], проверка делается на 2.1 (можно и на 2.0000001 было делать).

     Есть другой писать программы для табуляции функций.
1) Находим, сколько значений нужно получить
Для этого от конечного значения вычитаем начальное, делим на шаг, берем целую часть результата и увеличиваем на единицу.
(2-1.2)/0.1=8, 8+1=9 - именно столько раз выполнится цикл.
Да-да, мы делаем традиционный цикл со счетчиком (for), в котором i будет меняться от 0 до 8.
2) получим формулу для вычисления значения аргумента.
При i=0 значение х(0)=1.2. При i=1 должно получиться x(1)=1.3.
Легко найти зависимость: x(i)=1.2+i/10. Можно компьютер и переписать это выражение в виде x(i)=(12+i)/10, потому что в первом случае будут операции а) перевод i в real б) сложение двух real в) деление двух real, а во втором - а) сложение двух integer б) перевод в real в) деление двух real и это быстрее.

var
  i:integer;
  x,y:real;
begin
  for i:=0 to 8 do begin
    x:=(12+i)/10;
    y:=sqrt(x-1)/sin(1/x);
    Writeln(x:3:1,y:10:6)
    end
end.

Результат
1.2  0.604198
1.3  0.787430
1.4  0.965466
1.5  1.143501
1.6  1.323877
1.7  1.507784
1.8  1.695869
1.9  1.888486
2.0  2.085830
magazin3000
Program triples;
const
RAND_F = 1;
RAND_T = 20;
var
b: array[1..15] of integer;
t: array[1..3] of integer;
i, j, max, max_i, tmp: integer;
begin
randomize;
for i := 1 to 15 do
b[i] := random(RAND_T) + RAND_F;
i := 1;
while i < 15 do
begin
t[1] := b[i];
t[2] := b[i+1];
t[3] := b[i+2];
max := t[1];
for j := 2 to 3 do
if t[j] > max then
begin
max := t[j];
max_i := j;
end;
tmp := t[3];
t[3] := max;
t[max_i] := tmp;
if t[2] < t[1] then
begin
tmp := t[2];
t[2] := t[1];
t[1] := tmp;
end;
write('Числа ', i, '-', i + 2, ': ');
writeln(t[1], ' ', t[2], ' ', t[3]);
i := i + 3;
end;
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Перевести данные числа из двоичной системы счисления в восьмеричную и наоборот. 11100101010012, 10000001012
Ваше имя (никнейм)*
Email*
Комментарий*