<span>Целая часть от деления:
</span><span><span>37 div 2 = 18
</span><span>18 div 2 = 9
</span><span>9 div 2 = 4
</span><span>4 div 2 = 2
</span><span>2 div 2 = 1
</span><span>1 div 2 = 0
</span></span><span>Остаток от деления:
</span>37 mod 2 = 1
18 mod 2 = 0
9 mod 2 = 1
4 mod 2 = 0
2 mod 2 = 0
1 mod 2 = 0
1) Остаток от деления 37 на записываем в обратном порядке. Получаем число в 2-ой системе счисления: 100101
<span>37 = 100101(2)
</span><span>
2) Для перевода дробной части числа последовательно умножаем дробную часть на основание 2. В результате каждый раз записываем целую часть произведения.
0.375*2 = 0.75 (целая часть 0)
0.75*2 = 1.5 (целая часть 1)
0.5*2 = 1 (целая часть 1)
0*2 = 0 (целая часть 0)
Получаем число в 2-ой системе счисления: 0110
0.375 = 0110(2)
В итоге получаем число: 100101.0110(2)</span>
О, я как раз около полугода назад для такого (но для себя уж, не для учёбы, просто интерес) программу на Visual Bisic .NET написал:) Счастья тебе, спасибо, что про неё напомнила х)
01010111011011110111001001101100011001000010000001010111011010010110010001100101001000000101011101100101<span>01100010</span>
Const n=20;
var x : array[1..n] of integer;
i, k1, k2 : integer;
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to n do
begin
x[i]:=random(221)-70;
write(x[i],' ');
end;
writeln;
k1:=0; k2:=0;
for i:=1 to n do
begin
if x[i] > 0 then k1:=k1+1;
if x[i] < 0 then k2:=k2+1;
end;
writeln('k1=',k1,' k2=',k2);
<span>end.
Пример:
Исходный массив:
73 -14 70 32 25 -31 110 117 11 -41 122 129 -49 54 65 57 -32 -49 110 -25
<span>k1=13 k2=7</span></span>
Если взять стандартную дискету (1,44 мб)
32 ГБ = 32768 мб
32768: 1,44 = 22756 дискет
Var
a: array[1..20,1..20] of integer;
n,m,i,j,min,jm,x: integer;
begin
randomize;
write('Введите размеры массива: ');
readln(n,m);
writeln('Исходный массив:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(19)-9;
write(a[i,j]:4);
end;
writeln;
end;
min:=0;
for i:=1 to n do min:=min+a[i,1];
writeln('Сумма элементов 1-го столбца = ',min);
jm:=1;
for j:=2 to m do
begin
x:=0;
for i:=1 to n do
x:=x+a[i,j];
writeln('Сумма элементов ',j,'-го столбца = ',x);
if x<min then
begin
min:=x;
jm:=j;
end;
end;
writeln('Минимальная сумма в ',jm,'-м столбце');
writeln('Полученный массив:');
for i:=1 to n do
begin
for j:=1 to m do
begin
if j<>jm then a[i,j]:=a[i,jm];
write(a[i,j]:4);
end;
writeln;
end;
readln;
end<span>.</span>