//PascalABC.NET 3.1 сборка 1239 const n = 10; m = 10;
var i, j: integer; a, b: array[1..n, 1..m] of integer; f: boolean;
begin for i := 1 to n do begin for j := 1 to m do begin a[i, j] := random(50); write(a[i, j]:3, ' '); end; writeln; end; writeln;
for i := 1 to n do begin f := false; for j := 1 to m do begin if not f and (a[i, j] mod 2 = 1) then begin a[i, j] := 2 * a[i, j]; f := true; end; write(a[i, j]:3, ' '); end; writeln; end; end.
const
n = 10;
m = 10;
var
i, j: integer;
a, b: array[1..n, 1..m] of integer;
f: boolean;
begin
for i := 1 to n do
begin
for j := 1 to m do
begin
a[i, j] := random(50);
write(a[i, j]:3, ' ');
end;
writeln;
end;
writeln;
for i := 1 to n do
begin
f := false;
for j := 1 to m do
begin
if not f and (a[i, j] mod 2 = 1) then begin
a[i, j] := 2 * a[i, j];
f := true;
end;
write(a[i, j]:3, ' ');
end;
writeln;
end;
end.
1. Для наглядности построй в столбик значения двойки в степенях от 0 до 7. Это будет 1, 2, 4, 8, 16, 32, 64, 128.
2. Разложи число (Внимание! Обязательно только из десятичной системы счисления) на числа из построенного ранее столбика.
К примеру возьмем число 37. 37=32+4+1.
2. Отсчитывай от числа из столбика 128 до 1. Если в разложении имеется это число, то пиши 1. Иначе 0.
0(128 нету) 0(64 нету) 1(32 есть!) 0(16 нету) 0 1 0 1
Цифр должно получиться восемь. Лучше пересчитать на случай, если случайно забыл ряд.
То есть по этому алгоритму .
И, конечно же, пробуй переводить числа самостоятельно. Сухая теория тут не имеет места.