1) Переводим целую часть числа в двоичную СС:
29:2=14(1)
14:2=7(0)
7:2=3(1)
3:2=1(1)
Записываем цифры в скобках в одно число снизу вверх:
11101
Переводим дробную часть:
Умножаем дробную часть на основание системы счисления:
0,62*2=1,24(1)
В скобки записываем целую часть результата произведения, а дробную снова умножаем на основание системы счисления:
0,24*2=0,48(0)
Повторям эти действия, пока не достигнем нужной точности:
0,48*2=0,96(0)
0,96*2=1,92(1)
0,92*2=1,84(1)
0,84*2=1,68(1)
0,68*2=1,36(1)
0,36*2=0,72(0)
Записываем цифры в скобках сверху вниз:
0,10011110
В итоге:
11101,10011110 - это данное число в двоичной СС
2) аналогично первому
29:8=3(5)
35 - целая часть полученного числа
0,62*8=4,96(4)
0,96*8=7,68(7)
0,68*8=5,44(5)
0,475 - дробная часть полученного числа
35,475 - это данное число в восьмеричной СС
===== PascalABC.NET =====
begin
// 1
var a := MatrRandom(5, 6, -10, 10);
a.Println(4);
var (kn, kz, kp) := (0, 0, 0);
for var i := 0 to a.RowCount - 1 do
for var j := 0 to a.ColCount - 1 do
if a[i, j] > 0 then
kp += 1
else if a[i, j] = 0 then
kz += 1
else
kn += 1;
Println('Отрицательных', kn, ' нулевых', kz,
' положительных', kp);
// 2
var b := MatrRandom(5, 6, 1, 100);
b.Println(5);
var s := b.ElementsWithIndices;
var imin := s.MinBy(p -> p[0]);
var imax := s.MaxBy(p -> p[0]);
Writeln('Индексы минимального элемента [',
imin[1] + 1, ',', imin[2] + 1, ']');
Writeln('Индексы максимального элемента [',
imax[1] + 1, ',', imax[2] + 1, ']');
// 3
var c := MatrRandom(5, 9, -3, 5);
c.Println(3);
Print('Количество положительных по строкам:');
c.Rows.Select(r -> r.Count(p -> p > 0)).Println
end.
1) Переводим целую часть числа в двоичную СС:
29:2=14(1)
14:2=7(0)
7:2=3(1)
3:2=1(1)
Записываем цифры в скобках в одно число снизу вверх:
11101
Переводим дробную часть:
Умножаем дробную часть на основание системы счисления:
0,62*2=1,24(1)
В скобки записываем целую часть результата произведения, а дробную снова умножаем на основание системы счисления:
0,24*2=0,48(0)
Повторям эти действия, пока не достигнем нужной точности:
0,48*2=0,96(0)
0,96*2=1,92(1)
0,92*2=1,84(1)
0,84*2=1,68(1)
0,68*2=1,36(1)
0,36*2=0,72(0)
Записываем цифры в скобках сверху вниз:
0,10011110
В итоге:
11101,10011110 - это данное число в двоичной СС
2) аналогично первому
29:8=3(5)
35 - целая часть полученного числа
0,62*8=4,96(4)
0,96*8=7,68(7)
0,68*8=5,44(5)
0,475 - дробная часть полученного числа
В итоге:
35,475 - это данное число в восьмеричной СС
===== PascalABC.NET =====
begin
// 1
var a := MatrRandom(5, 6, -10, 10);
a.Println(4);
var (kn, kz, kp) := (0, 0, 0);
for var i := 0 to a.RowCount - 1 do
for var j := 0 to a.ColCount - 1 do
if a[i, j] > 0 then
kp += 1
else if a[i, j] = 0 then
kz += 1
else
kn += 1;
Println('Отрицательных', kn, ' нулевых', kz,
' положительных', kp);
// 2
var b := MatrRandom(5, 6, 1, 100);
b.Println(5);
var s := b.ElementsWithIndices;
var imin := s.MinBy(p -> p[0]);
var imax := s.MaxBy(p -> p[0]);
Writeln('Индексы минимального элемента [',
imin[1] + 1, ',', imin[2] + 1, ']');
Writeln('Индексы максимального элемента [',
imax[1] + 1, ',', imax[2] + 1, ']');
// 3
var c := MatrRandom(5, 9, -3, 5);
c.Println(3);
Print('Количество положительных по строкам:');
c.Rows.Select(r -> r.Count(p -> p > 0)).Println
end.